@continuumdao/ctm-mpc-defi 0.2.7 → 0.2.8

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.
@@ -379,7 +379,7 @@ var EVM_COMMON_PARAM_DOCS = {
379
379
  useCustomGas: {
380
380
  type: "boolean",
381
381
  required: true,
382
- description: "When true, apply chain gas settings from chainDetail / customGasChainDetails instead of raw RPC estimates only."
382
+ description: "When true, apply Custom Gas Config from chainDetail / customGasChainDetails. Omitted baseFee/priorityFee is valid \u2014 live RPC fees are used at proposal; configured values are optional floors/multipliers. When false, use live RPC estimates only."
383
383
  },
384
384
  chainId: {
385
385
  type: "number",
@@ -407,8 +407,17 @@ var EVM_COMMON_PARAM_DOCS = {
407
407
  description: "Snapshot written to extraJSON.customGasChainDetails when useCustomGas is true."
408
408
  }
409
409
  };
410
+ var MULTISIGN_SUBMIT_OUTPUT_DOC = {
411
+ description: "Submitted mpc-auth multiSignRequest id. continuum-mcp-server builds, signs the management envelope, and POSTs /multiSignRequest. Continue with wait_for_sign_request_ready \u2192 sign_request_agree \u2192 trigger_sign_result \u2192 broadcast_sign_result. Do not call the same build tool again if requestId was returned.",
412
+ fields: {
413
+ requestId: {
414
+ type: "string",
415
+ description: "Sign request id from POST /multiSignRequest."
416
+ }
417
+ }
418
+ };
410
419
  var MULTISIGN_OUTPUT_DOC = {
411
- description: "Unsigned mpc-auth multiSignRequest payload. The caller must sign messageToSign (MetaMask personal_sign or Ed25519) and POST { ...bodyForSign, clientSig, signedMessage: messageToSign } to /multiSignRequest.",
420
+ description: "Unsigned mpc-auth multiSignRequest payload from protocol builders. MCP agents receive { requestId } instead; node-app callers sign messageToSign and POST { ...bodyForSign, clientSig, signedMessage }.",
412
421
  fields: {
413
422
  bodyForSign: {
414
423
  type: "object",
@@ -457,6 +466,21 @@ var MANAGEMENT_SIG_DOC = {
457
466
  fetchPreferredKeyGen: "GET /getPreferredKeyGen for agent default KeyGen."
458
467
  }
459
468
  };
469
+
470
+ // src/agent/mcpMultisignSubmitMeta.ts
471
+ var MCP_MULTISIGN_SUBMIT_DESCRIPTION_SUFFIX = "Builds the unsigned batch, signs the management envelope, and POSTs /multiSignRequest. Returns { requestId } on success \u2014 do not call again; use list_sign_requests to verify duplicates.";
472
+ var MCP_MULTISIGN_SUBMIT_FOLLOW_UP = [
473
+ "wait_for_sign_request_ready",
474
+ "sign_request_agree",
475
+ "trigger_sign_result",
476
+ "broadcast_sign_result"
477
+ ];
478
+ function withMultisignSubmitMcpMeta(description, followUp = MCP_MULTISIGN_SUBMIT_FOLLOW_UP) {
479
+ return {
480
+ description: `${description.trim()} ${MCP_MULTISIGN_SUBMIT_DESCRIPTION_SUFFIX}`,
481
+ followUp: [...followUp]
482
+ };
483
+ }
460
484
  function zodSchemaToMcpJsonSchema(schema) {
461
485
  const raw = zodToJsonSchema(schema, {
462
486
  target: "openApi3",
@@ -501,7 +525,7 @@ var evmMultisignCommonInputSchema = z.object({
501
525
  "Human-readable purpose for the sign request. Stored in bodyForSign.purpose (may be appended with an automatic batch suffix)."
502
526
  ),
503
527
  useCustomGas: z.boolean().describe(
504
- "When true, apply chain gas settings from chainDetail / customGasChainDetails instead of raw RPC estimates only."
528
+ "When true, apply Custom Gas Config from chainDetail / customGasChainDetails. Omitted baseFee/priorityFee is valid \u2014 builder uses live RPC fees; configured values are optional floors/multipliers. When false, use live RPC estimates only."
505
529
  ),
506
530
  chainId: z.number().int().positive().describe("EVM chain id (decimal). Becomes destinationChainID on the sign request."),
507
531
  rpcUrl: z.string().min(1).describe("HTTPS JSON-RPC URL for gas estimation, nonce, and allowance reads."),
@@ -517,9 +541,12 @@ var multisignOutputSchema = z.object({
517
541
  ),
518
542
  messageToSign: z.string().describe("JSON.stringify(bodyForSign) \u2014 exact string to sign before adding clientSig.")
519
543
  }).describe(
520
- "Unsigned mpc-auth multiSignRequest payload. Sign messageToSign and POST { ...bodyForSign, clientSig, signedMessage } to /multiSignRequest."
544
+ "Unsigned mpc-auth multiSignRequest payload from protocol builders (used internally before management submit)."
521
545
  );
522
546
  var jsonObjectSchema = z.record(z.unknown());
547
+ function parseMultisignBuilderOutput(data) {
548
+ return multisignOutputSchema.parse(data);
549
+ }
523
550
  var uniswapQuoteTradeTypeSchema = z.enum(["EXACT_INPUT", "EXACT_OUTPUT"]);
524
551
  var mcpUniswapV4QuoteInputSchema = z.object({
525
552
  type: uniswapQuoteTradeTypeSchema.describe("EXACT_INPUT or EXACT_OUTPUT"),
@@ -738,6 +765,26 @@ var mcpCurveDaoBuildSwapMultisignInputSchema = evmMultisignCommonInputSchema.ext
738
765
  amountHuman: z.string().min(1).describe("Human-readable amount of tokenIn"),
739
766
  slippagePercent: z.number().gt(0).lt(100).describe("Slippage 0\u2013100 exclusive")
740
767
  });
768
+ var mcpServerCommonInputSchema = z.object({
769
+ keyGenId: z.string().min(1).describe("KeyGen id from fetch_key_gen_result / node preferred KeyGen"),
770
+ chainId: z.number().int().positive().describe("EVM chain id; RPC and gas config resolved from chain registry"),
771
+ purposeText: z.string().min(1).describe("Human-readable purpose for the sign request"),
772
+ useCustomGas: z.boolean().optional().describe("Apply chain gas settings from registry when true")
773
+ });
774
+ function mcpServerMultisignInput(fields) {
775
+ return mcpServerCommonInputSchema.extend(fields);
776
+ }
777
+ var mcpServerSubmitOutputSchema = z.object({
778
+ requestId: z.string().min(1).describe("Sign request id from POST /multiSignRequest \u2014 success; do not retry the same build tool.")
779
+ }).describe(
780
+ "Submitted mpc-auth multiSignRequest. Continue with wait_for_sign_request_ready \u2192 sign_request_agree \u2192 trigger_sign_result \u2192 broadcast_sign_result."
781
+ );
782
+ var MCP_NON_SUBMIT_TOOL_NAMES = /* @__PURE__ */ new Set([
783
+ "ctm_uniswap_v4_quote",
784
+ "ctm_uniswap_v4_create_swap"
785
+ ]);
786
+
787
+ // src/agent/schemas/protocols.ts
741
788
  function mcpMultisignInput(fields) {
742
789
  return evmMultisignCommonInputSchema.extend(fields);
743
790
  }
@@ -1028,13 +1075,16 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
1028
1075
 
1029
1076
  // src/agent/mcpProtocolTools.ts
1030
1077
  function defineProtocolMcpTool(def) {
1078
+ const meta = withMultisignSubmitMcpMeta(def.description, def.followUp ?? MCP_MULTISIGN_SUBMIT_FOLLOW_UP);
1031
1079
  return {
1032
1080
  ...def,
1033
- outputZod: multisignOutputSchema,
1081
+ description: meta.description,
1082
+ followUp: meta.followUp,
1083
+ outputZod: mcpServerSubmitOutputSchema,
1034
1084
  inputSchema: zodSchemaToMcpJsonSchema(def.inputZod),
1035
- outputSchema: zodSchemaToMcpJsonSchema(multisignOutputSchema),
1085
+ outputSchema: zodSchemaToMcpJsonSchema(mcpServerSubmitOutputSchema),
1036
1086
  parseInput: (data) => def.inputZod.parse(data),
1037
- parseOutput: (data) => multisignOutputSchema.parse(data)
1087
+ parseOutput: (data) => mcpServerSubmitOutputSchema.parse(data)
1038
1088
  };
1039
1089
  }
1040
1090
  var MCP_PROTOCOL_TOOL_DEFINITIONS = [
@@ -1043,9 +1093,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1043
1093
  actionId: "lido.submit",
1044
1094
  protocolId: "lido",
1045
1095
  chainCategory: "evm",
1046
- description: "Build mpc-auth multiSignRequest for Lido ETH stake (submit).",
1096
+ description: "Create and submit mpc-auth multiSignRequest for Lido ETH stake (submit).",
1047
1097
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1048
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1049
1098
  handler: { importPath: "protocols/evm/lido", exportName: "buildEvmMultisignBodyLidoSubmit" },
1050
1099
  inputZod: mcpLidoSubmitInputSchema
1051
1100
  }),
@@ -1056,7 +1105,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1056
1105
  chainCategory: "evm",
1057
1106
  description: "Build batch for Lido withdrawal queue (approve + requestWithdrawals).",
1058
1107
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1059
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1060
1108
  handler: { importPath: "protocols/evm/lido", exportName: "buildEvmMultisignBodyLidoRequestWithdrawals" },
1061
1109
  inputZod: mcpLidoRequestWithdrawalsInputSchema
1062
1110
  }),
@@ -1067,7 +1115,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1067
1115
  chainCategory: "evm",
1068
1116
  description: "Build tx for Lido claimWithdrawal.",
1069
1117
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1070
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1071
1118
  handler: { importPath: "protocols/evm/lido", exportName: "buildEvmMultisignBodyLidoClaimWithdrawal" },
1072
1119
  inputZod: mcpLidoClaimWithdrawalInputSchema
1073
1120
  }),
@@ -1078,7 +1125,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1078
1125
  chainCategory: "evm",
1079
1126
  description: "Build batch for wstETH wrap.",
1080
1127
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1081
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1082
1128
  handler: { importPath: "protocols/evm/lido", exportName: "buildEvmMultisignBodyLidoWrapStEth" },
1083
1129
  inputZod: mcpLidoWrapStEthInputSchema
1084
1130
  }),
