@continuumdao/continuum-node-sdk 1.2.13 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/core/agent/environment-variables.d.ts +11 -1
  2. package/dist/core/agent/environment-variables.d.ts.map +1 -1
  3. package/dist/core/agent/environment-variables.js +89 -5
  4. package/dist/core/agent/environment-variables.js.map +1 -1
  5. package/dist/core/agent/mcp-servers.d.ts +8 -4
  6. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  7. package/dist/core/agent/mcp-servers.js +138 -32
  8. package/dist/core/agent/mcp-servers.js.map +1 -1
  9. package/dist/core/agent/webhooks-catalog.d.ts +10 -0
  10. package/dist/core/agent/webhooks-catalog.d.ts.map +1 -0
  11. package/dist/core/agent/webhooks-catalog.js +19 -0
  12. package/dist/core/agent/webhooks-catalog.js.map +1 -0
  13. package/dist/core/agent/webhooks.d.ts +101 -0
  14. package/dist/core/agent/webhooks.d.ts.map +1 -0
  15. package/dist/core/agent/webhooks.js +359 -0
  16. package/dist/core/agent/webhooks.js.map +1 -0
  17. package/dist/core/keygen-id.d.ts.map +1 -1
  18. package/dist/core/keygen-id.js +8 -2
  19. package/dist/core/keygen-id.js.map +1 -1
  20. package/dist/core/keygen.d.ts.map +1 -1
  21. package/dist/core/keygen.js +31 -4
  22. package/dist/core/keygen.js.map +1 -1
  23. package/dist/core/mpc/join-multisign-request.d.ts +6 -0
  24. package/dist/core/mpc/join-multisign-request.d.ts.map +1 -0
  25. package/dist/core/mpc/join-multisign-request.js +19 -0
  26. package/dist/core/mpc/join-multisign-request.js.map +1 -0
  27. package/dist/core/mpc/schemas.d.ts +6 -0
  28. package/dist/core/mpc/schemas.d.ts.map +1 -1
  29. package/dist/core/mpc/schemas.js +20 -0
  30. package/dist/core/mpc/schemas.js.map +1 -1
  31. package/dist/core/mpc/sign-request-utils.d.ts.map +1 -1
  32. package/dist/core/mpc/sign-request-utils.js +7 -2
  33. package/dist/core/mpc/sign-request-utils.js.map +1 -1
  34. package/dist/core/registry/registry-lookup.d.ts +2 -0
  35. package/dist/core/registry/registry-lookup.d.ts.map +1 -1
  36. package/dist/core/registry/registry-lookup.js +5 -0
  37. package/dist/core/registry/registry-lookup.js.map +1 -1
  38. package/dist/evm/forge-broadcast.d.ts +8 -0
  39. package/dist/evm/forge-broadcast.d.ts.map +1 -1
  40. package/dist/evm/forge-broadcast.js +5 -5
  41. package/dist/evm/forge-broadcast.js.map +1 -1
  42. package/dist/evm/join-multisign.d.ts +15 -0
  43. package/dist/evm/join-multisign.d.ts.map +1 -0
  44. package/dist/evm/join-multisign.js +376 -0
  45. package/dist/evm/join-multisign.js.map +1 -0
  46. package/dist/index.d.ts +7 -5
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +7 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/mcp/agent-environment-variables.d.ts +4 -0
  51. package/dist/mcp/agent-environment-variables.d.ts.map +1 -0
  52. package/dist/mcp/agent-environment-variables.js +44 -0
  53. package/dist/mcp/agent-environment-variables.js.map +1 -0
  54. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  55. package/dist/mcp/agent-mcp-servers.js +9 -9
  56. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  57. package/dist/mcp/agent-webhooks.d.ts +4 -0
  58. package/dist/mcp/agent-webhooks.d.ts.map +1 -0
  59. package/dist/mcp/agent-webhooks.js +87 -0
  60. package/dist/mcp/agent-webhooks.js.map +1 -0
  61. package/dist/mcp/defi/aave-v4-input.d.ts +17 -0
  62. package/dist/mcp/defi/aave-v4-input.d.ts.map +1 -0
  63. package/dist/mcp/defi/aave-v4-input.js +363 -0
  64. package/dist/mcp/defi/aave-v4-input.js.map +1 -0
  65. package/dist/mcp/defi/catalog-adapter.d.ts +2 -14
  66. package/dist/mcp/defi/catalog-adapter.d.ts.map +1 -1
  67. package/dist/mcp/defi/catalog-adapter.js +2 -51
  68. package/dist/mcp/defi/catalog-adapter.js.map +1 -1
  69. package/dist/mcp/defi/curve-quote-input.d.ts +9 -0
  70. package/dist/mcp/defi/curve-quote-input.d.ts.map +1 -0
  71. package/dist/mcp/defi/curve-quote-input.js +64 -0
  72. package/dist/mcp/defi/curve-quote-input.js.map +1 -0
  73. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  74. package/dist/mcp/defi/discovery.js +20 -10
  75. package/dist/mcp/defi/discovery.js.map +1 -1
  76. package/dist/mcp/defi/handler.d.ts +0 -8
  77. package/dist/mcp/defi/handler.d.ts.map +1 -1
  78. package/dist/mcp/defi/handler.js +95 -4
  79. package/dist/mcp/defi/handler.js.map +1 -1
  80. package/dist/mcp/defi/input-adapter.d.ts +1 -0
  81. package/dist/mcp/defi/input-adapter.d.ts.map +1 -1
  82. package/dist/mcp/defi/input-adapter.js +69 -38
  83. package/dist/mcp/defi/input-adapter.js.map +1 -1
  84. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  85. package/dist/mcp/defi/register-protocol-tools.js +59 -8
  86. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  87. package/dist/mcp/defi/tool-schemas.d.ts +19 -0
  88. package/dist/mcp/defi/tool-schemas.d.ts.map +1 -0
  89. package/dist/mcp/defi/tool-schemas.js +65 -0
  90. package/dist/mcp/defi/tool-schemas.js.map +1 -0
  91. package/dist/mcp/defi/uniswap-api-key.d.ts +3 -1
  92. package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
  93. package/dist/mcp/defi/uniswap-api-key.js +11 -2
  94. package/dist/mcp/defi/uniswap-api-key.js.map +1 -1
  95. package/dist/mcp/defi/uniswap-liquidity-input.d.ts +11 -0
  96. package/dist/mcp/defi/uniswap-liquidity-input.d.ts.map +1 -0
  97. package/dist/mcp/defi/uniswap-liquidity-input.js +179 -0
  98. package/dist/mcp/defi/uniswap-liquidity-input.js.map +1 -0
  99. package/dist/mcp/defi/uniswap-liquidity-registry.d.ts +31 -0
  100. package/dist/mcp/defi/uniswap-liquidity-registry.d.ts.map +1 -0
  101. package/dist/mcp/defi/uniswap-liquidity-registry.js +296 -0
  102. package/dist/mcp/defi/uniswap-liquidity-registry.js.map +1 -0
  103. package/dist/mcp/defi/uniswap-quote-input.d.ts +10 -0
  104. package/dist/mcp/defi/uniswap-quote-input.d.ts.map +1 -0
  105. package/dist/mcp/defi/uniswap-quote-input.js +96 -0
  106. package/dist/mcp/defi/uniswap-quote-input.js.map +1 -0
  107. package/dist/mcp/keygen.d.ts.map +1 -1
  108. package/dist/mcp/keygen.js +4 -4
  109. package/dist/mcp/keygen.js.map +1 -1
  110. package/dist/mcp/mpc.d.ts.map +1 -1
  111. package/dist/mcp/mpc.js +7 -1
  112. package/dist/mcp/mpc.js.map +1 -1
  113. package/dist/mcp/register.d.ts +1 -0
  114. package/dist/mcp/register.d.ts.map +1 -1
  115. package/dist/mcp/register.js +6 -0
  116. package/dist/mcp/register.js.map +1 -1
  117. package/dist/mcp/tool-utils.d.ts +7 -0
  118. package/dist/mcp/tool-utils.d.ts.map +1 -1
  119. package/dist/mcp/tool-utils.js +7 -0
  120. package/dist/mcp/tool-utils.js.map +1 -1
  121. package/dist/schemas/extended.d.ts +366 -40
  122. package/dist/schemas/extended.d.ts.map +1 -1
  123. package/dist/schemas/extended.js +202 -28
  124. package/dist/schemas/extended.js.map +1 -1
  125. package/package.json +3 -3
