@andrewkimjoseph/celina-sdk 0.4.11 → 0.5.0

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 (86) hide show
  1. package/README.md +4 -0
  2. package/build/analytics/mcp-tool-events.js +1 -0
  3. package/build/analytics/mcp-tool-events.js.map +1 -1
  4. package/build/services/blockchain.service.d.ts +33 -3
  5. package/build/services/blockchain.service.js +40 -21
  6. package/build/services/blockchain.service.js.map +1 -1
  7. package/build/tools/catalog.d.ts +9 -0
  8. package/build/tools/catalog.js +36 -0
  9. package/build/tools/catalog.js.map +1 -0
  10. package/build/tools/domains/aave.d.ts +2 -0
  11. package/build/tools/domains/aave.js +89 -0
  12. package/build/tools/domains/aave.js.map +1 -0
  13. package/build/tools/domains/blockchain.d.ts +2 -0
  14. package/build/tools/domains/blockchain.js +85 -0
  15. package/build/tools/domains/blockchain.js.map +1 -0
  16. package/build/tools/domains/carbon.d.ts +2 -0
  17. package/build/tools/domains/carbon.js +187 -0
  18. package/build/tools/domains/carbon.js.map +1 -0
  19. package/build/tools/domains/celeste.d.ts +2 -0
  20. package/build/tools/domains/celeste.js +42 -0
  21. package/build/tools/domains/celeste.js.map +1 -0
  22. package/build/tools/domains/contract.d.ts +2 -0
  23. package/build/tools/domains/contract.js +67 -0
  24. package/build/tools/domains/contract.js.map +1 -0
  25. package/build/tools/domains/ens.d.ts +2 -0
  26. package/build/tools/domains/ens.js +16 -0
  27. package/build/tools/domains/ens.js.map +1 -0
  28. package/build/tools/domains/gooddollar.d.ts +2 -0
  29. package/build/tools/domains/gooddollar.js +73 -0
  30. package/build/tools/domains/gooddollar.js.map +1 -0
  31. package/build/tools/domains/governance.d.ts +2 -0
  32. package/build/tools/domains/governance.js +41 -0
  33. package/build/tools/domains/governance.js.map +1 -0
  34. package/build/tools/domains/index.d.ts +1 -0
  35. package/build/tools/domains/index.js +33 -0
  36. package/build/tools/domains/index.js.map +1 -0
  37. package/build/tools/domains/mento-fx.d.ts +2 -0
  38. package/build/tools/domains/mento-fx.js +72 -0
  39. package/build/tools/domains/mento-fx.js.map +1 -0
  40. package/build/tools/domains/nft.d.ts +2 -0
  41. package/build/tools/domains/nft.js +38 -0
  42. package/build/tools/domains/nft.js.map +1 -0
  43. package/build/tools/domains/self.d.ts +2 -0
  44. package/build/tools/domains/self.js +194 -0
  45. package/build/tools/domains/self.js.map +1 -0
  46. package/build/tools/domains/staking.d.ts +2 -0
  47. package/build/tools/domains/staking.js +74 -0
  48. package/build/tools/domains/staking.js.map +1 -0
  49. package/build/tools/domains/token.d.ts +2 -0
  50. package/build/tools/domains/token.js +73 -0
  51. package/build/tools/domains/token.js.map +1 -0
  52. package/build/tools/domains/transaction.d.ts +2 -0
  53. package/build/tools/domains/transaction.js +117 -0
  54. package/build/tools/domains/transaction.js.map +1 -0
  55. package/build/tools/domains/uniswap.d.ts +2 -0
  56. package/build/tools/domains/uniswap.js +72 -0
  57. package/build/tools/domains/uniswap.js.map +1 -0
  58. package/build/tools/filter.d.ts +2 -0
  59. package/build/tools/filter.js +28 -0
  60. package/build/tools/filter.js.map +1 -0
  61. package/build/tools/index.d.ts +7 -0
  62. package/build/tools/index.js +7 -0
  63. package/build/tools/index.js.map +1 -0
  64. package/build/tools/schemas/common.d.ts +110 -0
  65. package/build/tools/schemas/common.js +81 -0
  66. package/build/tools/schemas/common.js.map +1 -0
  67. package/build/tools/swap-routing.d.ts +24 -0
  68. package/build/tools/swap-routing.js +105 -0
  69. package/build/tools/swap-routing.js.map +1 -0
  70. package/build/tools/types.d.ts +134 -0
  71. package/build/tools/types.js +2 -0
  72. package/build/tools/types.js.map +1 -0
  73. package/build/tools/utils/carbon-prepare-handler.d.ts +6 -0
  74. package/build/tools/utils/carbon-prepare-handler.js +17 -0
  75. package/build/tools/utils/carbon-prepare-handler.js.map +1 -0
  76. package/build/tools/utils/normalize-token.d.ts +2 -0
  77. package/build/tools/utils/normalize-token.js +12 -0
  78. package/build/tools/utils/normalize-token.js.map +1 -0
  79. package/build/tools/utils/wallet.d.ts +2 -0
  80. package/build/tools/utils/wallet.js +4 -0
  81. package/build/tools/utils/wallet.js.map +1 -0
  82. package/package.json +7 -1
  83. package/tests/README.md +4 -0
  84. package/tests/catalog/domains/blockchain.ts +24 -0
  85. package/tests/catalog/operations.ts +11 -1
  86. package/tests/testing-entry.ts +5 -0