@@ -1089,7 +1135,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1089
1135
  chainCategory: "evm",
1090
1136
  description: "Build tx for wstETH unwrap.",
1091
1137
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1092
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1093
1138
  handler: { importPath: "protocols/evm/lido", exportName: "buildEvmMultisignBodyLidoUnwrapWstEth" },
1094
1139
  inputZod: mcpLidoUnwrapWstEthInputSchema
1095
1140
  }),
@@ -1100,7 +1145,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1100
1145
  chainCategory: "evm",
1101
1146
  description: "Build batch: USDe approve + sUSDe deposit.",
1102
1147
  prerequisites: ["keyGen", "executorAddress", "Ethereum mainnet RPC"],
1103
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1104
1148
  handler: { importPath: "protocols/evm/ethena", exportName: "buildEvmMultisignBodyEthenaUsdeStakeToSusde" },
1105
1149
  inputZod: mcpEthenaStakeInputSchema
1106
1150
  }),
@@ -1111,7 +1155,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1111
1155
  chainCategory: "evm",
1112
1156
  description: "Build sUSDe redeem when cooldown is off.",
1113
1157
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1114
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1115
1158
  handler: { importPath: "protocols/evm/ethena", exportName: "buildEvmMultisignBodyEthenaSusdeRedeemToUsde" },