@@ -0,0 +1,363 @@
1
+ import { aaveV4BorrowHealthGate, aaveV4RepayHealthGate, aaveV4WithdrawHealthGate, ensureAaveV4ChainTokenCache, fetchAaveV4HubsForChain, fetchAaveV4ReservesForUnderlying, fetchAaveV4UserPositionsForChain, findAaveV4HubReserveForChainUnderlying, findHubReserveForUnderlying, pickAaveV4ReserveRowForSpoke, previewAaveV4BorrowResultingHf, previewAaveV4RepayResultingHf, previewAaveV4WithdrawResultingHf, resolveAaveV4HubForUiMarket, } from '@continuumdao/ctm-mpc-defi/protocols/evm/aave-v4';
2
+ import { getAddress, isAddress, zeroAddress } from 'viem';
3
+ export const AAVE_V4_DEPOSIT_TOOL = 'ctm_aave_v4_build_deposit_multisign';
4
+ export const AAVE_V4_WITHDRAW_TOOL = 'ctm_aave_v4_build_withdraw_multisign';
5
+ export const AAVE_V4_BORROW_TOOL = 'ctm_aave_v4_build_borrow_multisign';
6
+ export const AAVE_V4_REPAY_TOOL = 'ctm_aave_v4_build_repay_multisign';
7
+ const AAVE_V4_MULTISIGN_TOOLS = new Set([
8
+ AAVE_V4_DEPOSIT_TOOL,
9
+ AAVE_V4_WITHDRAW_TOOL,
10
+ AAVE_V4_BORROW_TOOL,
11
+ AAVE_V4_REPAY_TOOL,
12
+ ]);
13
+ export function isAaveV4MultisignTool(toolName) {
14
+ return AAVE_V4_MULTISIGN_TOOLS.has(toolName);
15
+ }
16
+ function blank(value) {
17
+ return typeof value !== 'string' || !value.trim();
18
+ }
19
+ function normalizeAaveV4MarketId(raw) {
20
+ const t = String(raw ?? '')
21
+ .trim()
22
+ .toLowerCase();
23
+ if (t === 'core')
24
+ return 'core';
25
+ if (t === 'bluechip' || t === 'prime' || t === 'institutional') {
26
+ return 'bluechip';
27
+ }
28
+ if (t === 'main' || t === 'plus' || t === 'default')
29
+ return 'main';
30
+ return 'main';
31
+ }
32
+ function parseOptionalAddress(raw) {
33
+ if (blank(raw) || !isAddress(String(raw).trim())) {
34
+ return undefined;
35
+ }
36
+ return getAddress(String(raw).trim());
37
+ }
38
+ function isNativeUnderlyingHint(raw) {
39
+ if (typeof raw !== 'string')
40
+ return false;
41
+ const t = raw.trim().toLowerCase();
42
+ return (t === 'eth' ||
43
+ t === 'native' ||
44
+ t === 'native_eth' ||
45
+ t === zeroAddress.toLowerCase());
46
+ }
47
+ function resolveUnderlyingAddress(raw, nativeWrapped) {
48
+ if (blank(raw)) {
49
+ return { ok: false, reason: 'underlying is required for Aave v4 multisign tools.' };
50
+ }
51
+ const trimmed = String(raw).trim();
52
+ if (isNativeUnderlyingHint(trimmed)) {
53
+ return { ok: true, data: { asset: nativeWrapped, isNativeIn: true } };
54
+ }
55
+ if (!isAddress(trimmed)) {
56
+ return { ok: false, reason: `Invalid underlying address: ${trimmed}` };
57
+ }
58
+ return {
59
+ ok: true,
60
+ data: { asset: getAddress(trimmed), isNativeIn: false },
61
+ };
62
+ }
63
+ function reserveContextFromHubReserve(hubName, reserve) {
64
+ const spokeRaw = reserve.spoke?.address?.trim();
65
+ if (!spokeRaw || !isAddress(spokeRaw)) {
66
+ return null;
67
+ }
68
+ return {
69
+ spoke: getAddress(spokeRaw),
70
+ hubName,
71
+ reserveGraphqlId: null,
72
+ liquidationConfig: null,
73
+ };
74
+ }
75
+ async function resolveReserveContext(args) {
76
+ const hubs = await fetchAaveV4HubsForChain(args.chainId);
77
+ if (!hubs.length) {
78
+ return {
79
+ ok: false,
80
+ reason: `No Aave v4 hubs found for chainId ${args.chainId}.`,
81
+ };
82
+ }
83
+ const preferHub = resolveAaveV4HubForUiMarket(hubs, args.marketId, args.chainId);
84
+ if (!preferHub) {
85
+ return {
86
+ ok: false,
87
+ reason: `No Aave v4 hub for market "${args.marketId}" on chainId ${args.chainId}.`,
88
+ };
89
+ }
90
+ const isBorrow = args.toolName === AAVE_V4_BORROW_TOOL;
91
+ const hubPickUnderlying = isBorrow
92
+ ? (args.collateralUnderlying ?? args.asset)
93
+ : args.asset;
94
+ const found = await findAaveV4HubReserveForChainUnderlying({
95
+ chainId: args.chainId,
96
+ hubs,
97
+ underlying: hubPickUnderlying,
98
+ preferHub,
99
+ debtUnderlying: isBorrow ? args.asset : null,
100
+ debtBorrowAmountHumanForLiquidity: isBorrow ? args.amountHuman : null,
101
+ });
102
+ if (!found) {
103
+ return {
104
+ ok: false,
105
+ reason: `Could not resolve Aave v4 market for underlying ${args.asset} on chainId ${args.chainId} ` +
106
+ `(market "${args.marketId}"). Use get_defi_protocol_supported_tokens and pick a listed asset.`,
107
+ };
108
+ }
109
+ const actionReserve = isBorrow
110
+ ? findHubReserveForUnderlying(found.hubReserves, args.asset)
111
+ : found.reserve;
112
+ if (!actionReserve) {
113
+ return {
114
+ ok: false,
115
+ reason: isBorrow
116
+ ? `Debt asset ${args.asset} is not borrowable in the resolved hub (${found.hub.name}).`
117
+ : `Asset ${args.asset} is not listed in the resolved hub (${found.hub.name}).`,
118
+ };
119
+ }
120
+ const fromHub = reserveContextFromHubReserve(found.hub.name, actionReserve);
121
+ if (!fromHub) {
122
+ return {
123
+ ok: false,
124
+ reason: `No spoke address on the resolved reserve for ${args.asset}.`,
125
+ };
126
+ }
127
+ return { ok: true, data: fromHub };
128
+ }
129
+ async function userHasBorrowDebtOnSpoke(args) {
130
+ const positions = await fetchAaveV4UserPositionsForChain({
131
+ user: args.user,
132
+ chainId: args.chainId,
133
+ });
134
+ const want = args.spoke.toLowerCase();
135
+ for (const p of positions) {
136
+ const addr = (p.spoke?.address ?? '').trim();
137
+ if (!addr || !isAddress(addr))
138
+ continue;
139
+ if (getAddress(addr).toLowerCase() !== want)
140
+ continue;
141
+ const debt = parseFloat(p.totalDebt?.current?.value ?? '0');
142
+ if (Number.isFinite(debt) && debt > 0)
143
+ return true;
144
+ }
145
+ return false;
146
+ }
147
+ function healthGateFailure(gate, acknowledgeHealthRisk) {
148
+ if (gate.outcome === 'allow')
149
+ return null;
150
+ if (gate.outcome === 'confirm') {
151
+ if (acknowledgeHealthRisk)
152
+ return null;
153
+ return {
154
+ ok: false,
155
+ reason: (gate.reason ?? 'Health factor risk requires acknowledgment.') +
156
+ ' Set acknowledgeHealthRisk: true after explaining the risk to the user.',
157
+ };
158
+ }
159
+ return {
160
+ ok: false,
161
+ reason: gate.reason ?? 'Health factor preview blocked this action.',
162
+ };
163
+ }
164
+ async function validateAaveV4HealthPreflight(toolName, input, enriched, resolved) {
165
+ if (input.skipHealthPreview === true) {
166
+ return { ok: true, data: input };
167
+ }
168
+ if (toolName !== AAVE_V4_WITHDRAW_TOOL &&
169
+ toolName !== AAVE_V4_BORROW_TOOL &&
170
+ toolName !== AAVE_V4_REPAY_TOOL) {
171
+ return { ok: true, data: input };
172
+ }
173
+ const user = getAddress(enriched.executorAddress);
174
+ const spoke = resolved.spoke;
175
+ const underlying = getAddress(String(input.underlying));
176
+ const amountHuman = String(input.amountHuman ?? '').trim();
177
+ const acknowledgeHealthRisk = input.acknowledgeHealthRisk === true;
178
+ const rows = await fetchAaveV4ReservesForUnderlying({
179
+ chainId: enriched.chainId,
180
+ underlying,
181
+ user,
182
+ });
183
+ const row = pickAaveV4ReserveRowForSpoke(rows, spoke);
184
+ if (!row?.id) {
185
+ return { ok: true, data: input };
186
+ }
187
+ const liq = row.spoke?.liquidationConfig ?? null;
188
+ if (toolName === AAVE_V4_WITHDRAW_TOOL) {
189
+ const preview = await previewAaveV4WithdrawResultingHf({
190
+ user,
191
+ reserveId: row.id,
192
+ amountExactHuman: amountHuman,
193
+ });
194
+ if (preview.error) {
195
+ return { ok: false, reason: preview.error };
196
+ }
197
+ const hasBorrowDebt = await userHasBorrowDebtOnSpoke({
198
+ user,
199
+ chainId: enriched.chainId,
200
+ spoke,
201
+ });
202
+ const gate = aaveV4WithdrawHealthGate({
203
+ resultingHealthFactor: preview.resultingHf,
204
+ hasBorrowDebt,
205
+ liquidationConfig: liq,
206
+ });
207
+ const blocked = healthGateFailure(gate, acknowledgeHealthRisk);
208
+ if (blocked)
209
+ return blocked;
210
+ }
211
+ if (toolName === AAVE_V4_BORROW_TOOL) {
212
+ const preview = await previewAaveV4BorrowResultingHf({
213
+ user,
214
+ reserveGraphqlId: row.id,
215
+ amountExactHuman: amountHuman,
216
+ });
217
+ if (preview.error) {
218
+ return { ok: false, reason: preview.error };
219
+ }
220
+ const gate = aaveV4BorrowHealthGate({
221
+ resultingHealthFactor: preview.resultingHf,
222
+ liquidationConfig: liq,
223
+ });
224
+ const blocked = healthGateFailure(gate, acknowledgeHealthRisk);
225
+ if (blocked)
226
+ return blocked;
227
+ }
228
+ if (toolName === AAVE_V4_REPAY_TOOL) {
229
+ const preview = await previewAaveV4RepayResultingHf({
230
+ user,
231
+ reserveGraphqlId: row.id,
232
+ amountExactHuman: amountHuman,
233
+ });
234
+ if (preview.error) {
235
+ return { ok: false, reason: preview.error };
236
+ }
237
+ const gate = aaveV4RepayHealthGate({
238
+ resultingHealthFactor: preview.resultingHf,
239
+ liquidationConfig: liq,
240
+ strict: false,
241
+ });
242
+ const blocked = healthGateFailure(gate, acknowledgeHealthRisk);
243
+ if (blocked)
244
+ return blocked;
245
+ }
246
+ return { ok: true, data: input };
247
+ }
248
+ /**
249
+ * Resolve spoke/underlying before Zod validation so agents are not required to
250
+ * guess deployment addresses (e.g. WETH on Ethereum is listed under Core, not Plus).
251
+ */
252
+ export async function prepareAaveV4MultisignValidationInput(toolName, input, enriched) {
253
+ if (!isAaveV4MultisignTool(toolName)) {
254
+ return { ok: true, data: input };
255
+ }
256
+ const chainId = enriched.chainId;
257
+ const cache = await ensureAaveV4ChainTokenCache(chainId);
258
+ const nativeWrappedRaw = cache.nativeWrapped?.trim();
259
+ if (!nativeWrappedRaw || !isAddress(nativeWrappedRaw)) {
260
+ return {
261
+ ok: false,
262
+ reason: `Aave v4 has no wrapped-native token for chainId ${chainId}.`,
263
+ };
264
+ }
265
+ const nativeWrapped = getAddress(nativeWrappedRaw);
266
+ const underlyingResolved = resolveUnderlyingAddress(input.underlying, nativeWrapped);
267
+ if (!underlyingResolved.ok)
268
+ return underlyingResolved;
269
+ let isNativeIn = underlyingResolved.data.isNativeIn;
270
+ if (input.isNativeIn === true) {
271
+ isNativeIn = true;
272
+ }
273
+ if (toolName === AAVE_V4_DEPOSIT_TOOL &&
274
+ !isNativeIn &&
275
+ underlyingResolved.data.asset.toLowerCase() === nativeWrapped.toLowerCase() &&
276
+ input.depositNative === true) {
277
+ isNativeIn = true;
278
+ }
279
+ const marketId = normalizeAaveV4MarketId(input.marketId ?? 'main');
280
+ const amountHuman = String(input.amountHuman ?? '').trim();
281
+ const collateralUnderlying = parseOptionalAddress(input.collateralUnderlying);
282
+ const reserveResolved = await resolveReserveContext({
283
+ toolName,
284
+ chainId,
285
+ marketId,
286
+ asset: underlyingResolved.data.asset,
287
+ amountHuman,
288
+ collateralUnderlying,
289
+ });
290
+ if (!reserveResolved.ok)
291
+ return reserveResolved;
292
+ const out = {
293
+ ...input,
294
+ underlying: underlyingResolved.data.asset,
295
+ spoke: reserveResolved.data.spoke,
296
+ marketId,
297
+ _aaveV4NativeWrapped: nativeWrapped,
298
+ _aaveV4IsNativeIn: isNativeIn,
299
+ _aaveV4HubName: reserveResolved.data.hubName,
300
+ };
301
+ const health = await validateAaveV4HealthPreflight(toolName, out, enriched, reserveResolved.data);
302
+ if (!health.ok)
303
+ return health;
304
+ return { ok: true, data: out };
305
+ }
306
+ /** Zod parse strips server-only keys; merge them back before builder mapping. */
307
+ export function mergeAaveV4ParsedWithPrepared(parsed, prepared) {
308
+ if (!prepared)
309
+ return parsed;
310
+ return {
311
+ ...parsed,
312
+ spoke: parsed.spoke ?? prepared.spoke,
313
+ marketId: parsed.marketId ?? prepared.marketId,
314
+ isNativeIn: parsed.isNativeIn ??
315
+ prepared.isNativeIn ??
316
+ prepared._aaveV4IsNativeIn,
317
+ _aaveV4NativeWrapped: prepared._aaveV4NativeWrapped,
318
+ _aaveV4IsNativeIn: prepared._aaveV4IsNativeIn,
319
+ _aaveV4HubName: prepared._aaveV4HubName,
320
+ };
321
+ }
322
+ /** Map MCP tool fields to ctm-mpc-defi builder arg names. */
323
+ export function mapAaveV4MultisignBuilderArgs(toolName, fields, enriched) {
324
+ const market = normalizeAaveV4MarketId(fields.marketId ?? 'main');
325
+ const spoke = String(fields.spoke ?? '').trim();
326
+ const underlying = String(fields.underlying ?? '').trim();
327
+ const amountHuman = String(fields.amountHuman ?? '').trim();
328
+ const nativeWrapped = String(fields._aaveV4NativeWrapped ?? '').trim();
329
+ const isNativeIn = Boolean(fields._aaveV4IsNativeIn ?? fields.isNativeIn);
330
+ const onBehalfOf = enriched.executorAddress;
331
+ const common = {
332
+ spoke,
333
+ amountHuman,
334
+ onBehalfOf,
335
+ purposeText: String(fields.purposeText ?? '').trim(),
336
+ };
337
+ if (toolName === AAVE_V4_DEPOSIT_TOOL) {
338
+ return {
339
+ ...common,
340
+ market,
341
+ asset: underlying,
342
+ nativeWrapped,
343
+ isNativeIn,
344
+ enableAsCollateralAfterSupply: fields.enableAsCollateralAfterSupply,
345
+ };
346
+ }
347
+ if (toolName === AAVE_V4_WITHDRAW_TOOL || toolName === AAVE_V4_BORROW_TOOL) {
348
+ return {
349
+ ...common,
350
+ underlying,
351
+ marketLabel: market,
352
+ };
353
+ }
354
+ if (toolName === AAVE_V4_REPAY_TOOL) {
355
+ return {
356
+ ...common,
357
+ underlying,
358
+ market,
359
+ };
360
+ }
361
+ return fields;
362
+ }
363
+ //# sourceMappingURL=aave-v4-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave-v4-input.js","sourceRoot":"","sources":["../../../src/mcp/defi/aave-v4-input.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,6 @@
1
- import { getProtocolSkill, type McpToolDefinition } from '@continuumdao/ctm-mpc-defi/agent';
2
- export { getProtocolSkill };
3
- export type ProtocolSupportAdvisor = {
4
- tokenFilter?: string;
5
- supportedChainIds(): Promise<number[]>;
6
- supportedTokens(chainId: number, options?: {
7
- rpcUrl?: string;
8
- }): Promise<{
9
- tokens: Array<Record<string, unknown>>;
10
- nativeWrapped?: string;
11
- notes?: string;
12
- }>;
13
- };
1
+ import { getProtocolSkill, getProtocolSupportAdvisor, type McpToolDefinition } from '@continuumdao/ctm-mpc-defi/agent';
2
+ export { getProtocolSkill, getProtocolSupportAdvisor };
14
3
  /** Tools that return data directly (quote/swap prep) rather than { requestId } via multiSign POST. */
