agentpay-mcp 3.1.0 → 4.0.1

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.
package/dist/index.js CHANGED
@@ -29,10 +29,18 @@ const x402_js_1 = require("./tools/x402.js");
29
29
  const history_js_1 = require("./tools/history.js");
30
30
  // ─── Tool imports (v1.1.0 — x402 V2 session payments) ─────────────────────
31
31
  const session_js_1 = require("./tools/session.js");
32
+ // ─── Tool imports (v4.0.0 — tokens, transfers, swap, bridge, budget, identity, escrow) ──
33
+ const tokens_js_1 = require("./tools/tokens.js");
34
+ const transfers_js_1 = require("./tools/transfers.js");
35
+ const swap_js_1 = require("./tools/swap.js");
36
+ const bridge_js_1 = require("./tools/bridge.js");
37
+ const budget_js_1 = require("./tools/budget.js");
38
+ const identity_js_1 = require("./tools/identity.js");
39
+ const escrow_js_1 = require("./tools/escrow.js");
32
40
  // ─── Server configuration ──────────────────────────────────────────────────
33
41
  const SERVER_INFO = {
34
42
  name: 'agentpay-mcp',
35
- version: '1.1.0',
43
+ version: '4.0.0',
36
44
  };
37
45
  const SERVER_CAPABILITIES = {
38
46
  tools: {},
@@ -52,6 +60,25 @@ const ALL_TOOLS = [
52
60
  session_js_1.x402SessionFetchTool,
53
61
  session_js_1.x402SessionStatusTool,
54
62
  session_js_1.x402SessionEndTool,
63
+ // v4.0.0 — tokens
64
+ tokens_js_1.lookupTokenTool,
65
+ tokens_js_1.addCustomTokenTool,
66
+ tokens_js_1.listChainTokensTool,
67
+ // v4.0.0 — transfers
68
+ transfers_js_1.sendTokenTool,
69
+ transfers_js_1.getBalancesTool,
70
+ // v4.0.0 — swap
71
+ swap_js_1.swapTokensTool,
72
+ // v4.0.0 — bridge
73
+ bridge_js_1.bridgeUsdcTool,
74
+ // v4.0.0 — budget
75
+ budget_js_1.setSpendPolicyTool,
76
+ budget_js_1.checkBudgetTool,
77
+ // v4.0.0 — identity
78
+ identity_js_1.verifyAgentIdentityTool,
79
+ identity_js_1.getReputationTool,
80
+ // v4.0.0 — escrow
81
+ escrow_js_1.createEscrowTool,
55
82
  ];
56
83
  // ─── Server initialization ─────────────────────────────────────────────────
57
84
  const server = new index_js_1.Server(SERVER_INFO, {
@@ -114,6 +141,61 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
114
141
  const input = session_js_1.X402SessionEndSchema.parse(args);
115
142
  return (0, session_js_1.handleX402SessionEnd)(input);
116
143
  }
144
+ // ── v4.0.0 — tokens ───────────────────────────────────────────────
145
+ case 'lookup_token': {
146
+ const input = tokens_js_1.LookupTokenSchema.parse(args);
147
+ return (0, tokens_js_1.handleLookupToken)(input);
148
+ }
149
+ case 'add_custom_token': {
150
+ const input = tokens_js_1.AddCustomTokenSchema.parse(args);
151
+ return (0, tokens_js_1.handleAddCustomToken)(input);
152
+ }
153
+ case 'list_chain_tokens': {
154
+ const input = tokens_js_1.ListChainTokensSchema.parse(args);
155
+ return (0, tokens_js_1.handleListChainTokens)(input);
156
+ }
157
+ // ── v4.0.0 — transfers ────────────────────────────────────────────
158
+ case 'send_token': {
159
+ const input = transfers_js_1.SendTokenSchema.parse(args);
160
+ return (0, transfers_js_1.handleSendToken)(input);
161
+ }
162
+ case 'get_balances': {
163
+ const input = transfers_js_1.GetBalancesSchema.parse(args ?? {});
164
+ return (0, transfers_js_1.handleGetBalances)(input);
165
+ }
166
+ // ── v4.0.0 — swap ─────────────────────────────────────────────────
167
+ case 'swap_tokens': {
168
+ const input = swap_js_1.SwapTokensSchema.parse(args);
169
+ return (0, swap_js_1.handleSwapTokens)(input);
170
+ }
171
+ // ── v4.0.0 — bridge ───────────────────────────────────────────────
172
+ case 'bridge_usdc': {
173
+ const input = bridge_js_1.BridgeUsdcSchema.parse(args);
174
+ return (0, bridge_js_1.handleBridgeUsdc)(input);
175
+ }
176
+ // ── v4.0.0 — budget ───────────────────────────────────────────────
177
+ case 'set_spend_policy': {
178
+ const input = budget_js_1.SetSpendPolicySchema.parse(args ?? {});
179
+ return (0, budget_js_1.handleSetSpendPolicy)(input);
180
+ }
181
+ case 'check_budget': {
182
+ const input = budget_js_1.CheckBudgetSchema.parse(args ?? {});
183
+ return (0, budget_js_1.handleCheckBudget)(input);
184
+ }
185
+ // ── v4.0.0 — identity ─────────────────────────────────────────────
186
+ case 'verify_agent_identity': {
187
+ const input = identity_js_1.VerifyAgentIdentitySchema.parse(args);
188
+ return (0, identity_js_1.handleVerifyAgentIdentity)(input);
189
+ }
190
+ case 'get_reputation': {
191
+ const input = identity_js_1.GetReputationSchema.parse(args);
192
+ return (0, identity_js_1.handleGetReputation)(input);
193
+ }
194
+ // ── v4.0.0 — escrow ───────────────────────────────────────────────
195
+ case 'create_escrow': {
196
+ const input = escrow_js_1.CreateEscrowSchema.parse(args);
197
+ return (0, escrow_js_1.handleCreateEscrow)(input);
198
+ }
117
199
  default:
118
200
  return {
119
201
  content: [
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * bridge.ts — bridge_usdc tool.
3
+ *
4
+ * Wraps agentwallet-sdk v6 BridgeModule (CCTP V2 cross-chain USDC bridge).
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const BridgeUsdcSchema: z.ZodObject<{
8
+ fromChain: z.ZodEnum<["base", "ethereum", "optimism", "arbitrum", "polygon", "avalanche", "linea", "unichain", "sonic", "worldchain"]>;
9
+ toChain: z.ZodEnum<["base", "ethereum", "optimism", "arbitrum", "polygon", "avalanche", "linea", "unichain", "sonic", "worldchain"]>;
10
+ amount: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ amount: string;
13
+ fromChain: "base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain";
14
+ toChain: "base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain";
15
+ }, {
16
+ amount: string;
17
+ fromChain: "base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain";
18
+ toChain: "base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain";
19
+ }>;
20
+ export type BridgeUsdcInput = z.infer<typeof BridgeUsdcSchema>;
21
+ export declare const bridgeUsdcTool: {
22
+ name: string;
23
+ description: string;
24
+ inputSchema: {
25
+ type: "object";
26
+ properties: {
27
+ fromChain: {
28
+ type: string;
29
+ enum: ("base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain")[];
30
+ description: string;
31
+ };
32
+ toChain: {
33
+ type: string;
34
+ enum: ("base" | "ethereum" | "arbitrum" | "polygon" | "optimism" | "avalanche" | "unichain" | "linea" | "sonic" | "worldchain")[];
35
+ description: string;
36
+ };
37
+ amount: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ };
42
+ required: string[];
43
+ };
44
+ };
45
+ export declare function handleBridgeUsdc(input: BridgeUsdcInput): Promise<{
46
+ content: Array<{
47
+ type: 'text';
48
+ text: string;
49
+ }>;
50
+ isError?: boolean;
51
+ }>;
52
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/tools/bridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiBvB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAU3B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAI9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAA;AAID,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA2ChF"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bridgeUsdcTool = exports.BridgeUsdcSchema = void 0;
4
+ exports.handleBridgeUsdc = handleBridgeUsdc;
5
+ /**
6
+ * bridge.ts — bridge_usdc tool.
7
+ *
8
+ * Wraps agentwallet-sdk v6 BridgeModule (CCTP V2 cross-chain USDC bridge).
9
+ */
10
+ const zod_1 = require("zod");
11
+ const agentwallet_sdk_1 = require("agentwallet-sdk");
12
+ const client_js_1 = require("../utils/client.js");
13
+ const format_js_1 = require("../utils/format.js");
14
+ // Supported CCTP V2 chain names
15
+ const SUPPORTED_CHAINS = [
16
+ 'base', 'ethereum', 'optimism', 'arbitrum', 'polygon',
17
+ 'avalanche', 'linea', 'unichain', 'sonic', 'worldchain',
18
+ ];
19
+ // ─── Schema ────────────────────────────────────────────────────────────────
20
+ exports.BridgeUsdcSchema = zod_1.z.object({
21
+ fromChain: zod_1.z
22
+ .enum(SUPPORTED_CHAINS)
23
+ .describe('Source chain name (e.g. "base", "ethereum", "arbitrum")'),
24
+ toChain: zod_1.z
25
+ .enum(SUPPORTED_CHAINS)
26
+ .describe('Destination chain name (e.g. "polygon", "optimism")'),
27
+ amount: zod_1.z
28
+ .string()
29
+ .describe('Amount of USDC to bridge in human-readable units, e.g. "100" for 100 USDC'),
30
+ });
31
+ // ─── Tool definition ───────────────────────────────────────────────────────
32
+ exports.bridgeUsdcTool = {
33
+ name: 'bridge_usdc',
34
+ description: 'Bridge USDC across chains using Circle\'s CCTP V2 protocol. ' +
35
+ 'Supported chains: base, ethereum, optimism, arbitrum, polygon, avalanche, linea, unichain, sonic, worldchain. ' +
36
+ 'The bridge approves USDC, burns on source, polls Circle IRIS for attestation, then mints on destination.',
37
+ inputSchema: {
38
+ type: 'object',
39
+ properties: {
40
+ fromChain: {
41
+ type: 'string',
42
+ enum: [...SUPPORTED_CHAINS],
43
+ description: 'Source chain name',
44
+ },
45
+ toChain: {
46
+ type: 'string',
47
+ enum: [...SUPPORTED_CHAINS],
48
+ description: 'Destination chain name',
49
+ },
50
+ amount: {
51
+ type: 'string',
52
+ description: 'Amount of USDC to bridge (human-readable, e.g. "100")',
53
+ },
54
+ },
55
+ required: ['fromChain', 'toChain', 'amount'],
56
+ },
57
+ };
58
+ // ─── Handler ───────────────────────────────────────────────────────────────
59
+ async function handleBridgeUsdc(input) {
60
+ try {
61
+ const wallet = (0, client_js_1.getWallet)();
62
+ if (input.fromChain === input.toChain) {
63
+ throw new Error('fromChain and toChain must be different');
64
+ }
65
+ // Parse USDC amount (6 decimals)
66
+ const USDC_DECIMALS = 6;
67
+ const amountFloat = parseFloat(input.amount);
68
+ if (isNaN(amountFloat) || amountFloat <= 0) {
69
+ throw new Error(`Invalid amount: "${input.amount}". Must be a positive number.`);
70
+ }
71
+ const rawAmount = BigInt(Math.round(amountFloat * 10 ** USDC_DECIMALS));
72
+ const bridge = (0, agentwallet_sdk_1.createBridge)(wallet.walletClient, input.fromChain);
73
+ const result = await bridge.bridge(rawAmount, input.toChain);
74
+ return {
75
+ content: [
76
+ (0, format_js_1.textContent)(JSON.stringify({
77
+ success: true,
78
+ burnTxHash: result.burnTxHash,
79
+ mintTxHash: result.mintTxHash,
80
+ fromChain: result.fromChain,
81
+ toChain: result.toChain,
82
+ recipient: result.recipient,
83
+ amount: input.amount,
84
+ rawAmount: rawAmount.toString(),
85
+ elapsedMs: result.elapsedMs,
86
+ })),
87
+ ],
88
+ };
89
+ }
90
+ catch (error) {
91
+ return {
92
+ content: [(0, format_js_1.textContent)((0, format_js_1.formatError)(error, 'bridge_usdc'))],
93
+ isError: true,
94
+ };
95
+ }
96
+ }
97
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/tools/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * budget.ts — set_spend_policy, check_budget tools.
3
+ *
4
+ * set_spend_policy: configure a SpendingPolicy (in-process, persists for server lifetime).
5
+ * check_budget: query on-chain remaining budget via checkBudget().
6
+ */
7
+ import { z } from 'zod';
8
+ export declare function _resetPolicyStore(): void;
9
+ export declare const SetSpendPolicySchema: z.ZodObject<{
10
+ dailyLimitEth: z.ZodOptional<z.ZodString>;
11
+ perTxCapEth: z.ZodOptional<z.ZodString>;
12
+ allowedRecipients: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ dailyLimitEth?: string | undefined;
15
+ perTxCapEth?: string | undefined;
16
+ allowedRecipients?: string[] | undefined;
17
+ }, {
18
+ dailyLimitEth?: string | undefined;
19
+ perTxCapEth?: string | undefined;
20
+ allowedRecipients?: string[] | undefined;
21
+ }>;
22
+ export type SetSpendPolicyInput = z.infer<typeof SetSpendPolicySchema>;
23
+ export declare const setSpendPolicyTool: {
24
+ name: string;
25
+ description: string;
26
+ inputSchema: {
27
+ type: "object";
28
+ properties: {
29
+ dailyLimitEth: {
30
+ type: string;
31
+ description: string;
32
+ };
33
+ perTxCapEth: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ allowedRecipients: {
38
+ type: string;
39
+ items: {
40
+ type: string;
41
+ };
42
+ description: string;
43
+ };
44
+ };
45
+ required: never[];
46
+ };
47
+ };
48
+ export declare function handleSetSpendPolicy(input: SetSpendPolicyInput): Promise<{
49
+ content: Array<{
50
+ type: 'text';
51
+ text: string;
52
+ }>;
53
+ isError?: boolean;
54
+ }>;
55
+ export declare const CheckBudgetSchema: z.ZodObject<{
56
+ token: z.ZodOptional<z.ZodString>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ token?: string | undefined;
59
+ }, {
60
+ token?: string | undefined;
61
+ }>;
62
+ export type CheckBudgetInput = z.infer<typeof CheckBudgetSchema>;
63
+ export declare const checkBudgetTool: {
64
+ name: string;
65
+ description: string;
66
+ inputSchema: {
67
+ type: "object";
68
+ properties: {
69
+ token: {
70
+ type: string;
71
+ description: string;
72
+ };
73
+ };
74
+ required: never[];
75
+ };
76
+ };
77
+ export declare function handleCheckBudget(input: CheckBudgetInput): Promise<{
78
+ content: Array<{
79
+ type: 'text';
80
+ text: string;
81
+ }>;
82
+ isError?: boolean;
83
+ }>;
84
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/tools/budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiBvB,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAID,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAa/B,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;CAyB9B,CAAA;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwDhF;AAID,eAAO,MAAM,iBAAiB;;;;;;EAS5B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEhE,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAgB3B,CAAA;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBhF"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkBudgetTool = exports.CheckBudgetSchema = exports.setSpendPolicyTool = exports.SetSpendPolicySchema = void 0;
4
+ exports._resetPolicyStore = _resetPolicyStore;
5
+ exports.handleSetSpendPolicy = handleSetSpendPolicy;
6
+ exports.handleCheckBudget = handleCheckBudget;
7
+ /**
8
+ * budget.ts — set_spend_policy, check_budget tools.
9
+ *
10
+ * set_spend_policy: configure a SpendingPolicy (in-process, persists for server lifetime).
11
+ * check_budget: query on-chain remaining budget via checkBudget().
12
+ */
13
+ const zod_1 = require("zod");
14
+ const agentwallet_sdk_1 = require("agentwallet-sdk");
15
+ const viem_1 = require("viem");
16
+ const client_js_1 = require("../utils/client.js");
17
+ const format_js_1 = require("../utils/format.js");
18
+ let _policyConfig = null;
19
+ let _spendingPolicy = null;
20
+ function _resetPolicyStore() {
21
+ _policyConfig = null;
22
+ _spendingPolicy = null;
23
+ }
24
+ // ─── set_spend_policy ──────────────────────────────────────────────────────
25
+ exports.SetSpendPolicySchema = zod_1.z.object({
26
+ dailyLimitEth: zod_1.z
27
+ .string()
28
+ .optional()
29
+ .describe('Daily spend limit in ETH-equivalent, e.g. "0.1"'),
30
+ perTxCapEth: zod_1.z
31
+ .string()
32
+ .optional()
33
+ .describe('Per-transaction cap in ETH-equivalent, e.g. "0.01"'),
34
+ allowedRecipients: zod_1.z
35
+ .array(zod_1.z.string())
36
+ .optional()
37
+ .describe('Allowlist of recipient addresses (0x-prefixed). Empty = all allowed.'),
38
+ });
39
+ exports.setSpendPolicyTool = {
40
+ name: 'set_spend_policy',
41
+ description: 'Configure the Agent Wallet spend policy. ' +
42
+ 'Sets a daily limit, per-transaction cap, and optional recipient allowlist. ' +
43
+ 'The policy is enforced in-process for the lifetime of the MCP server.',
44
+ inputSchema: {
45
+ type: 'object',
46
+ properties: {
47
+ dailyLimitEth: {
48
+ type: 'string',
49
+ description: 'Daily spend limit in ETH-equivalent (e.g. "0.1")',
50
+ },
51
+ perTxCapEth: {
52
+ type: 'string',
53
+ description: 'Per-tx cap in ETH-equivalent (e.g. "0.01")',
54
+ },
55
+ allowedRecipients: {
56
+ type: 'array',
57
+ items: { type: 'string' },
58
+ description: 'Allowlisted recipient addresses',
59
+ },
60
+ },
61
+ required: [],
62
+ },
63
+ };
64
+ async function handleSetSpendPolicy(input) {
65
+ try {
66
+ const ethToWei = (eth) => {
67
+ const val = parseFloat(eth);
68
+ if (isNaN(val) || val < 0)
69
+ throw new Error(`Invalid ETH amount: "${eth}"`);
70
+ return BigInt(Math.round(val * 1e18));
71
+ };
72
+ const merchantAllowlist = input.allowedRecipients ?? [];
73
+ // Build SpendingPolicyConfig from inputs
74
+ // rollingCap uses a 24-hour window for dailyLimitEth
75
+ const rollingCap = input.dailyLimitEth
76
+ ? {
77
+ maxAmount: Number(ethToWei(input.dailyLimitEth)),
78
+ windowMs: 86_400_000, // 24 hours
79
+ }
80
+ : undefined;
81
+ // draftThreshold maps to perTxCap — payments above this go to draft
82
+ const draftThreshold = input.perTxCapEth
83
+ ? Number(ethToWei(input.perTxCapEth))
84
+ : undefined;
85
+ _spendingPolicy = new agentwallet_sdk_1.SpendingPolicy({
86
+ merchantAllowlist,
87
+ rollingCap,
88
+ draftThreshold,
89
+ });
90
+ _policyConfig = {
91
+ dailyLimitEth: input.dailyLimitEth,
92
+ perTxCapEth: input.perTxCapEth,
93
+ allowedRecipients: merchantAllowlist,
94
+ };
95
+ return {
96
+ content: [
97
+ (0, format_js_1.textContent)(JSON.stringify({
98
+ success: true,
99
+ policy: {
100
+ dailyLimitEth: input.dailyLimitEth ?? null,
101
+ perTxCapEth: input.perTxCapEth ?? null,
102
+ allowedRecipients: merchantAllowlist,
103
+ },
104
+ })),
105
+ ],
106
+ };
107
+ }
108
+ catch (error) {
109
+ return {
110
+ content: [(0, format_js_1.textContent)((0, format_js_1.formatError)(error, 'set_spend_policy'))],
111
+ isError: true,
112
+ };
113
+ }
114
+ }
115
+ // ─── check_budget ──────────────────────────────────────────────────────────
116
+ exports.CheckBudgetSchema = zod_1.z.object({
117
+ token: zod_1.z
118
+ .string()
119
+ .optional()
120
+ .describe('Token address to check budget for. ' +
121
+ 'Use "0x0000000000000000000000000000000000000000" for ETH (default). ' +
122
+ 'Or a USDC/ERC20 contract address.'),
123
+ });
124
+ exports.checkBudgetTool = {
125
+ name: 'check_budget',
126
+ description: 'Check the remaining on-chain budget for the Agent Wallet. ' +
127
+ 'Returns per-transaction limit and period remaining. ' +
128
+ 'Optionally include any configured spend policy details.',
129
+ inputSchema: {
130
+ type: 'object',
131
+ properties: {
132
+ token: {
133
+ type: 'string',
134
+ description: 'Token address (default: ETH / zero address)',
135
+ },
136
+ },
137
+ required: [],
138
+ },
139
+ };
140
+ async function handleCheckBudget(input) {
141
+ try {
142
+ const wallet = (0, client_js_1.getWallet)();
143
+ const token = input.token ?? viem_1.zeroAddress;
144
+ const budget = await (0, agentwallet_sdk_1.checkBudget)(wallet, token);
145
+ return {
146
+ content: [
147
+ (0, format_js_1.textContent)(JSON.stringify({
148
+ token,
149
+ perTxLimit: budget.perTxLimit.toString(),
150
+ remainingInPeriod: budget.remainingInPeriod.toString(),
151
+ policy: _policyConfig ?? null,
152
+ })),
153
+ ],
154
+ };
155
+ }
156
+ catch (error) {
157
+ return {
158
+ content: [(0, format_js_1.textContent)((0, format_js_1.formatError)(error, 'check_budget'))],
159
+ isError: true,
160
+ };
161
+ }
162
+ }
163
+ //# sourceMappingURL=budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/tools/budget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * escrow.ts — create_escrow tool.
3
+ *
4
+ * Wraps agentwallet-sdk v6 MutualStakeEscrow for on-chain mutual-stake escrow creation.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const CreateEscrowSchema: z.ZodObject<{
8
+ counterpartyAddress: z.ZodString;
9
+ stakeAmount: z.ZodString;
10
+ terms: z.ZodString;
11
+ factoryAddress: z.ZodOptional<z.ZodString>;
12
+ deadlineDays: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
13
+ challengeWindowHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ counterpartyAddress: string;
16
+ stakeAmount: string;
17
+ terms: string;
18
+ deadlineDays: number;
19
+ challengeWindowHours: number;
20
+ factoryAddress?: string | undefined;
21
+ }, {
22
+ counterpartyAddress: string;
23
+ stakeAmount: string;
24
+ terms: string;
25
+ factoryAddress?: string | undefined;
26
+ deadlineDays?: number | undefined;
27
+ challengeWindowHours?: number | undefined;
28
+ }>;
29
+ export type CreateEscrowInput = z.infer<typeof CreateEscrowSchema>;
30
+ export declare const createEscrowTool: {
31
+ name: string;
32
+ description: string;
33
+ inputSchema: {
34
+ type: "object";
35
+ properties: {
36
+ counterpartyAddress: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ stakeAmount: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ terms: {
45
+ type: string;
46
+ description: string;
47
+ };
48
+ factoryAddress: {
49
+ type: string;
50
+ description: string;
51
+ };
52
+ deadlineDays: {
53
+ type: string;
54
+ description: string;
55
+ default: number;
56
+ };
57
+ challengeWindowHours: {
58
+ type: string;
59
+ description: string;
60
+ default: number;
61
+ };
62
+ };
63
+ required: string[];
64
+ };
65
+ };
66
+ export declare function handleCreateEscrow(input: CreateEscrowInput): Promise<{
67
+ content: Array<{
68
+ type: 'text';
69
+ text: string;
70
+ }>;
71
+ isError?: boolean;
72
+ }>;
73
+ //# sourceMappingURL=escrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../src/tools/escrow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EA+B7B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAIlE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC5B,CAAA;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwEhF"}