1116
1159
  inputZod: mcpEthenaRedeemInputSchema
1117
1160
  }),
@@ -1122,7 +1165,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1122
1165
  chainCategory: "evm",
1123
1166
  description: "Build sUSDe cooldownShares batch step.",
1124
1167
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1125
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1126
1168
  handler: { importPath: "protocols/evm/ethena", exportName: "buildEvmMultisignBodyEthenaSusdeCooldownShares" },
1127
1169
  inputZod: mcpEthenaCooldownInputSchema
1128
1170
  }),
@@ -1133,7 +1175,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1133
1175
  chainCategory: "evm",
1134
1176
  description: "Build unstake claim after cooldown.",
1135
1177
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1136
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1137
1178
  handler: { importPath: "protocols/evm/ethena", exportName: "buildEvmMultisignBodyEthenaUnstakeClaim" },
1138
1179
  inputZod: mcpEthenaClaimInputSchema
1139
1180
  }),
@@ -1144,7 +1185,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1144
1185
  chainCategory: "evm",
1145
1186
  description: "Build Maple Syrup router deposit batch.",
1146
1187
  prerequisites: ["keyGen", "executorAddress", "router + pool addresses"],
1147
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1148
1188
  handler: { importPath: "protocols/evm/maple", exportName: "buildEvmMultisignBodyMapleSyrupDeposit" },
1149
1189
  inputZod: mcpMapleDepositInputSchema
1150
1190
  }),
@@ -1155,7 +1195,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1155
1195
  chainCategory: "evm",
1156
1196
  description: "Build Maple PoolV2 requestRedeem batch.",
1157
1197
  prerequisites: ["keyGen", "executorAddress", "pool address"],
1158
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1159
1198
  handler: { importPath: "protocols/evm/maple", exportName: "buildEvmMultisignBodyMaplePoolRequestRedeem" },
1160
1199
  inputZod: mcpMapleRequestRedeemInputSchema
1161
1200
  }),
@@ -1166,7 +1205,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1166
1205
  chainCategory: "evm",
1167
1206
  description: "Build Sky Lockstake open/stake batch.",
1168
1207
  prerequisites: ["keyGen", "executorAddress", "Ethereum mainnet RPC"],
1169
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1170
1208
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkyLockstakeStakePositionBatch" },
1171
1209
  inputZod: mcpSkyLockstakeStakeInputSchema
1172
1210
  }),
@@ -1177,7 +1215,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1177
1215
  chainCategory: "evm",
1178
1216
  description: "Build Lockstake draw (borrow USDS).",
1179
1217
  prerequisites: ["keyGen", "executorAddress", "open urn"],
1180
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1181
1218
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkyLockstakeDrawBatch" },
1182
1219
  inputZod: mcpSkyLockstakeDrawInputSchema
1183
1220
  }),
@@ -1188,7 +1225,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1188
1225
  chainCategory: "evm",
1189
1226
  description: "Build Lockstake repay/wipe batch.",
1190
1227
  prerequisites: ["keyGen", "executorAddress", "urn index"],
1191
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1192
1228
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkyLockstakeWipeBatch" },
1193
1229
  inputZod: mcpSkyLockstakeWipeInputSchema
1194
1230
  }),
@@ -1199,7 +1235,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1199
1235
  chainCategory: "evm",
1200
1236
  description: "Build Lockstake close position batch.",
1201
1237
  prerequisites: ["keyGen", "executorAddress", "urn index"],
1202
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1203
1238
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkyLockstakeCloseBatch" },
1204
1239
  inputZod: mcpSkyLockstakeCloseInputSchema
1205
1240
  }),
@@ -1210,7 +1245,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1210
1245
  chainCategory: "evm",
1211
1246
  description: "Build Lockstake getReward batch.",
1212
1247
  prerequisites: ["keyGen", "executorAddress", "urn index"],
1213
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1214
1248
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkyLockstakeGetRewardBatch" },
1215
1249
  inputZod: mcpSkyLockstakeGetRewardInputSchema