@@ -0,0 +1,194 @@
1
+ import { selfDemoUrl } from "../../config/self.js";
2
+ import { z } from "zod";
3
+ import { addressSchema } from "../schemas/common.js";
4
+ const SELF_DEMO_VERIFY_URL = selfDemoUrl("/api/demo/verify");
5
+ const selfRegistrationModeSchema = z
6
+ .enum([
7
+ "linked",
8
+ "wallet-free",
9
+ "smartwallet",
10
+ "self-custody",
11
+ "ed25519",
12
+ "ed25519-linked",
13
+ ])
14
+ .optional();
15
+ function requireSelf(runtime) {
16
+ const self = runtime.executors?.self;
17
+ if (!self) {
18
+ throw new Error("Self executor not configured.");
19
+ }
20
+ return self;
21
+ }
22
+ export const selfToolDefinitions = [
23
+ {
24
+ name: "verify_self_agent",
25
+ description: "Verify whether an agent address is backed by a real human on Self Agent ID (Celo mainnet).",
26
+ inputSchema: z.object({
27
+ agent_address: addressSchema,
28
+ require_age: z.union([z.literal(0), z.literal(18), z.literal(21)]).optional(),
29
+ require_ofac: z.boolean().optional(),
30
+ require_self_provider: z.boolean().optional(),
31
+ }),
32
+ families: ["read"],
33
+ surfaces: ["mcp"],
34
+ mcp: {
35
+ title: "Verify Self Agent",
36
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
37
+ },
38
+ handler: async (runtime, input) => requireSelf(runtime).verifyAgent({
39
+ agentAddress: input.agent_address,
40
+ requireAge: input.require_age,
41
+ requireOfac: input.require_ofac,
42
+ requireSelfProvider: input.require_self_provider,
43
+ }),
44
+ },
45
+ {
46
+ name: "lookup_self_agent",
47
+ description: "Look up a Self Agent ID by numeric on-chain ID.",
48
+ inputSchema: z.object({
49
+ agent_id: z.number().int().positive(),
50
+ }),
51
+ families: ["read"],
52
+ surfaces: ["mcp"],
53
+ mcp: {
54
+ title: "Look Up Self Agent",
55
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
56
+ },
57
+ handler: async (runtime, input) => requireSelf(runtime).lookupAgent(input.agent_id),
58
+ },
59
+ {
60
+ name: "verify_self_request",
61
+ description: "Verify incoming HTTP request headers signed by a Self Agent.",
62
+ inputSchema: z.object({
63
+ agent_signature: z.string().regex(/^0x[a-fA-F0-9]+$/),
64
+ agent_timestamp: z.string(),
65
+ method: z.string(),
66
+ path: z.string(),
67
+ body: z.string().optional(),
68
+ keytype: z.string().optional(),
69
+ agent_key: z.string().regex(/^0x[a-fA-F0-9]+$/).optional(),
70
+ }),
71
+ families: ["read"],
72
+ surfaces: ["mcp"],
73
+ mcp: {
74
+ title: "Verify Self Agent Request",
75
+ annotations: { readOnlyHint: true, idempotentHint: true },
76
+ },
77
+ handler: async (runtime, input) => requireSelf(runtime).verifyRequest(input),
78
+ },
79
+ {
80
+ name: "register_self_agent",
81
+ description: "Start Self Agent ID registration. Returns qr_code_url and deep_link — present BOTH to the user.",
82
+ inputSchema: z.object({
83
+ mode: selfRegistrationModeSchema,
84
+ minimum_age: z.union([z.literal(0), z.literal(18), z.literal(21)]).optional(),
85
+ ofac: z.boolean().optional(),
86
+ human_address: addressSchema.optional(),
87
+ agent_name: z.string().optional(),
88
+ agent_description: z.string().optional(),
89
+ }),
90
+ families: ["execute"],
91
+ surfaces: ["mcp"],
92
+ mcp: {
93
+ title: "Register Self Agent",
94
+ annotations: { destructiveHint: true, openWorldHint: true },
95
+ responseKind: "self_session",
96
+ },
97
+ handler: async (runtime, input) => requireSelf(runtime).registerAgent({
98
+ mode: input.mode,
99
+ minimumAge: input.minimum_age,
100
+ ofac: input.ofac,
101
+ humanAddress: input.human_address,
102
+ agentName: input.agent_name,
103
+ agentDescription: input.agent_description,
104
+ }),
105
+ },
106
+ {
107
+ name: "check_self_registration",
108
+ description: "Poll a pending Self registration, proof refresh, or deregistration session.",
109
+ inputSchema: z.object({
110
+ session_id: z.string(),
111
+ }),
112
+ families: ["read"],
113
+ surfaces: ["mcp"],
114
+ mcp: {
115
+ title: "Check Self Registration",
116
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
117
+ },
118
+ handler: async (runtime, input) => requireSelf(runtime).checkRegistration(input.session_id),
119
+ },
120
+ {
121
+ name: "get_self_identity",
122
+ description: "Return the configured Self agent identity. Requires SELF_AGENT_PRIVATE_KEY.",
123
+ inputSchema: z.object({}),
124
+ families: ["read"],
125
+ surfaces: ["mcp"],
126
+ mcp: {
127
+ title: "Get Self Agent Identity",
128
+ annotations: { readOnlyHint: true, idempotentHint: true },
129
+ },
130
+ handler: async (runtime) => requireSelf(runtime).getIdentity(),
131
+ },
132
+ {
133
+ name: "refresh_self_proof",
134
+ description: "Start a human proof refresh after on-chain proof expiry. Returns qr_code_url and deep_link.",
135
+ inputSchema: z.object({
136
+ agent_id: z.number().int().positive().optional(),
137
+ }),
138
+ families: ["execute"],
139
+ surfaces: ["mcp"],
140
+ mcp: {
141
+ title: "Refresh Self Proof",
142
+ annotations: { openWorldHint: true },
143
+ responseKind: "self_session",
144
+ },
145
+ handler: async (runtime, input) => requireSelf(runtime).refreshProof({ agentId: input.agent_id }),
146
+ },
147
+ {
148
+ name: "deregister_self_agent",
149
+ description: "Start irreversible Self agent deregistration. Returns qr_code_url and deep_link.",
150
+ inputSchema: z.object({}),
151
+ families: ["execute"],
152
+ surfaces: ["mcp"],
153
+ mcp: {
154
+ title: "Deregister Self Agent",
155
+ annotations: { destructiveHint: true, openWorldHint: true },
156
+ responseKind: "self_session",
157
+ },
158
+ handler: async (runtime) => requireSelf(runtime).deregisterAgent(),
159
+ },
160
+ {
161
+ name: "sign_self_request",
162
+ description: `Sign an HTTP request with the configured Self agent. Demo verify: POST ${SELF_DEMO_VERIFY_URL}`,
163
+ inputSchema: z.object({
164
+ method: z.enum(["GET", "POST", "PUT", "DELETE"]),
165
+ url: z.string().url(),
166
+ body: z.string().optional(),
167
+ }),
168
+ families: ["read"],
169
+ surfaces: ["mcp"],
170
+ mcp: {
171
+ title: "Sign Self Agent Request",
172
+ annotations: { readOnlyHint: true, idempotentHint: true },
173
+ },
174
+ handler: async (runtime, input) => requireSelf(runtime).signRequest(input),
175
+ },
176
+ {
177
+ name: "authenticated_self_fetch",
178
+ description: `HTTP request with Self Agent ID auth headers. Demo: ?network=celo-mainnet — ${SELF_DEMO_VERIFY_URL}`,
179
+ inputSchema: z.object({
180
+ method: z.enum(["GET", "POST", "PUT", "DELETE"]),
181
+ url: z.string().url(),
182
+ body: z.string().optional(),
183
+ content_type: z.string().optional(),
184
+ }),
185
+ families: ["execute"],
186
+ surfaces: ["mcp"],
187
+ mcp: {
188
+ title: "Authenticated Self Fetch",
189
+ annotations: { openWorldHint: true },
190
+ },
191
+ handler: async (runtime, input) => requireSelf(runtime).authenticatedFetch(input),
192
+ },
193
+ ];
194
+ //# sourceMappingURL=self.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/tools/domains/self.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const stakingToolDefinitions: ToolDefinition[];
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+ import { addressSchema, optionalWalletAddressSchema, paginationFields, } from "../schemas/common.js";
3
+ import { resolveWalletFromRuntime } from "../utils/wallet.js";
4
+ const readOnly = {
5
+ readOnlyHint: true,
6
+ idempotentHint: true,
7
+ };
8
+ export const stakingToolDefinitions = [
9
+ {
10
+ name: "get_staking_balances",
11
+ description: "Active and pending staking votes for an address by validator group.",
12
+ inputSchema: z.object({
13
+ address: optionalWalletAddressSchema,
14
+ }),
15
+ families: ["read"],
16
+ mcp: { title: "Get Staking Balances", annotations: readOnly },
17
+ handler: async (runtime, input) => {
18
+ const target = resolveWalletFromRuntime(runtime, {
19
+ address: input.address,
20
+ });
21
+ return runtime.celina.staking.getStakingBalances(target);
22
+ },
23
+ },
24
+ {
25
+ name: "get_activatable_stakes",
26
+ description: "Validator groups where pending stakes can be activated for an address.",
27
+ inputSchema: z.object({
28
+ address: optionalWalletAddressSchema,
29
+ }),
30
+ families: ["read"],
31
+ mcp: { title: "Get Activatable Stakes", annotations: readOnly },
32
+ handler: async (runtime, input) => {
33
+ const target = resolveWalletFromRuntime(runtime, {
34
+ address: input.address,
35
+ });
36
+ return runtime.celina.staking.getActivatableStakes(target);
37
+ },
38
+ },
39
+ {
40
+ name: "get_validator_groups",
41
+ description: "Paginated validator groups with votes, capacity, and member counts.",
42
+ inputSchema: z.object({
43
+ ...paginationFields,
44
+ page_size: z.number().int().min(1).max(50).optional(),
45
+ }),
46
+ families: ["read"],
47
+ mcp: { title: "Get Validator Groups", annotations: readOnly },
48
+ handler: async (runtime, input) => runtime.celina.staking.getValidatorGroups({
49
+ page: input.page,
50
+ pageSize: input.page_size,
51
+ offset: input.offset,
52
+ limit: input.limit,
53
+ }),
54
+ },
55
+ {
56
+ name: "get_validator_group_details",
57
+ description: "Detailed information about a validator group including members.",
58
+ inputSchema: z.object({
59
+ group_address: addressSchema,
60
+ }),
61
+ families: ["read"],
62
+ mcp: { title: "Get Validator Group Details", annotations: readOnly },
63
+ handler: async (runtime, input) => runtime.celina.staking.getValidatorGroupDetails(input.group_address),
64
+ },
65
+ {
66
+ name: "get_total_staking_info",
67
+ description: "Network-wide staking participation metrics.",
68
+ inputSchema: z.object({}),
69
+ families: ["read"],
70
+ mcp: { title: "Get Total Staking Info", annotations: readOnly },
71
+ handler: async (runtime) => runtime.celina.staking.getTotalStakingInfo(),
72
+ },
73
+ ];
74
+ //# sourceMappingURL=staking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/tools/domains/staking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const tokenToolDefinitions: ToolDefinition[];
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ import { optionalWalletAddressSchema, tokenSymbolSchema, } from "../schemas/common.js";
3
+ import { normalizeRegistryTokenInput } from "../utils/normalize-token.js";
4
+ import { resolveWalletFromRuntime } from "../utils/wallet.js";
5
+ const readOnly = {
6
+ readOnlyHint: true,
7
+ idempotentHint: true,
8
+ };
9
+ export const tokenToolDefinitions = [
10
+ {
11
+ name: "get_celo_balances",
12
+ description: "Balances for named registry tokens on Celo mainnet. Default tokens: CELO + USDm.",
13
+ inputSchema: z.object({
14
+ address: optionalWalletAddressSchema,
15
+ tokens: z.array(tokenSymbolSchema).optional(),
16
+ }),
17
+ families: ["read"],
18
+ mcp: { title: "Get Celo Balances", annotations: readOnly },
19
+ handler: async (runtime, input) => {
20
+ const target = resolveWalletFromRuntime(runtime, {
21
+ address: input.address,
22
+ });
23
+ return runtime.celina.token.getBalances(target, input.tokens);
24
+ },
25
+ },
26
+ {
27
+ name: "get_stablecoin_balances",
28
+ description: "Scan all registry stablecoins for an address in one call. Omits zero balances by default.",
29
+ inputSchema: z.object({
30
+ address: optionalWalletAddressSchema,
31
+ stablecoins: z.array(z.string()).optional(),
32
+ include_zero: z.boolean().optional(),
33
+ }),
34
+ families: ["read"],
35
+ mcp: { title: "Get Stablecoin Balances", annotations: readOnly },
36
+ handler: async (runtime, input) => {
37
+ const target = resolveWalletFromRuntime(runtime, {
38
+ address: input.address,
39
+ });
40
+ return runtime.celina.token.getStablecoinBalances(target, {
41
+ stablecoins: input.stablecoins,
42
+ includeZero: input.include_zero,
43
+ });
44
+ },
45
+ },
46
+ {
47
+ name: "get_token_info",
48
+ description: "Registry token metadata (symbol, address, decimals). Does not read balances.",
49
+ inputSchema: z.object({
50
+ token: tokenSymbolSchema,
51
+ }),
52
+ families: ["read"],
53
+ mcp: { title: "Get Token Info", annotations: readOnly },
54
+ handler: async (runtime, input) => runtime.celina.token.getTokenInfo(normalizeRegistryTokenInput(input.token)),
55
+ },
56
+ {
57
+ name: "get_token_balance",
58
+ description: "Balance for one registry token. Pass a symbol or known registry contract address.",
59
+ inputSchema: z.object({
60
+ token: tokenSymbolSchema,
61
+ address: optionalWalletAddressSchema,
62
+ }),
63
+ families: ["read"],
64
+ mcp: { title: "Get Token Balance", annotations: readOnly },
65
+ handler: async (runtime, input) => {
66
+ const target = resolveWalletFromRuntime(runtime, {
67
+ address: input.address,
68
+ });
69
+ return runtime.celina.token.getTokenBalance(normalizeRegistryTokenInput(input.token), target);
70
+ },
71
+ },
72
+ ];
73
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/tools/domains/token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const transactionToolDefinitions: ToolDefinition[];
@@ -0,0 +1,117 @@
1
+ import { z } from "zod";
2
+ import { addressOrEnsSchema, addressSchema, hexDataSchema, optionalWalletAddressSchema, tokenSymbolSchema, } from "../schemas/common.js";
3
+ import { normalizeRegistryTokenInput } from "../utils/normalize-token.js";
4
+ import { resolveWalletFromRuntime } from "../utils/wallet.js";
5
+ export const transactionToolDefinitions = [
6
+ {
7
+ name: "estimate_send",
8
+ description: "Estimates gas for sending CELO or an ERC-20. Recipient can be ENS.",
9
+ inputSchema: z.object({
10
+ to: addressOrEnsSchema,
11
+ token: tokenSymbolSchema.optional(),
12
+ amount: z.string(),
13
+ from: optionalWalletAddressSchema,
14
+ }),
15
+ families: ["read"],
16
+ mcp: { title: "Estimate Send", annotations: { readOnlyHint: true } },
17
+ handler: async (runtime, input) => {
18
+ const { address, ens } = await runtime.celina.ens.resolveAddressOrEns(input.to);
19
+ const token = normalizeRegistryTokenInput(input.token ?? "CELO");
20
+ const amount = input.amount;
21
+ if (runtime.executors?.transaction) {
22
+ const estimate = await runtime.executors.transaction.estimateSend(address, token, amount);
23
+ if (ens) {
24
+ return Object.assign({}, estimate, { ens });
25
+ }
26
+ return estimate;
27
+ }
28
+ const sender = resolveWalletFromRuntime(runtime, {
29
+ from: input.from,
30
+ address: input.from,
31
+ });
32
+ const estimate = await runtime.celina.transaction.estimateSend(sender, address, token, amount);
33
+ return ens ? { ...estimate, ens } : estimate;
34
+ },
35
+ },
36
+ {
37
+ name: "send_token",
38
+ description: "Send CELO or an ERC-20 on mainnet. Requires CELO_PRIVATE_KEY in MCP server env.",
39
+ inputSchema: z.object({
40
+ to: addressOrEnsSchema,
41
+ token: tokenSymbolSchema.optional(),
42
+ amount: z.string(),
43
+ }),
44
+ families: ["execute"],
45
+ surfaces: ["mcp"],
46
+ mcp: {
47
+ title: "Send Token",
48
+ annotations: { destructiveHint: true, openWorldHint: true },
49
+ },
50
+ handler: async (runtime, input) => {
51
+ const tx = runtime.executors?.transaction;
52
+ if (!tx)
53
+ throw new Error("Transaction executor not configured.");
54
+ const { address, ens } = await runtime.celina.ens.resolveAddressOrEns(input.to);
55
+ const result = await tx.sendToken(address, normalizeRegistryTokenInput(input.token ?? "CELO"), input.amount);
56
+ return ens ? Object.assign({}, result, { ens }) : result;
57
+ },
58
+ },
59
+ {
60
+ name: "prepare_send",
61
+ description: "Prepare an unsigned send transaction. User must confirm and sign in wallet.",
62
+ inputSchema: z.object({
63
+ to: addressOrEnsSchema,
64
+ token: z.string(),
65
+ amount: z.string(),
66
+ from: optionalWalletAddressSchema,
67
+ }),
68
+ families: ["prepare"],
69
+ surfaces: ["celeste"],
70
+ handler: async (runtime, input) => {
71
+ const sender = resolveWalletFromRuntime(runtime, {
72
+ from: input.from,
73
+ });
74
+ const token = normalizeRegistryTokenInput(input.token);
75
+ const amount = input.amount;
76
+ await runtime.hooks?.beforePrepareSend?.({ sender, token, amount });
77
+ const { address } = await runtime.celina.ens.resolveAddressOrEns(input.to);
78
+ return runtime.celina.transaction.prepareSend(sender, address, token, amount);
79
+ },
80
+ },
81
+ {
82
+ name: "get_gas_fee_data",
83
+ description: "Returns current gas fee data including EIP-1559 fees on mainnet.",
84
+ inputSchema: z.object({}),
85
+ families: ["read"],
86
+ mcp: {
87
+ title: "Get Gas Fee Data",
88
+ annotations: { readOnlyHint: true, idempotentHint: true },
89
+ },
90
+ handler: async (runtime) => runtime.celina.transaction.getGasFeeData(),
91
+ },
92
+ {
93
+ name: "estimate_transaction",
94
+ description: "Estimates gas for a generic transaction (to/value/data) from a wallet.",
95
+ inputSchema: z.object({
96
+ from: optionalWalletAddressSchema,
97
+ to: addressSchema,
98
+ value: z.string().optional(),
99
+ data: hexDataSchema,
100
+ }),
101
+ families: ["read"],
102
+ mcp: { title: "Estimate Transaction", annotations: { readOnlyHint: true } },
103
+ handler: async (runtime, input) => {
104
+ const sender = resolveWalletFromRuntime(runtime, {
105
+ from: input.from,
106
+ address: input.from,
107
+ });
108
+ return runtime.celina.transaction.estimateTransaction({
109
+ from: sender,
110
+ to: input.to,
111
+ value: input.value,
112
+ data: input.data,
113
+ });
114
+ },
115
+ },
116
+ ];
117
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/tools/domains/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const uniswapToolDefinitions: ToolDefinition[];
@@ -0,0 +1,72 @@
1
+ import { uniswapQuoteSchema, uniswapWalletSchema, } from "../schemas/common.js";
2
+ import { normalizeRegistryTokenInput } from "../utils/normalize-token.js";
3
+ import { resolveWalletFromRuntime } from "../utils/wallet.js";
4
+ function mapUniswapWalletOptions(input) {
5
+ return {
6
+ recipient: input.recipient,
7
+ slippageTolerance: input.slippage_tolerance,
8
+ deadlineMinutes: input.deadline_minutes,
9
+ };
10
+ }
11
+ export const uniswapToolDefinitions = [
12
+ {
13
+ name: "get_uniswap_quote",
14
+ description: "Uniswap v4 AMM quote for a token pair on Celo mainnet.",
15
+ inputSchema: uniswapQuoteSchema,
16
+ families: ["read"],
17
+ mcp: { title: "Get Uniswap Quote", annotations: { readOnlyHint: true } },
18
+ handler: async (runtime, input) => {
19
+ const from = input.from
20
+ ? resolveWalletFromRuntime(runtime, { from: input.from })
21
+ : undefined;
22
+ return runtime.celina.uniswap.getSwapQuote(normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, from);
23
+ },
24
+ },
25
+ {
26
+ name: "estimate_uniswap_swap",
27
+ description: "Estimate gas for a Uniswap v4 swap including ERC-20 and Permit2 approvals when needed.",
28
+ inputSchema: uniswapWalletSchema,
29
+ families: ["read"],
30
+ mcp: { title: "Estimate Uniswap Swap", annotations: { readOnlyHint: true } },
31
+ handler: async (runtime, input) => {
32
+ const sender = resolveWalletFromRuntime(runtime, {
33
+ from: input.from,
34
+ });
35
+ if (runtime.executors?.uniswap) {
36
+ return runtime.executors.uniswap.estimate(normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, mapUniswapWalletOptions(input));
37
+ }
38
+ return runtime.celina.uniswap.estimateSwap(sender, normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, mapUniswapWalletOptions(input));
39
+ },
40
+ },
41
+ {
42
+ name: "execute_uniswap_swap",
43
+ description: "Execute a Uniswap v4 swap on Celo mainnet. Requires CELO_PRIVATE_KEY.",
44
+ inputSchema: uniswapWalletSchema,
45
+ families: ["execute"],
46
+ surfaces: ["mcp"],
47
+ mcp: {
48
+ title: "Execute Uniswap Swap",
49
+ annotations: { destructiveHint: true, openWorldHint: true },
50
+ },
51
+ handler: async (runtime, input) => {
52
+ const uni = runtime.executors?.uniswap;
53
+ if (!uni)
54
+ throw new Error("Uniswap executor not configured.");
55
+ return uni.execute(normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, mapUniswapWalletOptions(input));
56
+ },
57
+ },
58
+ {
59
+ name: "prepare_uniswap_swap",
60
+ description: "Prepare Uniswap v4 swap only. Prefer prepare_swap after get_swap_quote for automatic routing.",
61
+ inputSchema: uniswapWalletSchema,
62
+ families: ["prepare"],
63
+ surfaces: ["celeste"],
64
+ handler: async (runtime, input) => {
65
+ const sender = resolveWalletFromRuntime(runtime, {
66
+ from: input.from,
67
+ });
68
+ return runtime.celina.uniswap.prepareSwap(sender, normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, mapUniswapWalletOptions(input));
69
+ },
70
+ },
71
+ ];
72
+ //# sourceMappingURL=uniswap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../src/tools/domains/uniswap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,SAAS,uBAAuB,CAAC,KAA8B;IAC7D,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAsC;QACvD,iBAAiB,EAAE,KAAK,CAAC,kBAAwC;QACjE,eAAe,EAAE,KAAK,CAAC,gBAAsC;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QACxE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;gBACrB,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAc,EAAE,CAAC;gBACnE,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CACxC,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,IAAI,CACL,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,wFAAwF;QAC1F,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QAC5E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAA0B;aACvC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CACvC,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CACxC,MAAM,EACN,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,GAAG,EAAE;YACH,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SAC5D;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,OAAO,CAChB,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,+FAA+F;QACjG,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAA0B;aACvC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CACvC,MAAM,EACN,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { FilterToolsOptions, ToolDefinition } from "./types.js";
2
+ export declare function filterToolDefinitions(definitions: ToolDefinition[], options?: FilterToolsOptions): ToolDefinition[];
@@ -0,0 +1,28 @@
1
+ const CARBON_PREPARE_PREFIX = "prepare_carbon_";
2
+ const CARBON_EXECUTE_PREFIX = "execute_carbon_";
3
+ export function filterToolDefinitions(definitions, options = {}) {
4
+ return definitions.filter((def) => {
5
+ if (options.surface) {
6
+ const surfaces = def.surfaces ?? ["mcp", "celeste"];
7
+ if (!surfaces.includes(options.surface)) {
8
+ return false;
9
+ }
10
+ }
11
+ if (options.families?.length) {
12
+ if (!options.families.some((f) => def.families.includes(f))) {
13
+ return false;
14
+ }
15
+ }
16
+ if (options.names?.length && !options.names.includes(def.name)) {
17
+ return false;
18
+ }
19
+ if (def.name.startsWith(CARBON_PREPARE_PREFIX) && options.carbonPrepareEnabled === false) {
20
+ return false;
21
+ }
22
+ if (def.name.startsWith(CARBON_EXECUTE_PREFIX) && options.carbonExecuteEnabled === false) {
23
+ return false;
24
+ }
25
+ return true;
26
+ });
27
+ }
28
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/tools/filter.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CACnC,WAA6B,EAC7B,UAA8B,EAAE;IAEhC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { ALL_TOOL_DEFINITIONS, getToolNames, getMcpToolNames, getCelesteToolNames, getToolsByFamily, getToolDefinition, validateToolCatalogSnakeCase, } from "./catalog.js";
2
+ export { filterToolDefinitions } from "./filter.js";
3
+ export { getSwapQuoteWithFallback, prepareSwapWithFallback, type SwapProtocol, type SwapQuoteResult, type SwapPrepareParams, } from "./swap-routing.js";
4
+ export * from "./schemas/common.js";
5
+ export type { FilterToolsOptions, McpToolAnnotations, McpToolMeta, ToolDefinition, ToolFamily, ToolRuntime, ToolRuntimeExecutors, ToolRuntimeHooks, ToolSurface, WalletInput, } from "./types.js";
6
+ export { normalizeRegistryTokenInput } from "./utils/normalize-token.js";
7
+ export { runCarbonPrepare } from "./utils/carbon-prepare-handler.js";
@@ -0,0 +1,7 @@
1
+ export { ALL_TOOL_DEFINITIONS, getToolNames, getMcpToolNames, getCelesteToolNames, getToolsByFamily, getToolDefinition, validateToolCatalogSnakeCase, } from "./catalog.js";
2
+ export { filterToolDefinitions } from "./filter.js";
3
+ export { getSwapQuoteWithFallback, prepareSwapWithFallback, } from "./swap-routing.js";
4
+ export * from "./schemas/common.js";
5
+ export { normalizeRegistryTokenInput } from "./utils/normalize-token.js";
6
+ export { runCarbonPrepare } from "./utils/carbon-prepare-handler.js";
7
+ //# sourceMappingURL=index.js.map