@continuumdao/ctm-mpc-defi 0.2.35 → 0.2.37

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.
@@ -1095,7 +1095,7 @@ var evmMultisignCommonInputSchema = z.object({
1095
1095
  chainDetail: chainDetailSchema.optional().describe("Server-filled gas row from chain registry when keyGenId is set."),
1096
1096
  customGasChainDetails: z.record(z.unknown()).optional().describe("Snapshot written to extraJSON.customGasChainDetails when useCustomGas is true."),
1097
1097
  expiryDate: z.number().int().positive().optional().describe(
1098
- "Optional Unix seconds (UTC) when the MPC sign request expires. Uniswap V4, GMX, Hyperliquid, Curve DAO, and Aerodrome default to 30 minutes when omitted; other protocols use the node default (7 days)."
1098
+ "Optional Unix seconds (UTC) when the MPC sign request expires. Uniswap V4, GMX, Hyperliquid, Curve DAO, Aerodrome, and Pendle default to 30 minutes when omitted; other protocols use the node default (7 days)."
1099
1099
  )
1100
1100
  });
1101
1101
  function withMultisignKeySourceRefine(schema) {
@@ -3255,6 +3255,55 @@ var mcpContinuumDaoForumSectionsInputSchema = z.object({
3255
3255
  forumUrl: z.string().optional()
3256
3256
  });
3257
3257
  var mcpContinuumDaoForumSectionsOutputSchema = z.unknown();
3258
+ var mpaKind = z.enum(["offer", "request", "directory", "opportunity"]);
3259
+ var mcpContinuumDaoMpaListingInputSchema = z.object({
3260
+ kind: mpaKind,
3261
+ title: z.string().min(8).max(128).optional(),
3262
+ summary: z.string().min(8).max(200),
3263
+ details: z.string().min(1).max(8e3),
3264
+ capabilities: z.array(z.enum(["research", "monitoring", "execution-proposal", "routing", "other"])).min(1),
3265
+ expiresAt: z.string().optional(),
3266
+ contact: z.string().optional(),
3267
+ ...forumUrlField
3268
+ });
3269
+ var mcpContinuumDaoMpaListingOutputSchema = z.unknown();
3270
+ var mcpContinuumDaoMpaRetractInputSchema = z.object({
3271
+ url: z.string().optional(),
3272
+ tid: z.union([z.string(), z.number()]).optional(),
3273
+ ...forumUrlField
3274
+ });
3275
+ var mcpContinuumDaoMpaRetractOutputSchema = z.unknown();
3276
+ var mcpContinuumDaoMpaFlagInputSchema = z.object({
3277
+ url: z.string().optional(),
3278
+ tid: z.union([z.string(), z.number()]).optional(),
3279
+ reason: z.string().min(1).max(500),
3280
+ ...forumUrlField
3281
+ });
3282
+ var mcpContinuumDaoMpaFlagOutputSchema = z.unknown();
3283
+ var mcpContinuumDaoMpaMailboxOpenInputSchema = z.object({
3284
+ username: z.string().min(1),
3285
+ content: z.string().max(8e3).optional(),
3286
+ ...forumUrlField
3287
+ });
3288
+ var mcpContinuumDaoMpaMailboxOpenOutputSchema = z.unknown();
3289
+ var mcpContinuumDaoMpaMailboxSendInputSchema = z.object({
3290
+ username: z.string().optional(),
3291
+ url: z.string().optional(),
3292
+ tid: z.union([z.string(), z.number()]).optional(),
3293
+ content: z.string().min(1).max(8e3),
3294
+ ...forumUrlField
3295
+ });
3296
+ var mcpContinuumDaoMpaMailboxSendOutputSchema = z.unknown();
3297
+ var mcpContinuumDaoMpaMailboxListInputSchema = z.object({
3298
+ ...forumUrlField
3299
+ });
3300
+ var mcpContinuumDaoMpaMailboxListOutputSchema = z.unknown();
3301
+ var mcpContinuumDaoTechnocoreBindInputSchema = z.object({
3302
+ did: z.string().min(1),
3303
+ signature: z.string().min(1),
3304
+ ...forumUrlField
3305
+ });
3306
+ var mcpContinuumDaoTechnocoreBindOutputSchema = z.unknown();
3258
3307
  var mcpContinuumDaoForumSignInEligibleInputSchema = z.object({
3259
3308
  address: evmAddressSchema.describe("KeyGen or personal wallet address to check against the forum veCTM login gate"),
3260
3309
  forumUrl: z.string().optional()
@@ -3414,6 +3463,193 @@ var mcpEthenaFetchSusdeApyOutputSchema = z.object({
3414
3463
  cooldownDurationSec: z.number().nullable(),
3415
3464
  notes: z.string()
3416
3465
  });
3466
+ var mcpPendleFetchMarketsInputSchema = z.object({
3467
+ chainId: agentEvmChainIdSchema,
3468
+ query: z.string().trim().min(1).optional().describe("Optional shrink filter on name, PT/YT/underlying symbol or address."),
3469
+ pointsOnly: z.boolean().optional().describe("If true, only markets with point campaigns.")
3470
+ });
3471
+ var mcpPendleFetchMarketsOutputSchema = jsonObjectSchema.describe(
3472
+ "{ chainId, markets[] (address, pt, yt, sy, underlying, expiry, impliedApy, tvlUsd, points), notes }. Live markets only, hard cap 100 TVL-ranked."
3473
+ );
3474
+ var mcpPendleFetchPricesInputSchema = z.object({
3475
+ chainId: agentEvmChainIdSchema,
3476
+ ids: z.array(z.string().min(1)).optional().describe("Asset ids (chainId-0x\u2026). Omit to price the current live listing."),
3477
+ query: z.string().trim().min(1).optional()
3478
+ });
3479
+ var mcpPendleFetchPricesOutputSchema = jsonObjectSchema.describe(
3480
+ "{ chainId, prices[] ({ id, usd }), notes }"
3481
+ );
3482
+ var mcpPendleSearchAssetsInputSchema = z.object({
3483
+ chainId: agentEvmChainIdSchema,
3484
+ query: z.string().trim().min(1).describe("Ticker, name, 0x address, or chainId-0x asset id.")
3485
+ });
3486
+ var mcpPendleSearchAssetsOutputSchema = jsonObjectSchema.describe(
3487
+ "{ chainId, results[] (live PT/YT/SY/market + expiry, liquidity, points), notes }"
3488
+ );
3489
+ var mcpPendleFetchPositionsInputSchema = z.object({
3490
+ user: evmAddressSchema.describe("KeyGen / wallet to list Pendle LP for."),
3491
+ chainId: agentEvmChainIdSchema.optional().describe("If set, only this chain. Omit for all Core chains."),
3492
+ filterUsd: z.number().min(0).optional().describe("Drop holdings below this USD valuation. Omit to keep dust.")
3493
+ });
3494
+ var mcpPendleFetchPositionsOutputSchema = jsonObjectSchema.describe(
3495
+ "{ user, chainId, lp[] (market, name, expiry, matured, lpAmountHuman, lpUsd), notes }. Includes matured. Not the node token list."
3496
+ );
3497
+ var mcpPendleFetchMerkleRewardsInputSchema = z.object({
3498
+ user: evmAddressSchema.describe("Wallet to list off-chain airdrop rows for (informational; no claim).")
3499
+ });
3500
+ var mcpPendleFetchMerkleRewardsOutputSchema = jsonObjectSchema.describe(
3501
+ "{ user, claimableRewards[], claimedRewards[], notes }. List only \u2014 cannot build a claim from these rows."
3502
+ );
3503
+ var mcpPendleQuoteSwapInputSchema = z.object({
3504
+ chainId: agentEvmChainIdSchema,
3505
+ rpcUrl: z.string().min(1).optional(),
3506
+ tokenIn: z.string().min(1).describe("Underlying, PT, or YT (0xeeee / 0x0 = native)."),
3507
+ tokenOut: z.string().min(1),
3508
+ amountHuman: z.string().min(1),
3509
+ slippagePercent: z.number().gt(0).lt(100),
3510
+ receiver: evmAddressSchema.optional(),
3511
+ enableAggregator: z.boolean().optional(),
3512
+ tokenInDecimals: z.number().int().min(0).max(18).optional()
3513
+ });
3514
+ var mcpPendleQuoteOutputSchema = jsonObjectSchema.describe(
3515
+ "Hosted SDK convert quote: action, outputs, priceImpact, impliedApy, requiredApprovals, tx (do not hardcode tx.to)."
3516
+ );
3517
+ var mcpPendleQuoteMintPyInputSchema = z.object({
3518
+ chainId: agentEvmChainIdSchema,
3519
+ rpcUrl: z.string().min(1).optional(),
3520
+ tokenIn: z.string().min(1),
3521
+ pt: evmAddressSchema,
3522
+ yt: evmAddressSchema,
3523
+ amountHuman: z.string().min(1),
3524
+ slippagePercent: z.number().gt(0).lt(100),
3525
+ receiver: evmAddressSchema.optional()
3526
+ });
3527
+ var mcpPendleQuoteRedeemPyInputSchema = z.object({
3528
+ chainId: agentEvmChainIdSchema,
3529
+ rpcUrl: z.string().min(1).optional(),
3530
+ pt: evmAddressSchema,
3531
+ yt: evmAddressSchema,
3532
+ tokenOut: z.string().min(1),
3533
+ amountPtHuman: z.string().min(1),
3534
+ amountYtHuman: z.string().min(1).optional(),
3535
+ slippagePercent: z.number().gt(0).lt(100),
3536
+ receiver: evmAddressSchema.optional()
3537
+ });
3538
+ var mcpPendleQuoteMintSyInputSchema = z.object({
3539
+ chainId: agentEvmChainIdSchema,
3540
+ rpcUrl: z.string().min(1).optional(),
3541
+ tokenIn: z.string().min(1),
3542
+ sy: evmAddressSchema,
3543
+ amountHuman: z.string().min(1),
3544
+ slippagePercent: z.number().gt(0).lt(100),
3545
+ receiver: evmAddressSchema.optional()
3546
+ });
3547
+ var mcpPendleQuoteRedeemSyInputSchema = z.object({
3548
+ chainId: agentEvmChainIdSchema,
3549
+ rpcUrl: z.string().min(1).optional(),
3550
+ sy: evmAddressSchema,
3551
+ tokenOut: z.string().min(1),
3552
+ amountHuman: z.string().min(1),
3553
+ slippagePercent: z.number().gt(0).lt(100),
3554
+ receiver: evmAddressSchema.optional()
3555
+ });
3556
+ var mcpPendleQuoteAddLiquidityInputSchema = z.object({
3557
+ chainId: agentEvmChainIdSchema,
3558
+ rpcUrl: z.string().min(1).optional(),
3559
+ tokensIn: z.array(z.object({ token: z.string().min(1), amountHuman: z.string().min(1) })).min(1),
3560
+ market: evmAddressSchema,
3561
+ keepYt: z.boolean().optional(),
3562
+ yt: evmAddressSchema.optional(),
3563
+ slippagePercent: z.number().gt(0).lt(100),
3564
+ receiver: evmAddressSchema.optional()
3565
+ });
3566
+ var mcpPendleQuoteRemoveLiquidityInputSchema = z.object({
3567
+ chainId: agentEvmChainIdSchema,
3568
+ rpcUrl: z.string().min(1).optional(),
3569
+ market: evmAddressSchema,
3570
+ lpAmountHuman: z.string().min(1),
3571
+ tokensOut: z.array(z.string().min(1)).min(1),
3572
+ slippagePercent: z.number().gt(0).lt(100),
3573
+ enableAggregator: z.boolean().optional(),
3574
+ receiver: evmAddressSchema.optional()
3575
+ });
3576
+ var mcpPendleBuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
3577
+ evmMultisignCommonInputSchema.extend({
3578
+ tokenIn: z.string().min(1),
3579
+ tokenOut: z.string().min(1),
3580
+ amountHuman: z.string().min(1),
3581
+ slippagePercent: z.number().gt(0).lt(100),
3582
+ enableAggregator: z.boolean().optional(),
3583
+ convertSnapshot: jsonObjectSchema.optional()
3584
+ })
3585
+ );
3586
+ var mcpPendleBuildMintPyMultisignInputSchema = withMultisignKeySourceRefine(
3587
+ evmMultisignCommonInputSchema.extend({
3588
+ tokenIn: z.string().min(1),
3589
+ pt: evmAddressSchema,
3590
+ yt: evmAddressSchema,
3591
+ amountHuman: z.string().min(1),
3592
+ slippagePercent: z.number().gt(0).lt(100),
3593
+ convertSnapshot: jsonObjectSchema.optional()
3594
+ })
3595
+ );
3596
+ var mcpPendleBuildRedeemPyMultisignInputSchema = withMultisignKeySourceRefine(
3597
+ evmMultisignCommonInputSchema.extend({
3598
+ pt: evmAddressSchema,
3599
+ yt: evmAddressSchema,
3600
+ tokenOut: z.string().min(1),
3601
+ amountPtHuman: z.string().min(1),
3602
+ amountYtHuman: z.string().min(1).optional(),
3603
+ slippagePercent: z.number().gt(0).lt(100),
3604
+ convertSnapshot: jsonObjectSchema.optional()
3605
+ })
3606
+ );
3607
+ var mcpPendleBuildMintSyMultisignInputSchema = withMultisignKeySourceRefine(
3608
+ evmMultisignCommonInputSchema.extend({
3609
+ tokenIn: z.string().min(1),
3610
+ sy: evmAddressSchema,
3611
+ amountHuman: z.string().min(1),
3612
+ slippagePercent: z.number().gt(0).lt(100),
3613
+ convertSnapshot: jsonObjectSchema.optional()
3614
+ })
3615
+ );
3616
+ var mcpPendleBuildRedeemSyMultisignInputSchema = withMultisignKeySourceRefine(
3617
+ evmMultisignCommonInputSchema.extend({
3618
+ sy: evmAddressSchema,
3619
+ tokenOut: z.string().min(1),
3620
+ amountHuman: z.string().min(1),
3621
+ slippagePercent: z.number().gt(0).lt(100),
3622
+ convertSnapshot: jsonObjectSchema.optional()
3623
+ })
3624
+ );
3625
+ var mcpPendleBuildAddLiquidityMultisignInputSchema = withMultisignKeySourceRefine(
3626
+ evmMultisignCommonInputSchema.extend({
3627
+ tokensIn: z.array(z.object({ token: z.string().min(1), amountHuman: z.string().min(1) })).min(1),
3628
+ market: evmAddressSchema,
3629
+ keepYt: z.boolean().optional(),
3630
+ yt: evmAddressSchema.optional(),
3631
+ slippagePercent: z.number().gt(0).lt(100),
3632
+ convertSnapshot: jsonObjectSchema.optional()
3633
+ })
3634
+ );
3635
+ var mcpPendleBuildRemoveLiquidityMultisignInputSchema = withMultisignKeySourceRefine(
3636
+ evmMultisignCommonInputSchema.extend({
3637
+ market: evmAddressSchema,
3638
+ lpAmountHuman: z.string().min(1),
3639
+ tokensOut: z.array(z.string().min(1)).min(1),
3640
+ slippagePercent: z.number().gt(0).lt(100),
3641
+ enableAggregator: z.boolean().optional(),
3642
+ convertSnapshot: jsonObjectSchema.optional()
3643
+ })
3644
+ );
3645
+ var mcpPendleBuildRedeemRewardsMultisignInputSchema = withMultisignKeySourceRefine(
3646
+ evmMultisignCommonInputSchema.extend({
3647
+ sys: z.array(evmAddressSchema).optional(),
3648
+ yts: z.array(evmAddressSchema).optional(),
3649
+ markets: z.array(evmAddressSchema).optional(),
3650
+ convertSnapshot: jsonObjectSchema.optional()
3651
+ })
3652
+ );
3417
3653
  var mcpCompoundV3FetchMarketsInputSchema = z.object({
3418
3654
  chainId: agentEvmChainIdSchema,
3419
3655
  rpcUrl: z.string().min(1).optional().describe("Server-filled from chain registry. Agents should omit.")
@@ -6990,7 +7226,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
6990
7226
  actionId: "continuum-dao.forum-reply",
6991
7227
  protocolId: "continuum-dao",
6992
7228
  chainCategory: "evm",
6993
- description: "Post an English reply (max 8000 characters) to a forum thread. Requires forumTicket from EIP-712 login.",
7229
+ description: "Post an English reply (max 8000 characters) to a forum thread (Ideas, Governance, or MPA listing). Requires forumTicket. Do not use for Agent Mail \u2014 use mpa_mailbox_send. Locked MPA listings refuse replies.",
6994
7230
  prerequisites: ["ticket", "content", "url or tid"],
6995
7231
  followUp: ["ctm_continuum_dao_forum_fetch_thread"],
6996
7232
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumReply" },
@@ -7026,19 +7262,115 @@ var CORE_MCP_TOOL_DEFINITIONS = [
7026
7262
  actionId: "continuum-dao.forum-create-idea",
7027
7263
  protocolId: "continuum-dao",
7028
7264
  chainCategory: "evm",
7029
- description: "Post an Idea or Suggestion (discussion only) to Ideas & Suggestions. Not a proposal and not a valid forumKey. Use this when the operator wants feedback before a Temperature Check, or the ask is not ready for on-chain governance. Wallet login required; proposalThreshold is not. Do not follow with build_propose_*.",
7265
+ description: "Post an Idea or Suggestion (discussion only) to Ideas & Suggestions for ContinuumDAO protocol / DAO management. Not a proposal and not a valid forumKey. Never use this for ads, agent discovery, DMs, or Technocore \u2014 those go in MPA Wallet Chat (mpa_post_*). Constitution CoC applies; spam or off-section posts are a ban.",
7030
7266
  prerequisites: ["ticket", "title", "content"],
7031
7267
  followUp: ["ctm_continuum_dao_forum_reply", "ctm_continuum_dao_forum_sign_out"],
7032
7268
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumCreateIdea" },
7033
7269
  inputZod: mcpContinuumDaoForumCreateIdeaInputSchema,
7034
7270
  outputZod: mcpContinuumDaoForumCreateIdeaOutputSchema
7035
7271
  }),
7272
+ defineMcpTool({
7273
+ name: "ctm_continuum_dao_mpa_post_listing",
7274
+ actionId: "continuum-dao.mpa-post-listing",
7275
+ protocolId: "continuum-dao",
7276
+ chainCategory: "evm",
7277
+ description: "Post one MPA Wallet Chat listing (offer, request, directory, or opportunity). Wallet login required; proposal threshold is not. One active listing per kind. Forum injects the HITL sentence. Never post ads to Ideas or Governance. Agents use this, not NodeBB chat.",
7278
+ prerequisites: ["ticket", "kind", "summary", "details", "capabilities"],
7279
+ followUp: ["ctm_continuum_dao_forum_reply", "ctm_continuum_dao_mpa_retract"],
7280
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaListing" },
7281
+ inputZod: mcpContinuumDaoMpaListingInputSchema,
7282
+ outputZod: mcpContinuumDaoMpaListingOutputSchema
7283
+ }),
7284
+ defineMcpTool({
7285
+ name: "ctm_continuum_dao_mpa_reply",
7286
+ actionId: "continuum-dao.mpa-reply",
7287
+ protocolId: "continuum-dao",
7288
+ chainCategory: "evm",
7289
+ description: "Reply on an MPA listing thread (30s cooldown). Locked listings refuse replies. Not for Agent Mail \u2014 use mpa_mailbox_send.",
7290
+ prerequisites: ["ticket", "content", "url or tid"],
7291
+ followUp: ["ctm_continuum_dao_forum_fetch_thread"],
7292
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumReply" },
7293
+ inputZod: mcpContinuumDaoForumReplyInputSchema,
7294
+ outputZod: mcpContinuumDaoForumReplyOutputSchema
7295
+ }),
7296
+ defineMcpTool({
7297
+ name: "ctm_continuum_dao_mpa_retract",
7298
+ actionId: "continuum-dao.mpa-retract",
7299
+ protocolId: "continuum-dao",
7300
+ chainCategory: "evm",
7301
+ description: "Retract your MPA listing (locks immediately; soft-delete 90 days later). Requires ticket and url or tid.",
7302
+ prerequisites: ["ticket", "url or tid"],
7303
+ followUp: ["ctm_continuum_dao_mpa_post_listing"],
7304
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaRetract" },
7305
+ inputZod: mcpContinuumDaoMpaRetractInputSchema,
7306
+ outputZod: mcpContinuumDaoMpaRetractOutputSchema
7307
+ }),
7308
+ defineMcpTool({
7309
+ name: "ctm_continuum_dao_mpa_flag",
7310
+ actionId: "continuum-dao.mpa-flag",
7311
+ protocolId: "continuum-dao",
7312
+ chainCategory: "evm",
7313
+ description: "Flag an MPA listing for moderators. Requires ticket, reason, and url or tid.",
7314
+ prerequisites: ["ticket", "reason", "url or tid"],
7315
+ followUp: ["ctm_continuum_dao_forum_fetch_thread"],
7316
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaFlag" },
7317
+ inputZod: mcpContinuumDaoMpaFlagInputSchema,
7318
+ outputZod: mcpContinuumDaoMpaFlagOutputSchema
7319
+ }),
7320
+ defineMcpTool({
7321
+ name: "ctm_continuum_dao_mpa_mailbox_list",
7322
+ actionId: "continuum-dao.mpa-mailbox-list",
7323
+ protocolId: "continuum-dao",
7324
+ chainCategory: "evm",
7325
+ description: "List Agent Mail threads for this KeyGen (KeyGens group). Agents never use NodeBB chat \u2014 mailbox only.",
7326
+ prerequisites: ["ticket"],
7327
+ followUp: ["ctm_continuum_dao_mpa_mailbox_send", "ctm_continuum_dao_forum_fetch_thread"],
7328
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaMailboxList" },
7329
+ inputZod: mcpContinuumDaoMpaMailboxListInputSchema,
7330
+ outputZod: mcpContinuumDaoMpaMailboxListOutputSchema
7331
+ }),
7332
+ defineMcpTool({
7333
+ name: "ctm_continuum_dao_mpa_mailbox_open",
7334
+ actionId: "continuum-dao.mpa-mailbox-open",
7335
+ protocolId: "continuum-dao",
7336
+ chainCategory: "evm",
7337
+ description: "Open or fetch the Agent Mail thread with another KeyGen username. Optional first content. KeyGens only; not NodeBB chat.",
7338
+ prerequisites: ["ticket", "username"],
7339
+ followUp: ["ctm_continuum_dao_mpa_mailbox_send"],
7340
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaMailboxOpen" },
7341
+ inputZod: mcpContinuumDaoMpaMailboxOpenInputSchema,
7342
+ outputZod: mcpContinuumDaoMpaMailboxOpenOutputSchema
7343
+ }),
7344
+ defineMcpTool({
7345
+ name: "ctm_continuum_dao_mpa_mailbox_send",
7346
+ actionId: "continuum-dao.mpa-mailbox-send",
7347
+ protocolId: "continuum-dao",
7348
+ chainCategory: "evm",
7349
+ description: "Send an Agent Mail message to another KeyGen (username or existing tid/url). Agents must use this, never NodeBB chat or forum_reply on mail threads.",
7350
+ prerequisites: ["ticket", "content", "username or url or tid"],
7351
+ followUp: ["ctm_continuum_dao_mpa_mailbox_list"],
7352
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaMailboxSend" },
7353
+ inputZod: mcpContinuumDaoMpaMailboxSendInputSchema,
7354
+ outputZod: mcpContinuumDaoMpaMailboxSendOutputSchema
7355
+ }),
7356
+ defineMcpTool({
7357
+ name: "ctm_continuum_dao_technocore_bind",
7358
+ actionId: "continuum-dao.technocore-bind",
7359
+ protocolId: "continuum-dao",
7360
+ chainCategory: "evm",
7361
+ description: "Bind a Technocore did:key to this forum user. Signature is Ed25519 over username|nodeKey|did|host. Durable identity; Technocore room posts stay ephemeral. Never paste the private key.",
7362
+ prerequisites: ["ticket", "did", "signature"],
7363
+ followUp: ["ctm_continuum_dao_forum_me"],
7364
+ handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoTechnocoreBind" },
7365
+ inputZod: mcpContinuumDaoTechnocoreBindInputSchema,
7366
+ outputZod: mcpContinuumDaoTechnocoreBindOutputSchema
7367
+ }),
7036
7368
  defineMcpTool({
7037
7369
  name: "ctm_continuum_dao_forum_me",
7038
7370
  actionId: "continuum-dao.forum-me",
7039
7371
  protocolId: "continuum-dao",
7040
7372
  chainCategory: "evm",
7041
- description: "Current forum user, votes, canPropose (Governance threads), and canPostIdea (Ideas & Suggestions).",
7373
+ description: "Current forum user, votes, canPropose (Governance), canPostIdea (Ideas), and canPostMpa (MPA Wallet Chat listings / mailbox).",
7042
7374
  prerequisites: [],
7043
7375
  followUp: [
7044
7376
  "ctm_continuum_dao_forum_unread",
@@ -7102,13 +7434,14 @@ var CORE_MCP_TOOL_DEFINITIONS = [
7102
7434
  actionId: "continuum-dao.forum-sections",
7103
7435
  protocolId: "continuum-dao",
7104
7436
  chainCategory: "evm",
7105
- description: "Forum category ids: ideas (discussion only) plus Governance proposal sections decision, election, treasury, constitution, admin. Use forum_create_idea for ideas; forum_create_topic for Governance.",
7437
+ description: "Forum category ids: ideas (DAO discussion), Governance (decision/election/treasury/constitution/admin), and MPA Wallet Chat (offer/request/directory/opportunity/mail/notices). Use forum_create_idea for DAO ideas; forum_create_topic for Governance; mpa_post_* for marketplace. Ads in Ideas or Governance are a ban.",
7106
7438
  prerequisites: [],
7107
7439
  followUp: [
7108
7440
  "ctm_continuum_dao_forum_recent",
7109
7441
  "ctm_continuum_dao_forum_search",
7110
7442
  "ctm_continuum_dao_forum_create_topic",
7111
- "ctm_continuum_dao_forum_create_idea"
7443
+ "ctm_continuum_dao_forum_create_idea",
7444
+ "ctm_continuum_dao_mpa_post_listing"
7112
7445
  ],
7113
7446
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumSections" },
7114
7447
  inputZod: mcpContinuumDaoForumSectionsInputSchema,
@@ -7251,6 +7584,238 @@ var CORE_MCP_TOOL_DEFINITIONS = [
7251
7584
  handler: { importPath: "protocols/evm/compound-v3", exportName: "compoundV3FetchAccountSummary" },
7252
7585
  inputZod: mcpCompoundV3FetchAccountInputSchema,
7253
7586
  outputZod: mcpCompoundV3FetchAccountOutputSchema
7587
+ }),
7588
+ defineMcpTool({
7589
+ name: "ctm_pendle_fetch_markets",
7590
+ actionId: "pendle.fetch-markets",
7591
+ protocolId: "pendle",
7592
+ chainCategory: "evm",
7593
+ description: "Pendle V2: live (unexpired) markets on chainId, scanned from Core, TVL-ranked, hard cap 100. Matured YT markets are omitted. Includes points[] campaigns. Use ctm_pendle_search_assets for long-tail or a specific expired market (PT redeem / remove LP). Never Convert. load_defi_protocol pendle activates this pack.",
7594
+ prerequisites: ["chainId in get_chain_registry \u2229 Pendle GET /v1/chains"],
7595
+ followUp: ["ctm_pendle_search_assets", "ctm_pendle_fetch_prices", "ctm_pendle_quote_swap"],
7596
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleFetchMarketsSummary" },
7597
+ inputZod: mcpPendleFetchMarketsInputSchema,
7598
+ outputZod: mcpPendleFetchMarketsOutputSchema
7599
+ }),
7600
+ defineMcpTool({
7601
+ name: "ctm_pendle_fetch_prices",
7602
+ actionId: "pendle.fetch-prices",
7603
+ protocolId: "pendle",
7604
+ chainCategory: "evm",
7605
+ description: "Pendle V2: USD prices for listed or searched asset ids (GET /v1/prices/assets). Do not use Convert as a ticker.",
7606
+ prerequisites: ["chainId", "ids from fetch_markets / search_assets (or omit to price the current live listing)"],
7607
+ followUp: ["ctm_pendle_quote_swap"],
7608
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleFetchPricesSummary" },
7609
+ inputZod: mcpPendleFetchPricesInputSchema,
7610
+ outputZod: mcpPendleFetchPricesOutputSchema
7611
+ }),
7612
+ defineMcpTool({
7613
+ name: "ctm_pendle_search_assets",
7614
+ actionId: "pendle.search-assets",
7615
+ protocolId: "pendle",
7616
+ chainCategory: "evm",
7617
+ description: "Pendle V2: search live markets by ticker, 0x, or chainId-0x. Prefers unexpired hits; returns a matured market only if nothing live matched or you looked up that address (PT redeem / remove LP). Returns expiry, APY, TVL, points.",
7618
+ prerequisites: ["chainId", "query (ticker, 0x, or chainId-0x)"],
7619
+ followUp: ["ctm_pendle_quote_swap", "ctm_pendle_quote_mint_py", "ctm_pendle_quote_add_liquidity"],
7620
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleSearchAssets" },
7621
+ inputZod: mcpPendleSearchAssetsInputSchema,
7622
+ outputZod: mcpPendleSearchAssetsOutputSchema
7623
+ }),
7624
+ defineMcpTool({
7625
+ name: "ctm_pendle_quote_swap",
7626
+ actionId: "pendle.quote-swap",
7627
+ protocolId: "pendle",
7628
+ chainCategory: "evm",
7629
+ description: "Pendle V2 Hosted SDK Convert quote: token \u2194 PT or YT (this is also how you trade points). Fresh calldata; do not cache as a price ticker.",
7630
+ prerequisites: ["ctm_pendle_fetch_markets or ctm_pendle_search_assets", "activate_tool_group pendle:swap"],
7631
+ followUp: ["ctm_pendle_build_swap_multisign"],
7632
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteSwap" },
7633
+ inputZod: mcpPendleQuoteSwapInputSchema,
7634
+ outputZod: mcpPendleQuoteOutputSchema
7635
+ }),
7636
+ defineMcpTool({
7637
+ name: "ctm_pendle_quote_mint_py",
7638
+ actionId: "pendle.quote-mint-py",
7639
+ protocolId: "pendle",
7640
+ chainCategory: "evm",
7641
+ description: "Pendle V2 Convert quote: mint PT+YT from an underlying or SY.",
7642
+ prerequisites: ["activate_tool_group pendle:mint"],
7643
+ followUp: ["ctm_pendle_build_mint_py_multisign"],
7644
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteMintPy" },
7645
+ inputZod: mcpPendleQuoteMintPyInputSchema,
7646
+ outputZod: mcpPendleQuoteOutputSchema
7647
+ }),
7648
+ defineMcpTool({
7649
+ name: "ctm_pendle_quote_redeem_py",
7650
+ actionId: "pendle.quote-redeem-py",
7651
+ protocolId: "pendle",
7652
+ chainCategory: "evm",
7653
+ description: "Pendle V2 Convert quote: redeem PT+YT to underlying or SY. After expiry, pass amountYtHuman 0 (PT only).",
7654
+ prerequisites: ["activate_tool_group pendle:mint"],
7655
+ followUp: ["ctm_pendle_build_redeem_py_multisign"],
7656
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteRedeemPy" },
7657
+ inputZod: mcpPendleQuoteRedeemPyInputSchema,
7658
+ outputZod: mcpPendleQuoteOutputSchema
7659
+ }),
7660
+ defineMcpTool({
7661
+ name: "ctm_pendle_quote_mint_sy",
7662
+ actionId: "pendle.quote-mint-sy",
7663
+ protocolId: "pendle",
7664
+ chainCategory: "evm",
7665
+ description: "Pendle V2 Convert quote: wrap underlying into SY.",
7666
+ prerequisites: ["activate_tool_group pendle:mint"],
7667
+ followUp: ["ctm_pendle_build_mint_sy_multisign"],
7668
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteMintSy" },
7669
+ inputZod: mcpPendleQuoteMintSyInputSchema,
7670
+ outputZod: mcpPendleQuoteOutputSchema
7671
+ }),
7672
+ defineMcpTool({
7673
+ name: "ctm_pendle_quote_redeem_sy",
7674
+ actionId: "pendle.quote-redeem-sy",
7675
+ protocolId: "pendle",
7676
+ chainCategory: "evm",
7677
+ description: "Pendle V2 Convert quote: unwrap SY to underlying.",
7678
+ prerequisites: ["activate_tool_group pendle:mint"],
7679
+ followUp: ["ctm_pendle_build_redeem_sy_multisign"],
7680
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteRedeemSy" },
7681
+ inputZod: mcpPendleQuoteRedeemSyInputSchema,
7682
+ outputZod: mcpPendleQuoteOutputSchema
7683
+ }),
7684
+ defineMcpTool({
7685
+ name: "ctm_pendle_quote_add_liquidity",
7686
+ actionId: "pendle.quote-add-liquidity",
7687
+ protocolId: "pendle",
7688
+ chainCategory: "evm",
7689
+ description: "Pendle V2 Convert quote: add LP. keepYt+yt = zero-price-impact (keep YT in the wallet instead of selling it into the AMM).",
7690
+ prerequisites: ["activate_tool_group pendle:lp"],
7691
+ followUp: ["ctm_pendle_build_add_liquidity_multisign"],
7692
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteAddLiquidity" },
7693
+ inputZod: mcpPendleQuoteAddLiquidityInputSchema,
7694
+ outputZod: mcpPendleQuoteOutputSchema
7695
+ }),
7696
+ defineMcpTool({
7697
+ name: "ctm_pendle_quote_remove_liquidity",
7698
+ actionId: "pendle.quote-remove-liquidity",
7699
+ protocolId: "pendle",
7700
+ chainCategory: "evm",
7701
+ description: "Pendle V2 Convert quote: remove LP to tokensOut (use underlying). After expiry still works. Copy market + lpAmountHuman from ctm_pendle_fetch_positions.",
7702
+ prerequisites: ["activate_tool_group pendle:lp", "market + lpAmountHuman from fetch_positions or the user"],
7703
+ followUp: ["ctm_pendle_build_remove_liquidity_multisign"],
7704
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleQuoteRemoveLiquidity" },
7705
+ inputZod: mcpPendleQuoteRemoveLiquidityInputSchema,
7706
+ outputZod: mcpPendleQuoteOutputSchema
7707
+ }),
7708
+ defineMcpTool({
7709
+ name: "ctm_pendle_fetch_positions",
7710
+ actionId: "pendle.fetch-positions",
7711
+ protocolId: "pendle",
7712
+ chainCategory: "evm",
7713
+ description: "Pendle V2: this wallet\u2019s LP holdings from official Core dashboard (including matured). Not the node token list. Use before remove LP. ~4 CU. Do not treat claimable amounts here as a live redeem quote.",
7714
+ prerequisites: ["activate_tool_group pendle:lp", "user address", "optional chainId"],
7715
+ followUp: ["ctm_pendle_quote_remove_liquidity"],
7716
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleFetchPositions" },
7717
+ inputZod: mcpPendleFetchPositionsInputSchema,
7718
+ outputZod: mcpPendleFetchPositionsOutputSchema
7719
+ }),
7720
+ defineMultisignSubmitMcpTool({
7721
+ name: "ctm_pendle_build_swap_multisign",
7722
+ actionId: "pendle.swap",
7723
+ protocolId: "pendle",
7724
+ chainCategory: "evm",
7725
+ description: "Pendle V2: approve Convert tx.to then swap token \u2194 PT/YT. 30-min multiSign expiry unless expiryDate is set. Fresh Convert at build time.",
7726
+ prerequisites: [
7727
+ "ctm_pendle_quote_swap",
7728
+ "get_multi_sign_gas_options + user confirms useCustomGas and 30-minute deadline",
7729
+ "keyGenId + chainId + purposeText + slippagePercent"
7730
+ ],
7731
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleSwapBatch" },
7732
+ inputZod: mcpPendleBuildSwapMultisignInputSchema
7733
+ }),
7734
+ defineMultisignSubmitMcpTool({
7735
+ name: "ctm_pendle_build_mint_py_multisign",
7736
+ actionId: "pendle.mint-py",
7737
+ protocolId: "pendle",
7738
+ chainCategory: "evm",
7739
+ description: "Pendle V2: mint PT+YT multiSign (approve + Convert). 30-min expiry default.",
7740
+ prerequisites: ["ctm_pendle_quote_mint_py", "keyGenId + purposeText + slippagePercent"],
7741
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleMintPyBatch" },
7742
+ inputZod: mcpPendleBuildMintPyMultisignInputSchema
7743
+ }),
7744
+ defineMultisignSubmitMcpTool({
7745
+ name: "ctm_pendle_build_redeem_py_multisign",
7746
+ actionId: "pendle.redeem-py",
7747
+ protocolId: "pendle",
7748
+ chainCategory: "evm",
7749
+ description: "Pendle V2: redeem PT+YT multiSign. After expiry, pass amountYtHuman 0 (PT only). 30-min expiry default.",
7750
+ prerequisites: ["ctm_pendle_quote_redeem_py", "keyGenId + purposeText + slippagePercent"],
7751
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRedeemPyBatch" },
7752
+ inputZod: mcpPendleBuildRedeemPyMultisignInputSchema
7753
+ }),
7754
+ defineMultisignSubmitMcpTool({
7755
+ name: "ctm_pendle_build_mint_sy_multisign",
7756
+ actionId: "pendle.mint-sy",
7757
+ protocolId: "pendle",
7758
+ chainCategory: "evm",
7759
+ description: "Pendle V2: mint SY multiSign. 30-min expiry default.",
7760
+ prerequisites: ["ctm_pendle_quote_mint_sy", "keyGenId + purposeText + slippagePercent"],
7761
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleMintSyBatch" },
7762
+ inputZod: mcpPendleBuildMintSyMultisignInputSchema
7763
+ }),
7764
+ defineMultisignSubmitMcpTool({
7765
+ name: "ctm_pendle_build_redeem_sy_multisign",
7766
+ actionId: "pendle.redeem-sy",
7767
+ protocolId: "pendle",
7768
+ chainCategory: "evm",
7769
+ description: "Pendle V2: redeem SY multiSign. 30-min expiry default.",
7770
+ prerequisites: ["ctm_pendle_quote_redeem_sy", "keyGenId + purposeText + slippagePercent"],
7771
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRedeemSyBatch" },
7772
+ inputZod: mcpPendleBuildRedeemSyMultisignInputSchema
7773
+ }),
7774
+ defineMultisignSubmitMcpTool({
7775
+ name: "ctm_pendle_build_add_liquidity_multisign",
7776
+ actionId: "pendle.add-liquidity",
7777
+ protocolId: "pendle",
7778
+ chainCategory: "evm",
7779
+ description: "Pendle V2: add LP multiSign. 30-min expiry default.",
7780
+ prerequisites: ["ctm_pendle_quote_add_liquidity", "keyGenId + purposeText + slippagePercent"],
7781
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleAddLiquidityBatch" },
7782
+ inputZod: mcpPendleBuildAddLiquidityMultisignInputSchema
7783
+ }),
7784
+ defineMultisignSubmitMcpTool({
7785
+ name: "ctm_pendle_build_remove_liquidity_multisign",
7786
+ actionId: "pendle.remove-liquidity",
7787
+ protocolId: "pendle",
7788
+ chainCategory: "evm",
7789
+ description: "Pendle V2: remove LP multiSign. 30-min expiry default.",
7790
+ prerequisites: ["ctm_pendle_quote_remove_liquidity", "keyGenId + purposeText + slippagePercent"],
7791
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRemoveLiquidityBatch" },
7792
+ inputZod: mcpPendleBuildRemoveLiquidityMultisignInputSchema
7793
+ }),
7794
+ defineMcpTool({
7795
+ name: "ctm_pendle_fetch_merkle_rewards",
7796
+ actionId: "pendle.fetch-merkle-rewards",
7797
+ protocolId: "pendle",
7798
+ chainCategory: "evm",
7799
+ description: "Pendle V2: list off-chain airdrop rows for a wallet (token, amount). Informational only \u2014 Core has no claim proofs. Tell the user to claim airdrops on app.pendle.finance. Do not invent a claim tx. On-chain SY/YT/LP incentives use ctm_pendle_build_redeem_rewards_multisign.",
7800
+ prerequisites: ["activate_tool_group pendle:rewards", "user address"],
7801
+ followUp: [],
7802
+ handler: { importPath: "protocols/evm/pendle", exportName: "pendleFetchMerkleRewards" },
7803
+ inputZod: mcpPendleFetchMerkleRewardsInputSchema,
7804
+ outputZod: mcpPendleFetchMerkleRewardsOutputSchema
7805
+ }),
7806
+ defineMultisignSubmitMcpTool({
7807
+ name: "ctm_pendle_build_redeem_rewards_multisign",
7808
+ actionId: "pendle.redeem-rewards",
7809
+ protocolId: "pendle",
7810
+ chainCategory: "evm",
7811
+ description: "Pendle V2: redeem on-chain interest and incentives from SY, YT, and LP (usually PENDLE) via Hosted SDK. Not merkle airdrops. 30-min expiry default.",
7812
+ prerequisites: [
7813
+ "activate_tool_group pendle:rewards",
7814
+ "sys / yts / markets from fetch_markets or search",
7815
+ "keyGenId + purposeText"
7816
+ ],
7817
+ handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRedeemRewardsBatch" },
7818
+ inputZod: mcpPendleBuildRedeemRewardsMultisignInputSchema
7254
7819
  })
7255
7820
  ];
7256
7821
  var MCP_TOOL_DEFINITIONS = [
@@ -7501,6 +8066,17 @@ registerProtocolModule(ethenaProtocolModule);
7501
8066
  function isMapleSyrupSupportedChain(chainId) {
7502
8067
  return chainId === 1 || chainId === 11155111;
7503
8068
  }
8069
+ function matchesAssetFilter(opts) {
8070
+ const f = (opts.filter ?? "").trim();
8071
+ if (!f) return true;
8072
+ const addr = (opts.address ?? "").trim();
8073
+ if (isAddress(f) && isAddress(addr)) {
8074
+ return getAddress(addr) === getAddress(f);
8075
+ }
8076
+ const sym = (opts.symbol ?? "").trim();
8077
+ if (!sym) return false;
8078
+ return sym.toLowerCase() === f.toLowerCase();
8079
+ }
7504
8080
 
7505
8081
  // src/protocols/evm/maple/index.ts
7506
8082
  var MAPLE_PROTOCOL_ID = "maple-syrup";
@@ -9799,6 +10375,347 @@ var compoundV3ProtocolModule = {
9799
10375
  ]
9800
10376
  };
9801
10377
  registerProtocolModule(compoundV3ProtocolModule);
10378
+
10379
+ // src/protocols/evm/pendle/support.ts
10380
+ var PENDLE_PROTOCOL_ID = "pendle";
10381
+ var PENDLE_CORE_API_BASE = "https://api-v2.pendle.finance/core";
10382
+ var PENDLE_LISTING_CAP = 100;
10383
+ var PENDLE_LISTING_MAX_PAGES = 8;
10384
+ var PENDLE_ICON_CACHE_MS = 12 * 60 * 1e3;
10385
+ var PENDLE_CHAIN_CACHE_MS = 30 * 60 * 1e3;
10386
+ function parsePendleAssetId(id) {
10387
+ const raw = (id ?? "").trim();
10388
+ const dash = raw.indexOf("-");
10389
+ if (dash <= 0) return null;
10390
+ const chainId = Number.parseInt(raw.slice(0, dash), 10);
10391
+ const address = raw.slice(dash + 1).trim();
10392
+ if (!Number.isFinite(chainId) || chainId <= 0 || !address) return null;
10393
+ return { chainId, address };
10394
+ }
10395
+
10396
+ // src/protocols/evm/pendle/api.ts
10397
+ var FETCH_TIMEOUT_MS = 12e4;
10398
+ var PendleApiError = class extends Error {
10399
+ status;
10400
+ path;
10401
+ constructor(message, status, path) {
10402
+ super(message);
10403
+ this.name = "PendleApiError";
10404
+ this.status = status;
10405
+ this.path = path;
10406
+ }
10407
+ };
10408
+ function sleep(ms) {
10409
+ return new Promise((resolve) => setTimeout(resolve, ms));
10410
+ }
10411
+ function queryString(params) {
10412
+ const q = new URLSearchParams();
10413
+ for (const [k, v] of Object.entries(params)) {
10414
+ if (v === void 0 || v === "") continue;
10415
+ q.set(k, String(v));
10416
+ }
10417
+ const s = q.toString();
10418
+ return s ? `?${s}` : "";
10419
+ }
10420
+ async function pendleCoreFetch(args) {
10421
+ const path = args.path.startsWith("/") ? args.path : `/${args.path}`;
10422
+ const url = `${PENDLE_CORE_API_BASE}${path}${queryString(args.query ?? {})}`;
10423
+ const headers = { Accept: "application/json" };
10424
+ if (args.apiKey?.trim()) headers.Authorization = `Bearer ${args.apiKey.trim()}`;
10425
+ if (args.body !== void 0) headers["Content-Type"] = "application/json";
10426
+ let lastError;
10427
+ for (let attempt = 0; attempt < 4; attempt++) {
10428
+ const ac = new AbortController();
10429
+ const timer = setTimeout(() => ac.abort(), FETCH_TIMEOUT_MS);
10430
+ try {
10431
+ const res = await fetch(url, {
10432
+ method: args.method ?? "GET",
10433
+ headers,
10434
+ body: args.body === void 0 ? void 0 : JSON.stringify(args.body),
10435
+ signal: ac.signal
10436
+ });
10437
+ if (res.status === 429) {
10438
+ const wait = Math.min(8e3, 500 * 2 ** attempt);
10439
+ await sleep(wait);
10440
+ lastError = new PendleApiError(`Pendle API rate limited (429) on ${path}`, 429, path);
10441
+ continue;
10442
+ }
10443
+ const text = await res.text();
10444
+ if (!res.ok) {
10445
+ throw new PendleApiError(
10446
+ `Pendle API ${res.status} ${path}: ${text.slice(0, 400)}`,
10447
+ res.status,
10448
+ path
10449
+ );
10450
+ }
10451
+ if (!text.trim()) return {};
10452
+ return JSON.parse(text);
10453
+ } catch (err) {
10454
+ lastError = err;
10455
+ if (err instanceof PendleApiError && err.status !== 429) throw err;
10456
+ if (attempt < 3 && (err instanceof PendleApiError || err?.name === "AbortError")) {
10457
+ await sleep(Math.min(8e3, 400 * 2 ** attempt));
10458
+ continue;
10459
+ }
10460
+ throw err;
10461
+ } finally {
10462
+ clearTimeout(timer);
10463
+ }
10464
+ }
10465
+ throw lastError instanceof Error ? lastError : new Error(String(lastError));
10466
+ }
10467
+
10468
+ // src/protocols/evm/pendle/discover.ts
10469
+ var marketsCacheByChain = /* @__PURE__ */ new Map();
10470
+ var chainIdsCache = null;
10471
+ function asRecord(v) {
10472
+ return v && typeof v === "object" && !Array.isArray(v) ? v : null;
10473
+ }
10474
+ function asNumber(v) {
10475
+ if (typeof v === "number" && Number.isFinite(v)) return v;
10476
+ if (typeof v === "string" && v.trim()) {
10477
+ const n = Number.parseFloat(v);
10478
+ return Number.isFinite(n) ? n : null;
10479
+ }
10480
+ return null;
10481
+ }
10482
+ function asString(v) {
10483
+ if (typeof v === "string" && v.trim()) return v.trim();
10484
+ return null;
10485
+ }
10486
+ function asExpiry(v) {
10487
+ const s = asString(v);
10488
+ if (s) return s;
10489
+ const n = asNumber(v);
10490
+ if (n == null) return null;
10491
+ const ms = n < 1e12 ? n * 1e3 : n;
10492
+ return new Date(ms).toISOString();
10493
+ }
10494
+ function pendleMarketExpiryMs(expiry) {
10495
+ const raw = (expiry ?? "").trim();
10496
+ if (!raw) return null;
10497
+ if (/^\d+$/.test(raw)) {
10498
+ const n = Number(raw);
10499
+ return n < 1e12 ? n * 1e3 : n;
10500
+ }
10501
+ const t = Date.parse(raw);
10502
+ return Number.isFinite(t) ? t : null;
10503
+ }
10504
+ function isPendleMarketExpired(row, nowMs = Date.now()) {
10505
+ const t = pendleMarketExpiryMs(row.expiry);
10506
+ if (t == null) return false;
10507
+ return t <= nowMs;
10508
+ }
10509
+ function marketMatchesPin(row, address) {
10510
+ const a = address.trim().toLowerCase();
10511
+ if (!a) return false;
10512
+ return [row.address, row.pt, row.yt, row.sy].some((x) => x.toLowerCase() === a);
10513
+ }
10514
+ function selectPendleListingMarkets(rows, args = {}) {
10515
+ const nowMs = args.nowMs ?? Date.now();
10516
+ const cap = args.cap ?? PENDLE_LISTING_CAP;
10517
+ const pins = (args.includeAddresses ?? []).map((a) => a.trim().toLowerCase()).filter(Boolean);
10518
+ const q = (args.query ?? "").trim();
10519
+ let out = rows.filter((r) => {
10520
+ const pinned = pins.some((p) => marketMatchesPin(r, p));
10521
+ if (!args.includeExpired && !pinned && isPendleMarketExpired(r, nowMs)) return false;
10522
+ if (args.pointsOnly && r.points.length === 0) return false;
10523
+ if (q && !marketMatchesQuery(r, q)) return false;
10524
+ return true;
10525
+ });
10526
+ out.sort(sortPendleMarketsByTvl);
10527
+ return out.slice(0, cap);
10528
+ }
10529
+ function addressFromAssetIdOrHex(raw, fallbackChainId) {
10530
+ if (typeof raw !== "string" || !raw.trim()) return null;
10531
+ const parsed = parsePendleAssetId(raw);
10532
+ if (parsed) {
10533
+ try {
10534
+ return getAddress(parsed.address);
10535
+ } catch {
10536
+ return parsed.address.toLowerCase();
10537
+ }
10538
+ }
10539
+ if (isAddress(raw)) return getAddress(raw);
10540
+ if (raw.startsWith(`${fallbackChainId}-`)) {
10541
+ const rest = raw.slice(String(fallbackChainId).length + 1);
10542
+ if (isAddress(rest)) return getAddress(rest);
10543
+ }
10544
+ return null;
10545
+ }
10546
+ function parsePoints(raw) {
10547
+ if (!Array.isArray(raw)) return [];
10548
+ const out = [];
10549
+ for (const item of raw) {
10550
+ const o = asRecord(item);
10551
+ if (!o) continue;
10552
+ const name = asString(o.name) ?? asString(o.key) ?? asString(o.pointName);
10553
+ if (!name) continue;
10554
+ out.push({
10555
+ name,
10556
+ type: asString(o.type),
10557
+ pendleAsset: asString(o.pendleAsset),
10558
+ value: asNumber(o.value)
10559
+ });
10560
+ }
10561
+ return out;
10562
+ }
10563
+ function marketTvlUsd(row) {
10564
+ return row.tvlUsd ?? row.liquidityUsd ?? 0;
10565
+ }
10566
+ function sortPendleMarketsByTvl(a, b) {
10567
+ const d = marketTvlUsd(b) - marketTvlUsd(a);
10568
+ if (d !== 0) return d;
10569
+ return a.name.localeCompare(b.name, void 0, { sensitivity: "base" });
10570
+ }
10571
+ function parsePendleMarket(raw) {
10572
+ const o = asRecord(raw);
10573
+ if (!o) return null;
10574
+ const chainId = asNumber(o.chainId);
10575
+ const address = addressFromAssetIdOrHex(o.address, chainId ?? 0);
10576
+ if (chainId == null || !address) return null;
10577
+ const details = asRecord(o.details);
10578
+ const tvl = asNumber(o.tvl) ?? asNumber(details?.tvl) ?? asNumber(details?.totalTvl) ?? asNumber(asRecord(details?.liquidity)?.usd);
10579
+ const liquidity = asNumber(o.liquidity) ?? asNumber(details?.liquidity) ?? asNumber(asRecord(details?.liquidity)?.usd);
10580
+ const impliedApy = asNumber(o.impliedApy) ?? asNumber(details?.impliedApy) ?? asNumber(asRecord(o.pt)?.impliedApy);
10581
+ const pt = addressFromAssetIdOrHex(o.pt ?? asRecord(o.pt)?.address ?? asRecord(o.pt)?.id, chainId);
10582
+ const yt = addressFromAssetIdOrHex(o.yt ?? asRecord(o.yt)?.address ?? asRecord(o.yt)?.id, chainId);
10583
+ const sy = addressFromAssetIdOrHex(o.sy ?? asRecord(o.sy)?.address ?? asRecord(o.sy)?.id, chainId);
10584
+ const underlying = addressFromAssetIdOrHex(
10585
+ o.underlyingAsset ?? o.underlying ?? asRecord(o.underlyingAsset)?.address,
10586
+ chainId
10587
+ );
10588
+ if (!pt || !yt || !sy || !underlying) return null;
10589
+ const expired = asExpiry(o.expiry) ?? asExpiry(details?.expiry);
10590
+ return {
10591
+ chainId,
10592
+ name: asString(o.name) ?? asString(o.proSymbol) ?? `${address.slice(0, 8)}\u2026`,
10593
+ address,
10594
+ expiry: expired,
10595
+ pt,
10596
+ yt,
10597
+ sy,
10598
+ underlying,
10599
+ underlyingSymbol: asString(asRecord(o.underlyingAsset)?.symbol) ?? asString(o.underlyingSymbol),
10600
+ ptSymbol: asString(asRecord(o.pt)?.symbol) ?? asString(o.ptSymbol),
10601
+ ytSymbol: asString(asRecord(o.yt)?.symbol) ?? asString(o.ytSymbol),
10602
+ impliedApy,
10603
+ tvlUsd: tvl,
10604
+ liquidityUsd: liquidity,
10605
+ points: parsePoints(o.points ?? details?.points)
10606
+ };
10607
+ }
10608
+ async function pendleFetchSupportedChainIds() {
10609
+ const now = Date.now();
10610
+ if (chainIdsCache && now - chainIdsCache.at < PENDLE_CHAIN_CACHE_MS) return chainIdsCache.chainIds;
10611
+ const json = await pendleCoreFetch({ path: "/v1/chains" });
10612
+ const ids = Array.isArray(json.chainIds) ? json.chainIds.map((n) => Number(n)).filter((n) => Number.isFinite(n) && n > 0) : [];
10613
+ chainIdsCache = { at: now, chainIds: ids };
10614
+ return ids;
10615
+ }
10616
+ async function isPendleChainSupported(chainId) {
10617
+ try {
10618
+ const ids = await pendleFetchSupportedChainIds();
10619
+ if (ids.length === 0) return true;
10620
+ return ids.includes(chainId);
10621
+ } catch {
10622
+ return true;
10623
+ }
10624
+ }
10625
+ async function pendleFetchMarketsPage(args) {
10626
+ const limit = Math.min(PENDLE_LISTING_CAP, Math.max(1, args.limit));
10627
+ const json = await pendleCoreFetch({
10628
+ path: "/v2/markets/all",
10629
+ query: {
10630
+ skip: args.skip ?? 0,
10631
+ limit,
10632
+ ...args.chainId != null ? { chainId: args.chainId } : {}
10633
+ }
10634
+ });
10635
+ const raw = Array.isArray(json.markets) ? json.markets : Array.isArray(json.results) ? json.results : [];
10636
+ const rows = [];
10637
+ for (const item of raw) {
10638
+ const row = parsePendleMarket(item);
10639
+ if (row) rows.push(row);
10640
+ }
10641
+ return rows;
10642
+ }
10643
+ async function pendleFetchMarketsForChain(chainId) {
10644
+ const now = Date.now();
10645
+ const cached2 = marketsCacheByChain.get(chainId);
10646
+ if (cached2 && now - cached2.at < PENDLE_ICON_CACHE_MS) return cached2.rows;
10647
+ const rows = [];
10648
+ for (let page = 0; page < PENDLE_LISTING_MAX_PAGES; page++) {
10649
+ const batch = await pendleFetchMarketsPage({
10650
+ skip: page * PENDLE_LISTING_CAP,
10651
+ limit: PENDLE_LISTING_CAP,
10652
+ chainId
10653
+ });
10654
+ const onChain = batch.filter((r) => r.chainId === chainId);
10655
+ rows.push(...onChain);
10656
+ if (batch.length < PENDLE_LISTING_CAP || onChain.length === 0) break;
10657
+ }
10658
+ marketsCacheByChain.set(chainId, { at: now, rows });
10659
+ return rows;
10660
+ }
10661
+ function marketMatchesQuery(row, query) {
10662
+ const q = query.trim();
10663
+ if (!q) return true;
10664
+ if (matchesAssetFilter({ address: row.address, symbol: row.name, filter: q }) || matchesAssetFilter({ address: row.pt, symbol: row.ptSymbol ?? void 0, filter: q }) || matchesAssetFilter({ address: row.yt, symbol: row.ytSymbol ?? void 0, filter: q }) || matchesAssetFilter({ address: row.sy, filter: q }) || matchesAssetFilter({ address: row.underlying, symbol: row.underlyingSymbol ?? void 0, filter: q })) {
10665
+ return true;
10666
+ }
10667
+ const hay = `${row.name} ${row.ptSymbol ?? ""} ${row.ytSymbol ?? ""} ${row.underlyingSymbol ?? ""}`.toLowerCase();
10668
+ return hay.includes(q.toLowerCase());
10669
+ }
10670
+ async function pendleFetchMarketsSummary(args) {
10671
+ if (!await isPendleChainSupported(args.chainId)) {
10672
+ return {
10673
+ chainId: args.chainId,
10674
+ markets: [],
10675
+ notes: `Pendle Core API does not list chain ${args.chainId}.`
10676
+ };
10677
+ }
10678
+ const scanned = await pendleFetchMarketsForChain(args.chainId);
10679
+ const rows = selectPendleListingMarkets(scanned, {
10680
+ query: args.query,
10681
+ pointsOnly: args.pointsOnly,
10682
+ includeAddresses: args.includeAddresses
10683
+ });
10684
+ const expiredOmitted = scanned.filter((r) => isPendleMarketExpired(r)).length;
10685
+ return {
10686
+ chainId: args.chainId,
10687
+ markets: rows,
10688
+ notes: `Top ${rows.length} active Pendle markets on chain ${args.chainId} by TVL/liquidity (scanned ${scanned.length}, omitted ${expiredOmitted} matured). Use ctm_pendle_search_assets for long-tail or expired markets (PT redeem / remove LP). Do not web-search Pendle APYs.`
10689
+ };
10690
+ }
10691
+
10692
+ // src/protocols/evm/pendle/index.ts
10693
+ var pendleProtocolModule = {
10694
+ id: PENDLE_PROTOCOL_ID,
10695
+ chainCategory: "evm",
10696
+ isChainSupported(ctx) {
10697
+ if (ctx.chainCategory !== "evm") return false;
10698
+ const n = typeof ctx.chainId === "number" ? ctx.chainId : Number.parseInt(String(ctx.chainId), 10);
10699
+ if (!Number.isFinite(n)) return false;
10700
+ return isPendleChainSupported(n);
10701
+ },
10702
+ isTokenSupported(token) {
10703
+ if (token.category !== "evm") return false;
10704
+ return token.kind === "native" || token.kind === "erc20";
10705
+ },
10706
+ actions: [
10707
+ { id: "pendle.fetch-markets", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "List live Pendle markets (TVL-ranked, cap 100, matured omitted)", commonParams: [], params: {} },
10708
+ { id: "pendle.search-assets", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Search live PT/YT/SY/underlying (matured only if address-pinned)", commonParams: [], params: {} },
10709
+ { id: "pendle.swap", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Swap token \u2194 PT/YT via Hosted SDK convert", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
10710
+ { id: "pendle.mint-py", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Mint PT + YT", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
10711
+ { id: "pendle.redeem-py", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Redeem PT + YT (PT only after expiry)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
10712
+ { id: "pendle.add-liquidity", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Add Pendle AMM liquidity", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
10713
+ { id: "pendle.fetch-positions", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "List this wallet\u2019s Pendle LP (including matured)", commonParams: [], params: {} },
10714
+ { id: "pendle.remove-liquidity", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Remove Pendle AMM liquidity", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
10715
+ { id: "pendle.redeem-rewards", protocolId: PENDLE_PROTOCOL_ID, chainCategory: "evm", description: "Redeem on-chain SY/YT/LP interest and incentives (not merkle airdrops)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
10716
+ ]
10717
+ };
10718
+ registerProtocolModule(pendleProtocolModule);
9802
10719
  var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
9803
10720
  var SKILL_PROTOCOL_IDS = [
9804
10721
  "aave-v4",
@@ -9815,6 +10732,7 @@ var SKILL_PROTOCOL_IDS = [
9815
10732
  "morpho",
9816
10733
  "circle-cctp",
9817
10734
  "aerodrome",
10735
+ "pendle",
9818
10736
  "continuum-dao",
9819
10737
  "compound-v3",
9820
10738
  "yield-compare"
@@ -10295,6 +11213,55 @@ var PROTOCOL_SUPPORT_ADVISORS = {
10295
11213
  return cache.has(normalized);
10296
11214
  }
10297
11215
  }),
11216
+ [PENDLE_PROTOCOL_ID]: advisor(PENDLE_PROTOCOL_ID, "api_underlyings", {
11217
+ async supportedChainIds() {
11218
+ try {
11219
+ return [...await pendleFetchSupportedChainIds()].sort((a, b) => a - b);
11220
+ } catch {
11221
+ return [];
11222
+ }
11223
+ },
11224
+ async supportedTokens(chainId) {
11225
+ if (!await isPendleChainSupported(chainId)) {
11226
+ return { tokens: [], notes: `Pendle Core API does not list chain ${chainId}.` };
11227
+ }
11228
+ const listed = await pendleFetchMarketsSummary({ chainId });
11229
+ const byAddr = /* @__PURE__ */ new Map();
11230
+ const add = (address, symbol, roles) => {
11231
+ const key = address.toLowerCase();
11232
+ const prev = byAddr.get(key);
11233
+ byAddr.set(key, {
11234
+ address,
11235
+ symbol: symbol ?? prev?.symbol,
11236
+ roles: [.../* @__PURE__ */ new Set([...prev?.roles ?? [], ...roles])]
11237
+ });
11238
+ };
11239
+ for (const m of listed.markets) {
11240
+ add(m.underlying, m.underlyingSymbol, ["underlying"]);
11241
+ add(m.pt, m.ptSymbol, ["pt"]);
11242
+ add(m.yt, m.ytSymbol, ["yt"]);
11243
+ add(m.sy, null, ["sy"]);
11244
+ add(m.address, m.name, ["lp", "market"]);
11245
+ }
11246
+ return {
11247
+ tokens: [...byAddr.values()],
11248
+ notes: "Official Pendle live (unexpired) TVL-ranked markets on this chain, cap 100 (PT/YT/SY/LP + underlyings). Use ctm_pendle_search_assets for long-tail or matured markets. Use ctm_pendle_fetch_positions for this wallet\u2019s LP (including matured). Do not hardcode routers."
11249
+ };
11250
+ },
11251
+ async isTokenSupported(chainId, address) {
11252
+ if (!await isPendleChainSupported(chainId)) return false;
11253
+ let normalized;
11254
+ try {
11255
+ normalized = getAddress(address).toLowerCase();
11256
+ } catch {
11257
+ return false;
11258
+ }
11259
+ const listed = await pendleFetchMarketsSummary({ chainId });
11260
+ return listed.markets.some(
11261
+ (m) => m.address.toLowerCase() === normalized || m.pt.toLowerCase() === normalized || m.yt.toLowerCase() === normalized || m.sy.toLowerCase() === normalized || m.underlying.toLowerCase() === normalized
11262
+ );
11263
+ }
11264
+ }),
10298
11265
  arcus: advisor("arcus", "api_underlyings", {
10299
11266
  async supportedChainIds() {
10300
11267
  return [...ARCUS_SUPPORTED_CHAIN_IDS];
@@ -10332,6 +11299,7 @@ registerProtocolModule(veniceProtocolModule);
10332
11299
  registerProtocolModule(aerodromeProtocolModule);
10333
11300
  registerProtocolModule(continuumDaoProtocolModule);
10334
11301
  registerProtocolModule(compoundV3ProtocolModule);
11302
+ registerProtocolModule(pendleProtocolModule);
10335
11303
  function getAgentCatalog() {
10336
11304
  return {
10337
11305
  protocols: getProtocolModules(),
@@ -10357,11 +11325,12 @@ function getAgentCatalog() {
10357
11325
  aerodrome: aerodromeProtocolModule,
10358
11326
  continuumDao: continuumDaoProtocolModule,
10359
11327
  compoundV3: compoundV3ProtocolModule,
11328
+ pendle: pendleProtocolModule,
10360
11329
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
10361
11330
  mcp: getAgentCatalogForMcp()
10362
11331
  };
10363
11332
  }
10364
11333
 
10365
- 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, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, mcpArcusBuildCancelOrderMultisignInputSchema, mcpArcusBuildCloseMultisignInputSchema, mcpArcusBuildCreateApiKeyMultisignInputSchema, mcpArcusBuildDepositMultisignInputSchema, mcpArcusBuildPlaceOrderMultisignInputSchema, mcpArcusBuildSetLeverageMultisignInputSchema, mcpArcusBuildWithdrawMultisignInputSchema, mcpArcusFetchAccountInputSchema, mcpArcusFetchAccountOutputSchema, mcpArcusFetchMarketSnapshotInputSchema, mcpArcusFetchMarketSnapshotOutputSchema, mcpArcusFetchMarketsInputSchema, mcpArcusFetchMarketsOutputSchema, mcpArcusFetchOhlcvInputSchema, mcpArcusFetchOhlcvOutputSchema, mcpArcusFetchOpenContextInputSchema, mcpArcusFetchOpenContextOutputSchema, mcpArcusFetchOpenOrdersInputSchema, mcpArcusFetchOpenOrdersOutputSchema, mcpArcusFetchPositionsInputSchema, mcpArcusFetchPositionsOutputSchema, mcpArcusSearchMarketsInputSchema, mcpArcusSearchMarketsOutputSchema, mcpArcusSpotBuildRfqMultisignInputSchema, mcpArcusSpotFetchBalancesInputSchema, mcpArcusSpotFetchBalancesOutputSchema, mcpArcusSpotFetchMarketsInputSchema, mcpArcusSpotFetchMarketsOutputSchema, mcpArcusSpotFetchOhlcvInputSchema, mcpArcusSpotFetchOhlcvOutputSchema, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, mcpVeniceBurnDiemInputSchema, mcpVeniceCompleteUnstakeDiemInputSchema, mcpVeniceCompleteUnstakeSvvvInputSchema, mcpVeniceInitiateUnstakeDiemInputSchema, mcpVeniceInitiateUnstakeSvvvInputSchema, mcpVeniceListModelsInputSchema, mcpVeniceListModelsOutputSchema, mcpVeniceMintDiemInputSchema, mcpVeniceReadMintDiemPreviewInputSchema, mcpVeniceReadMintDiemPreviewOutputSchema, mcpVeniceReadStakingStateInputSchema, mcpVeniceReadStakingStateOutputSchema, mcpVeniceStakeDiemInputSchema, mcpVeniceStakeVvvInputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
11334
+ 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, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, mcpArcusBuildCancelOrderMultisignInputSchema, mcpArcusBuildCloseMultisignInputSchema, mcpArcusBuildCreateApiKeyMultisignInputSchema, mcpArcusBuildDepositMultisignInputSchema, mcpArcusBuildPlaceOrderMultisignInputSchema, mcpArcusBuildSetLeverageMultisignInputSchema, mcpArcusBuildWithdrawMultisignInputSchema, mcpArcusFetchAccountInputSchema, mcpArcusFetchAccountOutputSchema, mcpArcusFetchMarketSnapshotInputSchema, mcpArcusFetchMarketSnapshotOutputSchema, mcpArcusFetchMarketsInputSchema, mcpArcusFetchMarketsOutputSchema, mcpArcusFetchOhlcvInputSchema, mcpArcusFetchOhlcvOutputSchema, mcpArcusFetchOpenContextInputSchema, mcpArcusFetchOpenContextOutputSchema, mcpArcusFetchOpenOrdersInputSchema, mcpArcusFetchOpenOrdersOutputSchema, mcpArcusFetchPositionsInputSchema, mcpArcusFetchPositionsOutputSchema, mcpArcusSearchMarketsInputSchema, mcpArcusSearchMarketsOutputSchema, mcpArcusSpotBuildRfqMultisignInputSchema, mcpArcusSpotFetchBalancesInputSchema, mcpArcusSpotFetchBalancesOutputSchema, mcpArcusSpotFetchMarketsInputSchema, mcpArcusSpotFetchMarketsOutputSchema, mcpArcusSpotFetchOhlcvInputSchema, mcpArcusSpotFetchOhlcvOutputSchema, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoMpaFlagInputSchema, mcpContinuumDaoMpaFlagOutputSchema, mcpContinuumDaoMpaListingInputSchema, mcpContinuumDaoMpaListingOutputSchema, mcpContinuumDaoMpaMailboxListInputSchema, mcpContinuumDaoMpaMailboxListOutputSchema, mcpContinuumDaoMpaMailboxOpenInputSchema, mcpContinuumDaoMpaMailboxOpenOutputSchema, mcpContinuumDaoMpaMailboxSendInputSchema, mcpContinuumDaoMpaMailboxSendOutputSchema, mcpContinuumDaoMpaRetractInputSchema, mcpContinuumDaoMpaRetractOutputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTechnocoreBindInputSchema, mcpContinuumDaoTechnocoreBindOutputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpPendleBuildAddLiquidityMultisignInputSchema, mcpPendleBuildMintPyMultisignInputSchema, mcpPendleBuildMintSyMultisignInputSchema, mcpPendleBuildRedeemPyMultisignInputSchema, mcpPendleBuildRedeemRewardsMultisignInputSchema, mcpPendleBuildRedeemSyMultisignInputSchema, mcpPendleBuildRemoveLiquidityMultisignInputSchema, mcpPendleBuildSwapMultisignInputSchema, mcpPendleFetchMarketsInputSchema, mcpPendleFetchMarketsOutputSchema, mcpPendleFetchMerkleRewardsInputSchema, mcpPendleFetchMerkleRewardsOutputSchema, mcpPendleFetchPositionsInputSchema, mcpPendleFetchPositionsOutputSchema, mcpPendleFetchPricesInputSchema, mcpPendleFetchPricesOutputSchema, mcpPendleQuoteAddLiquidityInputSchema, mcpPendleQuoteMintPyInputSchema, mcpPendleQuoteMintSyInputSchema, mcpPendleQuoteOutputSchema, mcpPendleQuoteRedeemPyInputSchema, mcpPendleQuoteRedeemSyInputSchema, mcpPendleQuoteRemoveLiquidityInputSchema, mcpPendleQuoteSwapInputSchema, mcpPendleSearchAssetsInputSchema, mcpPendleSearchAssetsOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, mcpVeniceBurnDiemInputSchema, mcpVeniceCompleteUnstakeDiemInputSchema, mcpVeniceCompleteUnstakeSvvvInputSchema, mcpVeniceInitiateUnstakeDiemInputSchema, mcpVeniceInitiateUnstakeSvvvInputSchema, mcpVeniceListModelsInputSchema, mcpVeniceListModelsOutputSchema, mcpVeniceMintDiemInputSchema, mcpVeniceReadMintDiemPreviewInputSchema, mcpVeniceReadMintDiemPreviewOutputSchema, mcpVeniceReadStakingStateInputSchema, mcpVeniceReadStakingStateOutputSchema, mcpVeniceStakeDiemInputSchema, mcpVeniceStakeVvvInputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
10366
11335
  //# sourceMappingURL=catalog.js.map
10367
11336
  //# sourceMappingURL=catalog.js.map