1216
1250
  }),
@@ -1221,7 +1255,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1221
1255
  chainCategory: "evm",
1222
1256
  description: "Build USDS \u2192 sUSDS ERC-4626 deposit batch.",
1223
1257
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1224
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1225
1258
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkySusdsDepositFromUsdsBatch" },
1226
1259
  inputZod: mcpSkySusdsDepositInputSchema
1227
1260
  }),
@@ -1232,7 +1265,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1232
1265
  chainCategory: "evm",
1233
1266
  description: "Build sUSDS redeem to USDS batch.",
1234
1267
  prerequisites: ["keyGen", "executorAddress", "RPC URL"],
1235
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1236
1268
  handler: { importPath: "protocols/evm/sky", exportName: "buildSkySusdsRedeemToUsdsBatch" },
1237
1269
  inputZod: mcpSkySusdsRedeemInputSchema
1238
1270
  }),
@@ -1243,7 +1275,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1243
1275
  chainCategory: "evm",
1244
1276
  description: "Build Aave v4 Spoke supply/deposit batch (wrap native, approve, supply).",
1245
1277
  prerequisites: ["keyGenId", "chainId", "underlying", "amountHuman", "get_defi_protocol_skill for hubs/spokes"],
1246
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1247
1278
  handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4DepositBatch" },
1248
1279
  inputZod: mcpAaveV4DepositInputSchema
1249
1280
  }),
@@ -1254,7 +1285,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1254
1285
  chainCategory: "evm",
1255
1286
  description: "Build Aave v4 Spoke withdraw; health-factor preview when user has borrow debt.",
1256
1287
  prerequisites: ["keyGenId", "chainId", "underlying (supplied asset)", "amountHuman"],
1257
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1258
1288
  handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4SpokeWithdraw" },
1259
1289
  inputZod: mcpAaveV4WithdrawInputSchema
1260
1290
  }),
@@ -1271,7 +1301,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1271
1301
  "amountHuman",
1272
1302
  "collateral supplied via deposit"
1273
1303
  ],
1274
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1275
1304
  handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4SpokeBorrow" },
1276
1305
  inputZod: mcpAaveV4BorrowInputSchema
1277
1306
  }),
@@ -1282,7 +1311,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1282
1311
  chainCategory: "evm",
1283
1312
  description: "Build Aave v4 Spoke repay (approve if needed + repay).",
1284
1313
  prerequisites: ["keyGenId", "chainId", "underlying (debt token)", "amountHuman"],
1285
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1286
1314
  handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4SpokeRepay" },
1287
1315
  inputZod: mcpAaveV4RepayInputSchema
1288
1316
  }),
@@ -1293,7 +1321,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1293
1321
  chainCategory: "evm",
1294
1322
  description: "Build Euler v2 vault deposit/lend batch.",
1295
1323
  prerequisites: ["keyGen", "executorAddress", "vault address"],
1296
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1297
1324
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch" },
1298
1325
  inputZod: mcpEulerV2IsolatedLendInputSchema
1299
1326
  }),
@@ -1304,7 +1331,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1304
1331
  chainCategory: "evm",
1305
1332
  description: "Build Euler v2 isolated borrow loop batch.",
1306
1333
  prerequisites: ["keyGen", "executorAddress", "vault + collateral"],
1307
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1308
1334
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2IsolatedBorrowBatch" },
1309
1335
  inputZod: mcpEulerV2IsolatedBorrowInputSchema
1310
1336
  }),
@@ -1315,7 +1341,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1315
1341
  chainCategory: "evm",
1316
1342
  description: "Build Euler v2 vault withdraw/redeem batch.",
1317
1343
  prerequisites: ["keyGen", "executorAddress", "vault address"],
1318
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1319
1344
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2VaultWithdraw" },
1320
1345
  inputZod: mcpEulerV2VaultWithdrawInputSchema
1321
1346
  }),
@@ -1326,7 +1351,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1326
1351
  chainCategory: "evm",
1327
1352
  description: "Build Euler v2 borrow repay batch.",
1328
1353
  prerequisites: ["keyGen", "executorAddress", "vault address"],
1329
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1330
1354
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowRepayBatch" },
1331
1355
  inputZod: mcpEulerV2BorrowRepayInputSchema
1332
1356
  }),
@@ -1337,7 +1361,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1337
1361
  chainCategory: "evm",
1338
1362
  description: "Build Euler v2 borrow collateral deposit batch.",
1339
1363
  prerequisites: ["keyGen", "executorAddress", "vault + collateral asset"],
1340
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1341
1364
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch" },
1342
1365
  inputZod: mcpEulerV2CollateralDepositInputSchema
1343
1366
  }),
@@ -1348,7 +1371,6 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1348
1371
  chainCategory: "evm",
1349
1372
  description: "Build Euler v2 borrow collateral withdraw batch.",
1350
1373
  prerequisites: ["keyGen", "executorAddress", "vault + collateral asset"],
1351
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1352
1374
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch" },
1353
1375
  inputZod: mcpEulerV2CollateralWithdrawInputSchema
1354
1376
  }),
@@ -1357,9 +1379,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1357
1379
  actionId: "gmx.increase",
1358
1380
  protocolId: "gmx",
1359
1381
  chainCategory: "evm",