15
4
  export declare const MCP_NON_SUBMIT_TOOL_NAMES: Set<string>;
16
5
  export declare function getToolsForProtocol(protocolId: string): readonly McpToolDefinition[];
17
- export declare function getProtocolSupportAdvisor(protocolId: string): ProtocolSupportAdvisor | undefined;
18
6
  //# sourceMappingURL=catalog-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-adapter.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/catalog-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAS5B,MAAM,MAAM,sBAAsB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,eAAe,CACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GACzB,OAAO,CAAC;QACV,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACvC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACH,CAAC;AAWF,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,aAErC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,iBAAiB,EAAE,CAEpF;AAED,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,GAChB,sBAAsB,GAAG,SAAS,CA6CpC"}
1
+ {"version":3,"file":"catalog-adapter.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/catalog-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,CAAC;AAWrD,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,aAErC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,iBAAiB,EAAE,CAEpF"}
@@ -1,11 +1,5 @@
1
- import { getMcpToolDefinitions, getProtocolModules, getProtocolSkill, } from '@continuumdao/ctm-mpc-defi/agent';
2
- export { getProtocolSkill };
3
- /** Common EVM chain IDs probed via ProtocolModule.isChainSupported. */
4
- const CANDIDATE_EVM_CHAIN_IDS = [
5
- 1, 5, 10, 56, 137, 480, 130, 196, 324, 480, 1868, 4217, 7777777, 81457,
6
- 8453, 84531, 84532, 10143, 42161, 421613, 43114, 42220, 44787, 59144,
7
- 11155111, 420, 80001,
8
- ];
1
+ import { getMcpToolDefinitions, getProtocolSkill, getProtocolSupportAdvisor, } from '@continuumdao/ctm-mpc-defi/agent';
2
+ export { getProtocolSkill, getProtocolSupportAdvisor };
9
3
  function isNonSubmitTool(tool) {
10
4
  const props = tool.outputSchema.properties;
11
5
  return !(props &&
@@ -17,47 +11,4 @@ export const MCP_NON_SUBMIT_TOOL_NAMES = new Set(getMcpToolDefinitions().filter(
17
11
  export function getToolsForProtocol(protocolId) {
18
12
  return getMcpToolDefinitions().filter(tool => tool.protocolId === protocolId);
19
13
  }
20
- export function getProtocolSupportAdvisor(protocolId) {
21
- const mod = getProtocolModules().find(p => p.id === protocolId);
22
- if (!mod) {
23
- return undefined;
24
- }
25
- return {
26
- tokenFilter: mod.chainCategory,
27
- async supportedChainIds() {
28
- if (mod.chainCategory !== 'evm') {
29
- return [];
30
- }
31
- const chainIds = [];
32
- for (const chainId of CANDIDATE_EVM_CHAIN_IDS) {
33
- if (await mod.isChainSupported({
34
- chainCategory: 'evm',
35
- chainId,
36
- })) {
37
- chainIds.push(chainId);
38
- }
39
- }
40
- return [...new Set(chainIds)].sort((a, b) => a - b);
41
- },
42
- async supportedTokens(chainId, options) {
43
- const rpcUrl = options?.rpcUrl?.trim();
44
- const chainOk = await mod.isChainSupported({
45
- chainCategory: mod.chainCategory,
46
- chainId,
47
- });
48
- if (!chainOk) {
49
- return {
50
- tokens: [],
51
- notes: `${protocolId} does not support chain ${chainId}.`,
52
- };
53
- }
54
- return {
55
- tokens: [],
56
- notes: rpcUrl
57
- ? `On-chain token discovery for ${protocolId} is not implemented in the vendored defi catalog. Use get_token_registry or protocol tool inputs.`
58
- : `Configure chain ${chainId} in get_chain_registry (rpcGateway) before token discovery. Token lists are not bundled for ${protocolId}.`,
59
- };
60
- },
61
- };
62
- }
63
14
  //# sourceMappingURL=catalog-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-adapter.js","sourceRoot":"","sources":["../../../src/mcp/defi/catalog-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-adapter.js","sourceRoot":"","sources":["../../../src/mcp/defi/catalog-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,GAEzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,CAAC;AAErD,SAAS,eAAe,CAAC,IAAuB;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IAC3C,OAAO,CAAC,CACP,KAAK;QACL,aAAa,IAAI,KAAK;QACtB,eAAe,IAAI,KAAK,CACxB,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAC/C,qBAAqB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CACtE,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACrD,OAAO,qBAAqB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { NodeSdkConfig } from '../../config/schema.js';
2
+ import type { SdkResult } from '../../core/result.js';
3
+ export declare const CURVE_DAO_QUOTE_TOOL_NAME = "ctm_curve_dao_quote";
4
+ /**
5
+ * Resolve rpcUrl from get_chain_registry for Curve quotes (same rpcGateway as multisign builders).
6
+ */
7
+ export declare function adaptCurveQuoteMcpInput(config: NodeSdkConfig, toolName: string, input: Record<string, unknown>): Promise<SdkResult<Record<string, unknown>>>;
8
+ export declare function isCurveQuoteTool(toolName: string): boolean;
9
+ //# sourceMappingURL=curve-quote-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve-quote-input.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/curve-quote-input.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAGpD,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAwB/D;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAsC7C;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D"}
@@ -0,0 +1,64 @@
1
+ import { zeroAddress } from 'viem';
2
+ import { CURVE_NATIVE_PLACEHOLDER } from '@continuumdao/ctm-mpc-defi/protocols/evm/curve-dao';
3
+ import { resolveChainRegistryEntry } from '../../core/registry/networks.js';
4
+ import { parseEvmChainId } from './input-adapter.js';
5
+ export const CURVE_DAO_QUOTE_TOOL_NAME = 'ctm_curve_dao_quote';
6
+ /** Match Curve native coin id used by @curvefi/api router. */
7
+ function normalizeNativeTokenIn(tokenIn) {
8
+ if (typeof tokenIn !== 'string') {
9
+ return tokenIn;
10
+ }
11
+ const trimmed = tokenIn.trim();
12
+ if (!trimmed) {
13
+ return tokenIn;
14
+ }
15
+ const lower = trimmed.toLowerCase();
16
+ if (lower === 'eth' ||
17
+ lower === 'native' ||
18
+ lower === 'native_eth' ||
19
+ lower === zeroAddress.toLowerCase() ||
20
+ lower === CURVE_NATIVE_PLACEHOLDER.toLowerCase()) {
21
+ return CURVE_NATIVE_PLACEHOLDER;
22
+ }
23
+ return tokenIn;
24
+ }
25
+ /**
26
+ * Resolve rpcUrl from get_chain_registry for Curve quotes (same rpcGateway as multisign builders).
27
+ */
28
+ export async function adaptCurveQuoteMcpInput(config, toolName, input) {
29
+ if (toolName !== CURVE_DAO_QUOTE_TOOL_NAME) {
30
+ return { ok: true, data: input };
31
+ }
32
+ const adapted = { ...input };
33
+ adapted.tokenIn = normalizeNativeTokenIn(adapted.tokenIn);
34
+ const chainId = parseEvmChainId(adapted.chainId);
35
+ if (!Number.isFinite(chainId) || chainId <= 0) {
36
+ return { ok: false, reason: 'chainId must be a positive integer.' };
37
+ }
38
+ adapted.chainId = chainId;
39
+ const rpcProvided = typeof adapted.rpcUrl === 'string' && adapted.rpcUrl.trim()
40
+ ? adapted.rpcUrl.trim()
41
+ : undefined;
42
+ if (!rpcProvided) {
43
+ const chain = await resolveChainRegistryEntry(config, chainId);
44
+ if (!chain.ok) {
45
+ return chain;
46
+ }
47
+ const rpcUrl = String(chain.data.rpcGateway ?? '').trim();
48
+ if (!rpcUrl) {
49
+ return {
50
+ ok: false,
51
+ reason: `Chain registry entry for chainId ${chainId} has no rpcGateway. Configure it via get_chain_registry / add_to_chain_registry.`,
52
+ };
53
+ }
54
+ adapted.rpcUrl = rpcUrl;
55
+ }
56
+ delete adapted.keyGenId;
57
+ delete adapted.purposeText;
58
+ delete adapted.useCustomGas;
59
+ return { ok: true, data: adapted };
60
+ }
61
+ export function isCurveQuoteTool(toolName) {
62
+ return toolName === CURVE_DAO_QUOTE_TOOL_NAME;
63
+ }
64
+ //# sourceMappingURL=curve-quote-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve-quote-input.js","sourceRoot":"","sources":["../../../src/mcp/defi/curve-quote-input.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAQvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAatD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAC9B,IAAI,CAkRN"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAQvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAkBtD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAC9B,IAAI,CA6RN"}