1360
- description: "Build mpc-auth multiSignRequest for GMX classic increase order (open/add perp). Keeper executes asynchronously after on-chain broadcast.",
1382
+ description: "Create and submit mpc-auth multiSignRequest for GMX classic increase order (open/add perp). Keeper executes asynchronously after on-chain broadcast.",
1361
1383
  prerequisites: ["keyGen", "executorAddress", "GMX market symbol", "classic mode only \u2014 no subaccounts"],
1362
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1363
1384
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxIncreaseBatch" },
1364
1385
  inputZod: mcpGmxIncreaseInputSchema
1365
1386
  }),
@@ -1368,9 +1389,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1368
1389
  actionId: "gmx.decrease",
1369
1390
  protocolId: "gmx",
1370
1391
  chainCategory: "evm",
1371
- description: "Build mpc-auth multiSignRequest for GMX classic decrease order (close/reduce perp).",
1392
+ description: "Create and submit mpc-auth multiSignRequest for GMX classic decrease order (close/reduce perp).",
1372
1393
  prerequisites: ["keyGen", "executorAddress", "position market symbol"],
1373
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1374
1394
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxDecreaseBatch" },
1375
1395
  inputZod: mcpGmxDecreaseInputSchema
1376
1396
  }),
@@ -1379,9 +1399,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1379
1399
  actionId: "gmx.cancel",
1380
1400
  protocolId: "gmx",
1381
1401
  chainCategory: "evm",
1382
- description: "Build mpc-auth multiSignRequest to cancel a pending GMX order (classic on-chain).",
1402
+ description: "Create and submit mpc-auth multiSignRequest to cancel a pending GMX order (classic on-chain).",
1383
1403
  prerequisites: ["keyGen", "executorAddress", "orderId from fetchOrders"],
1384
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1385
1404
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxCancelBatch" },
1386
1405
  inputZod: mcpGmxCancelInputSchema
1387
1406
  }),
@@ -1390,9 +1409,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1390
1409
  actionId: "gmx.gmDeposit",
1391
1410
  protocolId: "gmx",
1392
1411
  chainCategory: "evm",
1393
- description: "Build mpc-auth multiSignRequest for GMX GM pool deposit (ExchangeRouter multicall). Keeper executes asynchronously.",
1412
+ description: "Create and submit mpc-auth multiSignRequest for GMX GM pool deposit (ExchangeRouter multicall). Keeper executes asynchronously.",
1394
1413
  prerequisites: ["keyGen", "executorAddress", "marketSymbol", "collateral token"],
1395
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1396
1414
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxGmDepositBatch" },
1397
1415
  inputZod: mcpGmxGmDepositInputSchema
1398
1416
  }),
@@ -1401,9 +1419,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1401
1419
  actionId: "gmx.gmWithdraw",
1402
1420
  protocolId: "gmx",
1403
1421
  chainCategory: "evm",
1404
- description: "Build mpc-auth multiSignRequest for GMX GM pool withdrawal (ExchangeRouter multicall). Keeper executes asynchronously.",
1422
+ description: "Create and submit mpc-auth multiSignRequest for GMX GM pool withdrawal (ExchangeRouter multicall). Keeper executes asynchronously.",
1405
1423
  prerequisites: ["keyGen", "executorAddress", "GM market token balance"],
1406
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1407
1424
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxGmWithdrawBatch" },
1408
1425
  inputZod: mcpGmxGmWithdrawInputSchema
1409
1426
  }),
@@ -1412,9 +1429,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1412
1429
  actionId: "gmx.stakeGmx",
1413
1430
  protocolId: "gmx",
1414
1431
  chainCategory: "evm",
1415
- description: "Build mpc-auth multiSignRequest to stake GMX via RewardRouter.",
1432
+ description: "Create and submit mpc-auth multiSignRequest to stake GMX via RewardRouter.",
1416
1433
  prerequisites: ["keyGen", "executorAddress", "GMX token balance"],
1417
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1418
1434
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxStakeGmxBatch" },
1419
1435
  inputZod: mcpGmxStakeGmxInputSchema
1420
1436
  }),
@@ -1423,9 +1439,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1423
1439
  actionId: "gmx.unstakeGmx",
1424
1440
  protocolId: "gmx",
1425
1441
  chainCategory: "evm",
1426
- description: "Build mpc-auth multiSignRequest to unstake GMX via RewardRouter.",
1442
+ description: "Create and submit mpc-auth multiSignRequest to unstake GMX via RewardRouter.",
1427
1443
  prerequisites: ["keyGen", "executorAddress", "staked GMX balance"],
1428
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1429
1444
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxUnstakeGmxBatch" },
1430
1445
  inputZod: mcpGmxUnstakeGmxInputSchema
1431
1446
  })
@@ -1441,6 +1456,15 @@ function defineMcpTool(def) {
1441
1456
  parseOutput: (data) => def.outputZod.parse(data)
1442
1457
  };
1443
1458
  }
1459
+ function defineMultisignSubmitMcpTool(def) {
1460
+ const meta = withMultisignSubmitMcpMeta(def.description, def.followUp ?? MCP_MULTISIGN_SUBMIT_FOLLOW_UP);
1461
+ return defineMcpTool({
1462
+ ...def,
1463
+ description: meta.description,
1464
+ followUp: meta.followUp,
1465
+ outputZod: mcpServerSubmitOutputSchema
1466
+ });
1467
+ }
1444
1468
  var CORE_MCP_TOOL_DEFINITIONS = [
1445
1469
  defineMcpTool({
1446
1470
  name: "ctm_uniswap_v4_quote",
@@ -1473,20 +1497,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1473
1497
  inputZod: mcpUniswapV4CreateSwapInputSchema,
1474
1498
  outputZod: mcpUniswapV4CreateSwapOutputSchema
1475
1499
  }),
1476
- defineMcpTool({
1500
+ defineMultisignSubmitMcpTool({
1477
1501
  name: "ctm_uniswap_v4_build_swap_multisign",
1478
1502
  actionId: "uniswap-v4.swap-exact-input",
1479
1503
  protocolId: "uniswap-v4",
1480
1504
  chainCategory: "evm",
1481
- description: "Build mpc-auth multiSignRequest body for a Uniswap V4 swap. May batch 1\u20133 EVM txs: ERC-20 approve(s) to Permit2/router path + Universal Router swap (or 1 tx for native-in). Estimates gas, serializes unsigned txs, sets proposalTxParams. Output must be signed and POSTed to /multiSignRequest by the caller.",
1505
+ description: "Create and submit mpc-auth multiSignRequest for a Uniswap V4 swap. May batch 1\u20133 EVM txs: ERC-20 approve(s) + Universal Router swap (or 1 tx for native-in).",
1482
1506
  prerequisites: [
1483
1507
  "ctm_uniswap_v4_create_swap output + matching quote snapshot and swapDeadlineUnix",
1484
1508
  "keyGenId + chainId + purposeText"
1485
1509
  ],
1486
- followUp: ["Sign messageToSign", "POST /multiSignRequest with clientSig and signedMessage"],
1487
1510
  handler: { importPath: "protocols/evm/uniswap-v4", exportName: "buildEvmMultisignBodyUniswapV4SkipPermit2Batch" },
1488
- inputZod: mcpUniswapV4BuildSwapMultisignInputSchema,
1489
- outputZod: multisignOutputSchema
1511
+ inputZod: mcpUniswapV4BuildSwapMultisignInputSchema
1490
1512
  }),
1491
1513
  defineMcpTool({
1492
1514
  name: "ctm_uniswap_v4_list_lp_pools",
@@ -1516,24 +1538,22 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1516
1538
  inputZod: mcpUniswapV4LpCreatePositionInputSchema,
1517
1539
  outputZod: mcpUniswapV4LpCreatePositionOutputSchema
1518
1540
  }),
1519
- defineMcpTool({
1541
+ defineMultisignSubmitMcpTool({
1520
1542
  name: "ctm_uniswap_v4_build_mint_liquidity_multisign",
1521
1543
  actionId: "uniswap-v4.mint-liquidity",
1522
1544
  protocolId: "uniswap-v4",
1523
1545
  chainCategory: "evm",
1524
- description: "Build mpc-auth multiSignRequest for minting a Uniswap V4 LP position. Batches ERC-20 approve(s) + Position Manager tx from LP create response.",
1546
+ description: "Create and submit mpc-auth multiSignRequest for minting a Uniswap V4 LP position. Batches ERC-20 approve(s) + Position Manager tx from LP create response.",
1525
1547
  prerequisites: ["ctm_uniswap_v4_lp_create_position output", "keyGenId + chainId + purposeText"],
1526
1548
  followUp: [
1527
- "Sign messageToSign",
1528
- "POST /multiSignRequest",
1529
- "After execute: ctm_uniswap_v4_register_position_from_mint_tx (mint tx hash)"
1549
+ ...MCP_MULTISIGN_SUBMIT_FOLLOW_UP,
1550
+ "After broadcast: ctm_uniswap_v4_register_position_from_mint_tx (mint tx hash)"
1530
1551
  ],
1531
1552
  handler: {
1532
1553
  importPath: "protocols/evm/uniswap-v4",
1533
1554
  exportName: "buildEvmMultisignBodyUniswapV4MintLiquidityBatch"
1534
1555
  },
1535
- inputZod: mcpUniswapV4BuildMintLiquidityMultisignInputSchema,
1536
- outputZod: multisignOutputSchema
1556
+ inputZod: mcpUniswapV4BuildMintLiquidityMultisignInputSchema
1537
1557
  }),
1538
1558
  defineMcpTool({
1539
1559
  name: "ctm_uniswap_v4_lp_increase",
@@ -1547,20 +1567,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1547
1567
  inputZod: mcpUniswapV4LpIncreaseInputSchema,
1548
1568
  outputZod: mcpUniswapV4LpIncreaseOutputSchema
1549
1569
  }),
1550
- defineMcpTool({
1570
+ defineMultisignSubmitMcpTool({
1551
1571
  name: "ctm_uniswap_v4_build_increase_liquidity_multisign",
1552
1572
  actionId: "uniswap-v4.increase-liquidity",
1553
1573
  protocolId: "uniswap-v4",
1554
1574
  chainCategory: "evm",
1555
- description: "Build mpc-auth multiSignRequest to increase Uniswap V4 position liquidity.",
1575
+ description: "Create and submit mpc-auth multiSignRequest to increase Uniswap V4 position liquidity.",
1556
1576
  prerequisites: ["ctm_uniswap_v4_lp_increase output"],
1557
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1558
1577
  handler: {
1559
1578
  importPath: "protocols/evm/uniswap-v4",
1560
1579
  exportName: "buildEvmMultisignBodyUniswapV4IncreaseLiquidityBatch"
1561
1580
  },
1562
- inputZod: mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema,
1563
- outputZod: multisignOutputSchema
1581
+ inputZod: mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema
1564
1582
  }),
1565
1583
  defineMcpTool({
1566
1584
  name: "ctm_uniswap_v4_lp_decrease",
@@ -1574,20 +1592,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1574
1592
  inputZod: mcpUniswapV4LpDecreaseInputSchema,
1575
1593
  outputZod: mcpUniswapV4LpDecreaseOutputSchema
1576
1594
  }),
1577
- defineMcpTool({
1595
+ defineMultisignSubmitMcpTool({
1578
1596
  name: "ctm_uniswap_v4_build_decrease_liquidity_multisign",
1579
1597
  actionId: "uniswap-v4.decrease-liquidity",
1580
1598
  protocolId: "uniswap-v4",
1581
1599
  chainCategory: "evm",
1582
- description: "Build mpc-auth multiSignRequest to decrease Uniswap V4 position liquidity.",
1600
+ description: "Create and submit mpc-auth multiSignRequest to decrease Uniswap V4 position liquidity.",
1583
1601
  prerequisites: ["ctm_uniswap_v4_lp_decrease output"],
1584
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1585
1602
  handler: {
1586
1603
  importPath: "protocols/evm/uniswap-v4",
1587
1604
  exportName: "buildEvmMultisignBodyUniswapV4DecreaseLiquidityBatch"
1588
1605
  },
1589
- inputZod: mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema,
1590
- outputZod: multisignOutputSchema
1606
+ inputZod: mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema
1591
1607
  }),
1592
1608
  defineMcpTool({
1593
1609
  name: "ctm_uniswap_v4_lp_collect",
@@ -1601,20 +1617,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1601
1617
  inputZod: mcpUniswapV4LpClaimInputSchema,
1602
1618
  outputZod: mcpUniswapV4LpClaimOutputSchema
1603
1619
  }),
1604
- defineMcpTool({
1620
+ defineMultisignSubmitMcpTool({
1605
1621
  name: "ctm_uniswap_v4_build_collect_fees_multisign",
1606
1622
  actionId: "uniswap-v4.collect-fees",
1607
1623
  protocolId: "uniswap-v4",
1608
1624
  chainCategory: "evm",
1609
- description: "Build mpc-auth multiSignRequest to collect fees from a Uniswap V4 position.",
1625
+ description: "Create and submit mpc-auth multiSignRequest to collect fees from a Uniswap V4 position.",
1610
1626
  prerequisites: ["ctm_uniswap_v4_lp_collect output"],
1611
- followUp: ["Sign messageToSign", "POST /multiSignRequest"],
1612
1627
  handler: {
1613
1628
  importPath: "protocols/evm/uniswap-v4",
1614
1629
  exportName: "buildEvmMultisignBodyUniswapV4CollectFeesBatch"
1615
1630
  },
1616
- inputZod: mcpUniswapV4BuildCollectFeesMultisignInputSchema,
1617
- outputZod: multisignOutputSchema
1631
+ inputZod: mcpUniswapV4BuildCollectFeesMultisignInputSchema
1618
1632
  }),
1619
1633
  defineMcpTool({
1620
1634
  name: "ctm_uniswap_v4_lp_list_positions",
@@ -1677,21 +1691,19 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1677
1691
  inputZod: mcpCurveDaoQuoteInputSchema,
1678
1692
  outputZod: mcpCurveDaoQuoteOutputSchema
1679
1693
  }),
1680
- defineMcpTool({
1694
+ defineMultisignSubmitMcpTool({
1681
1695
  name: "ctm_curve_dao_build_swap_multisign",
1682
1696
  actionId: "curve-dao.swap",
1683
1697
  protocolId: "curve-dao",
1684
1698
  chainCategory: "evm",
1685
- description: "Build mpc-auth multiSignRequest for a Curve Router NG swap via @curvefi/api populateSwap. Optionally batches ERC-20 approve txs when allowance is insufficient, then exchange. Requires JSON-RPC and Curve-supported chain.",
1699
+ description: "Create and submit mpc-auth multiSignRequest for a Curve Router NG swap via @curvefi/api populateSwap. Optionally batches ERC-20 approve txs when allowance is insufficient, then exchange.",
1686
1700
  prerequisites: [
1687
1701
  "ctm_curve_dao_quote (recommended)",
1688
1702
  "keyGenId + chainId + purposeText + slippagePercent (0\u2013100 exclusive)",
1689
1703
  "get_defi_protocol_skill for tokenIn address rules"
1690
1704
  ],
1691
- followUp: ["Sign messageToSign", "POST /multiSignRequest with clientSig and signedMessage"],
1692
1705
  handler: { importPath: "protocols/evm/curve-dao", exportName: "buildEvmMultisignBodyCurveDaoBatch" },
1693
- inputZod: mcpCurveDaoBuildSwapMultisignInputSchema,
1694
- outputZod: multisignOutputSchema
1706
+ inputZod: mcpCurveDaoBuildSwapMultisignInputSchema
1695
1707
  }),
1696
1708
  defineMcpTool({
1697
1709
  name: "ctm_gmx_fetch_markets",
@@ -1819,6 +1831,7 @@ function getAgentCatalogForMcp() {
1819
1831
  protocols: getProtocolModules(),
1820
1832
  commonParams: EVM_COMMON_PARAM_DOCS,
1821
1833
  multisignOutput: MULTISIGN_OUTPUT_DOC,
1834
+ multisignSubmitOutput: MULTISIGN_SUBMIT_OUTPUT_DOC,
1822
1835
  managementSig: MANAGEMENT_SIG_DOC,
1823
1836
  /** Zod schemas for MCP tool I/O — source of truth for continuum-mcp-server validation. */
1824
1837
  inputSchemas: MCP_TOOL_INPUT_SCHEMAS,
@@ -1827,9 +1840,14 @@ function getAgentCatalogForMcp() {
1827
1840
  evmSwapTypical: [
1828
1841
  "1. Quote (protocol-specific API if needed)",
1829
1842
  "2. Build protocol calldata (e.g. create_swap)",
1830
- "3. build_*_multisign \u2192 { bodyForSign, messageToSign }",
1831
- "4. Sign messageToSign (MetaMask or Ed25519)",
1832
- "5. POST /multiSignRequest with clientSig and signedMessage"
1843
+ "3. build_*_multisign \u2192 { requestId } (MCP auto-submits)",
1844
+ "4. wait_for_sign_request_ready \u2192 sign_request_agree \u2192 trigger_sign_result \u2192 broadcast_sign_result"
1845
+ ],
1846
+ evmSwapManualTypical: [
1847
+ "1. Quote (protocol-specific API if needed)",
1848
+ "2. Build protocol calldata",
1849
+ "3. Protocol builder \u2192 { bodyForSign, messageToSign } (node app only)",
1850
+ "4. Sign messageToSign and POST /multiSignRequest with clientSig and signedMessage"
1833
1851
  ],
1834
1852
  managementPostTypical: [
1835
1853
  "1. GET /getNodeKey \u2192 nodeKey (128 hex)",
@@ -2407,12 +2425,26 @@ var SKILL_PROTOCOL_IDS = [
2407
2425
  function getToolsForProtocol(protocolId) {
2408
2426
  return MCP_TOOL_DEFINITIONS.filter((t) => t.protocolId === protocolId);
2409
2427
  }
2428
+ function readSharedMultisignMcpGasSection() {
2429
+ try {
2430
+ return readFileSync(join(skillsDir, "_shared", "multisign-mcp-gas.md"), "utf8").trim();
2431
+ } catch {
2432
+ return "";
2433
+ }
2434
+ }
2410
2435
  function getProtocolSkill(protocolId) {
2411
2436
  if (!SKILL_PROTOCOL_IDS.includes(protocolId)) {
2412
2437
  return void 0;
2413
2438
  }
2414
2439
  try {
2415
- return readFileSync(join(skillsDir, protocolId, "SKILL.md"), "utf8");
2440
+ const skill = readFileSync(join(skillsDir, protocolId, "SKILL.md"), "utf8").trim();
2441
+ const shared = readSharedMultisignMcpGasSection();
2442
+ if (!shared) return skill;
2443
+ if (skill.includes("## Gas and MCP submit")) return skill;
2444
+ return `${skill}
2445
+
2446
+ ${shared}
2447
+ `;
2416
2448
  } catch {
2417
2449
  return void 0;
2418
2450
  }
@@ -2671,22 +2703,6 @@ function getProtocolSupportAdvisor(protocolId) {
2671
2703
  function listProtocolSupportAdvisorIds() {
2672
2704
  return Object.keys(PROTOCOL_SUPPORT_ADVISORS);
2673
2705
  }
2674
- var mcpServerCommonInputSchema = z.object({
2675
- keyGenId: z.string().min(1).describe("KeyGen id from fetch_key_gen_result / node preferred KeyGen"),
2676
- chainId: z.number().int().positive().describe("EVM chain id; RPC and gas config resolved from chain registry"),
2677
- purposeText: z.string().min(1).describe("Human-readable purpose for the sign request"),
2678
- useCustomGas: z.boolean().optional().describe("Apply chain gas settings from registry when true")
2679
- });
2680
- function mcpServerMultisignInput(fields) {
2681
- return mcpServerCommonInputSchema.extend(fields);
2682
- }
2683
- var mcpServerSubmitOutputSchema = z.object({
2684
- requestId: z.string().min(1)
2685
- }).describe("mpc-auth multiSignRequest id; continue with trigger_sign_result / broadcast_sign_result");
2686
- var MCP_NON_SUBMIT_TOOL_NAMES = /* @__PURE__ */ new Set([
2687
- "ctm_uniswap_v4_quote",
2688
- "ctm_uniswap_v4_create_swap"
2689
- ]);
2690
2706
 
2691
2707
  // src/agent/catalog.ts
2692
2708
  registerProtocolModule(uniswapV4ProtocolModule);
@@ -2720,6 +2736,6 @@ function getAgentCatalog() {
2720
2736
  };
2721
2737
  }
2722
2738
 
2723
- 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, 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, multisignOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, 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, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
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 };
2724
2740
  //# sourceMappingURL=catalog.js.map
2725
2741
  //# sourceMappingURL=catalog.js.map