@sardis/mcp-server 0.2.7 → 1.1.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.
- package/CHANGELOG.md +11 -1
- package/CLAUDE_DESKTOP_CONFIG.md +10 -19
- package/README.md +179 -221
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +4 -2
- package/dist/api.js.map +1 -1
- package/dist/cli.js +185 -20
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/events.d.ts +7 -0
- package/dist/tools/events.d.ts.map +1 -0
- package/dist/tools/events.js +413 -0
- package/dist/tools/events.js.map +1 -0
- package/dist/tools/fiat.d.ts +2 -2
- package/dist/tools/fiat.d.ts.map +1 -1
- package/dist/tools/fiat.js +649 -266
- package/dist/tools/fiat.js.map +1 -1
- package/dist/tools/guardrails.d.ts +7 -0
- package/dist/tools/guardrails.d.ts.map +1 -0
- package/dist/tools/guardrails.js +379 -0
- package/dist/tools/guardrails.js.map +1 -0
- package/dist/tools/index.d.ts +29 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +108 -5
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jobs.d.ts +17 -0
- package/dist/tools/jobs.d.ts.map +1 -0
- package/dist/tools/jobs.js +583 -0
- package/dist/tools/jobs.js.map +1 -0
- package/dist/tools/payments.d.ts +2 -0
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +2 -0
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/policy.d.ts.map +1 -1
- package/dist/tools/policy.js +32 -4
- package/dist/tools/policy.js.map +1 -1
- package/dist/tools/sandbox.js +1 -1
- package/dist/tools/trust.d.ts +7 -0
- package/dist/tools/trust.d.ts.map +1 -0
- package/dist/tools/trust.js +188 -0
- package/dist/tools/trust.js.map +1 -0
- package/dist/tools/types.d.ts +51 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +20 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/wallet-management.d.ts.map +1 -1
- package/dist/tools/wallet-management.js +55 -45
- package/dist/tools/wallet-management.js.map +1 -1
- package/dist/tools/x402.d.ts +12 -0
- package/dist/tools/x402.d.ts.map +1 -0
- package/dist/tools/x402.js +299 -0
- package/dist/tools/x402.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/mcp.json +139 -53
- package/package.json +30 -14
|
@@ -8,7 +8,11 @@ import { getConfig } from '../config.js';
|
|
|
8
8
|
import { apiRequest } from '../api.js';
|
|
9
9
|
// Schemas
|
|
10
10
|
const CreateWalletSchema = z.object({
|
|
11
|
-
name: z.string().describe('
|
|
11
|
+
name: z.string().optional().describe('Optional wallet name label'),
|
|
12
|
+
agent_id: z.string().optional().describe('Agent ID that will own the wallet'),
|
|
13
|
+
mpc_provider: z.enum(['turnkey', 'fireblocks', 'local']).optional(),
|
|
14
|
+
account_type: z.enum(['mpc_v1', 'erc4337_v2']).optional(),
|
|
15
|
+
currency: z.enum(['USDC', 'USDT', 'PYUSD', 'EURC']).optional(),
|
|
12
16
|
chain: z.enum(['base', 'polygon', 'ethereum', 'arbitrum', 'optimism']).optional().describe('Blockchain network'),
|
|
13
17
|
policy: z.object({
|
|
14
18
|
max_per_tx: z.string().optional().describe('Maximum amount per transaction'),
|
|
@@ -17,33 +21,12 @@ const CreateWalletSchema = z.object({
|
|
|
17
21
|
blocked_categories: z.array(z.string()).optional().describe('Blocked categories'),
|
|
18
22
|
}).optional().describe('Spending policy'),
|
|
19
23
|
});
|
|
20
|
-
const UpdatePolicySchema = z.object({
|
|
21
|
-
wallet_id: z.string().describe('Wallet ID to update'),
|
|
22
|
-
policy: z.object({
|
|
23
|
-
max_per_tx: z.string().optional(),
|
|
24
|
-
max_daily: z.string().optional(),
|
|
25
|
-
max_monthly: z.string().optional(),
|
|
26
|
-
allowed_vendors: z.array(z.string()).optional(),
|
|
27
|
-
blocked_vendors: z.array(z.string()).optional(),
|
|
28
|
-
blocked_categories: z.array(z.string()).optional(),
|
|
29
|
-
require_approval_above: z.string().optional(),
|
|
30
|
-
}).describe('New policy settings'),
|
|
31
|
-
});
|
|
32
24
|
const ListWalletsSchema = z.object({
|
|
33
25
|
agent_id: z.string().optional().describe('Filter by agent ID'),
|
|
34
26
|
chain: z.string().optional().describe('Filter by blockchain'),
|
|
35
27
|
status: z.enum(['active', 'inactive']).optional().describe('Filter by status'),
|
|
36
28
|
limit: z.number().optional().describe('Maximum wallets to return'),
|
|
37
29
|
});
|
|
38
|
-
const UpdateLimitsSchema = z.object({
|
|
39
|
-
wallet_id: z.string().describe('Wallet ID to update'),
|
|
40
|
-
limit_per_tx: z.number().optional().describe('Maximum per transaction'),
|
|
41
|
-
limit_total: z.number().optional().describe('Maximum total/daily limit'),
|
|
42
|
-
});
|
|
43
|
-
const ArchiveWalletSchema = z.object({
|
|
44
|
-
wallet_id: z.string().describe('Wallet ID to archive'),
|
|
45
|
-
reason: z.string().optional().describe('Reason for archiving'),
|
|
46
|
-
});
|
|
47
30
|
// SECURITY: Only read-only and wallet creation tools are exposed to AI agents.
|
|
48
31
|
// Policy/limit modification and archival tools have been REMOVED to prevent
|
|
49
32
|
// prompt-injected agents from escalating their own privileges.
|
|
@@ -51,11 +34,27 @@ const ArchiveWalletSchema = z.object({
|
|
|
51
34
|
export const walletManagementToolDefinitions = [
|
|
52
35
|
{
|
|
53
36
|
name: 'sardis_create_wallet',
|
|
54
|
-
description: 'Create a new
|
|
37
|
+
description: 'Create a new wallet for an agent. Supports mpc_v1 and erc4337_v2 account types.',
|
|
55
38
|
inputSchema: {
|
|
56
39
|
type: 'object',
|
|
57
40
|
properties: {
|
|
58
|
-
name: { type: 'string', description: '
|
|
41
|
+
name: { type: 'string', description: 'Optional wallet label' },
|
|
42
|
+
agent_id: { type: 'string', description: 'Agent ID that will own this wallet' },
|
|
43
|
+
mpc_provider: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
enum: ['turnkey', 'fireblocks', 'local'],
|
|
46
|
+
description: 'MPC provider (default: turnkey)',
|
|
47
|
+
},
|
|
48
|
+
account_type: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
enum: ['mpc_v1', 'erc4337_v2'],
|
|
51
|
+
description: 'Wallet execution type (default: mpc_v1)',
|
|
52
|
+
},
|
|
53
|
+
currency: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
enum: ['USDC', 'USDT', 'PYUSD', 'EURC'],
|
|
56
|
+
description: 'Display currency (default: USDC)',
|
|
57
|
+
},
|
|
59
58
|
chain: {
|
|
60
59
|
type: 'string',
|
|
61
60
|
enum: ['base', 'polygon', 'ethereum', 'arbitrum', 'optimism'],
|
|
@@ -80,7 +79,7 @@ export const walletManagementToolDefinitions = [
|
|
|
80
79
|
},
|
|
81
80
|
},
|
|
82
81
|
},
|
|
83
|
-
required: [
|
|
82
|
+
required: [],
|
|
84
83
|
},
|
|
85
84
|
},
|
|
86
85
|
{
|
|
@@ -98,23 +97,8 @@ export const walletManagementToolDefinitions = [
|
|
|
98
97
|
},
|
|
99
98
|
},
|
|
100
99
|
];
|
|
101
|
-
// SECURITY: Blocked tool handler — returns an error directing users to the admin API.
|
|
102
|
-
const blockedToolHandler = async (_args) => ({
|
|
103
|
-
content: [{
|
|
104
|
-
type: 'text',
|
|
105
|
-
text: JSON.stringify({
|
|
106
|
-
error: 'This operation has been disabled for AI agents for security reasons. '
|
|
107
|
-
+ 'Policy and limit changes must be made via the admin dashboard or admin API.',
|
|
108
|
-
}),
|
|
109
|
-
}],
|
|
110
|
-
isError: true,
|
|
111
|
-
});
|
|
112
100
|
// Tool handlers
|
|
113
101
|
export const walletManagementToolHandlers = {
|
|
114
|
-
// SECURITY: Block mutation tools — agents must not modify their own policies/limits
|
|
115
|
-
sardis_update_wallet_policy: blockedToolHandler,
|
|
116
|
-
sardis_update_wallet_limits: blockedToolHandler,
|
|
117
|
-
sardis_archive_wallet: blockedToolHandler,
|
|
118
102
|
sardis_create_wallet: async (args) => {
|
|
119
103
|
const parsed = CreateWalletSchema.safeParse(args);
|
|
120
104
|
if (!parsed.success) {
|
|
@@ -133,9 +117,10 @@ export const walletManagementToolHandlers = {
|
|
|
133
117
|
text: JSON.stringify({
|
|
134
118
|
wallet_id: walletId,
|
|
135
119
|
id: walletId,
|
|
136
|
-
name: parsed.data.name,
|
|
120
|
+
name: parsed.data.name || 'Sardis Wallet',
|
|
137
121
|
address,
|
|
138
122
|
chain: parsed.data.chain || 'base',
|
|
123
|
+
account_type: parsed.data.account_type || 'mpc_v1',
|
|
139
124
|
status: 'active',
|
|
140
125
|
is_active: true,
|
|
141
126
|
balance: '0.00',
|
|
@@ -147,7 +132,13 @@ export const walletManagementToolHandlers = {
|
|
|
147
132
|
};
|
|
148
133
|
}
|
|
149
134
|
try {
|
|
150
|
-
const
|
|
135
|
+
const payload = {
|
|
136
|
+
agent_id: parsed.data.agent_id || getConfig().agentId || 'agent_default',
|
|
137
|
+
mpc_provider: parsed.data.mpc_provider || 'turnkey',
|
|
138
|
+
account_type: parsed.data.account_type || 'mpc_v1',
|
|
139
|
+
currency: parsed.data.currency || 'USDC',
|
|
140
|
+
};
|
|
141
|
+
const result = await apiRequest('POST', '/api/v2/wallets', payload);
|
|
151
142
|
return {
|
|
152
143
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
153
144
|
};
|
|
@@ -215,8 +206,27 @@ export const walletManagementToolHandlers = {
|
|
|
215
206
|
};
|
|
216
207
|
}
|
|
217
208
|
},
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
|
|
209
|
+
// SECURITY: mutation tools remain intentionally unavailable to agents.
|
|
210
|
+
// Use admin API/dashboard for policy, limits, and archival operations.
|
|
211
|
+
sardis_update_wallet_limits: async () => ({
|
|
212
|
+
content: [{
|
|
213
|
+
type: 'text',
|
|
214
|
+
text: JSON.stringify({
|
|
215
|
+
error: 'security: sardis_update_wallet_limits is blocked for agent callers',
|
|
216
|
+
reason_code: 'SARDIS.MCP.SECURITY.BLOCKED_OPERATION',
|
|
217
|
+
}),
|
|
218
|
+
}],
|
|
219
|
+
isError: true,
|
|
220
|
+
}),
|
|
221
|
+
sardis_archive_wallet: async () => ({
|
|
222
|
+
content: [{
|
|
223
|
+
type: 'text',
|
|
224
|
+
text: JSON.stringify({
|
|
225
|
+
error: 'security: sardis_archive_wallet is blocked for agent callers',
|
|
226
|
+
reason_code: 'SARDIS.MCP.SECURITY.BLOCKED_OPERATION',
|
|
227
|
+
}),
|
|
228
|
+
}],
|
|
229
|
+
isError: true,
|
|
230
|
+
}),
|
|
221
231
|
};
|
|
222
232
|
//# sourceMappingURL=wallet-management.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-management.js","sourceRoot":"","sources":["../../src/tools/wallet-management.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,UAAU;AACV,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"wallet-management.js","sourceRoot":"","sources":["../../src/tools/wallet-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sardis MCP Server - x402 Payment Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for interacting with x402-protected APIs:
|
|
5
|
+
* - sardis_x402_pay: Pay an x402-protected endpoint
|
|
6
|
+
* - sardis_x402_preview_cost: Dry-run cost preview
|
|
7
|
+
* - sardis_x402_list_payments: Audit x402 payments
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolDefinition, ToolHandler } from './types.js';
|
|
10
|
+
export declare const x402ToolDefinitions: ToolDefinition[];
|
|
11
|
+
export declare const x402ToolHandlers: Record<string, ToolHandler>;
|
|
12
|
+
//# sourceMappingURL=x402.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../src/tools/x402.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AA8D1E,eAAO,MAAM,mBAAmB,EAAE,cAAc,EA8E/C,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgOxD,CAAC"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sardis MCP Server - x402 Payment Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for interacting with x402-protected APIs:
|
|
5
|
+
* - sardis_x402_pay: Pay an x402-protected endpoint
|
|
6
|
+
* - sardis_x402_preview_cost: Dry-run cost preview
|
|
7
|
+
* - sardis_x402_list_payments: Audit x402 payments
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { apiRequest } from '../api.js';
|
|
11
|
+
import { getConfig } from '../config.js';
|
|
12
|
+
// Zod schemas
|
|
13
|
+
const X402PaySchema = z.object({
|
|
14
|
+
url: z.string().url().describe('URL of the x402-protected endpoint'),
|
|
15
|
+
method: z.enum(['GET', 'POST', 'PUT', 'DELETE']).optional().default('GET'),
|
|
16
|
+
body: z.string().optional().describe('Request body (JSON string)'),
|
|
17
|
+
max_cost: z.string().optional().describe('Maximum amount willing to pay (e.g., "1.00")'),
|
|
18
|
+
dry_run: z.boolean().optional().default(false).describe('Preview cost without paying'),
|
|
19
|
+
preferred_network: z.string().optional().describe('Preferred blockchain network'),
|
|
20
|
+
});
|
|
21
|
+
const X402PreviewSchema = z.object({
|
|
22
|
+
url: z.string().url().describe('URL to check for x402 pricing'),
|
|
23
|
+
});
|
|
24
|
+
const X402ListPaymentsSchema = z.object({
|
|
25
|
+
limit: z.number().optional().default(20),
|
|
26
|
+
offset: z.number().optional().default(0),
|
|
27
|
+
status: z.string().optional().describe('Filter by status: verified, settled, failed'),
|
|
28
|
+
});
|
|
29
|
+
// Tool definitions
|
|
30
|
+
export const x402ToolDefinitions = [
|
|
31
|
+
{
|
|
32
|
+
name: 'sardis_x402_pay',
|
|
33
|
+
description: 'Pay an x402-protected endpoint. Makes an HTTP request, handles 402 Payment Required ' +
|
|
34
|
+
'automatically by negotiating payment, checking spending policy, signing with MPC wallet, ' +
|
|
35
|
+
'and retrying with payment. Returns the API response and payment receipt.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
url: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
description: 'URL of the x402-protected endpoint',
|
|
42
|
+
},
|
|
43
|
+
method: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
enum: ['GET', 'POST', 'PUT', 'DELETE'],
|
|
46
|
+
description: 'HTTP method (default: GET)',
|
|
47
|
+
},
|
|
48
|
+
body: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'Request body as JSON string (for POST/PUT)',
|
|
51
|
+
},
|
|
52
|
+
max_cost: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Maximum amount willing to pay in human-readable units (e.g., "1.00" USDC)',
|
|
55
|
+
},
|
|
56
|
+
dry_run: {
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: 'If true, preview the cost without making payment',
|
|
59
|
+
},
|
|
60
|
+
preferred_network: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
description: 'Preferred blockchain network (e.g., "base", "polygon")',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
required: ['url'],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'sardis_x402_preview_cost',
|
|
70
|
+
description: 'Preview the cost of accessing an x402-protected endpoint without paying. ' +
|
|
71
|
+
'Checks if the endpoint requires payment and whether the current spending policy would allow it.',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
url: {
|
|
76
|
+
type: 'string',
|
|
77
|
+
description: 'URL to check for x402 pricing',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
required: ['url'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'sardis_x402_list_payments',
|
|
85
|
+
description: 'List x402 payment records for audit and tracking.',
|
|
86
|
+
inputSchema: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
limit: {
|
|
90
|
+
type: 'number',
|
|
91
|
+
description: 'Maximum number of records to return (default: 20)',
|
|
92
|
+
},
|
|
93
|
+
offset: {
|
|
94
|
+
type: 'number',
|
|
95
|
+
description: 'Pagination offset',
|
|
96
|
+
},
|
|
97
|
+
status: {
|
|
98
|
+
type: 'string',
|
|
99
|
+
enum: ['verified', 'settled', 'failed'],
|
|
100
|
+
description: 'Filter by payment status',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
required: [],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
// Tool handlers
|
|
108
|
+
export const x402ToolHandlers = {
|
|
109
|
+
sardis_x402_pay: async (args) => {
|
|
110
|
+
const parsed = X402PaySchema.safeParse(args);
|
|
111
|
+
if (!parsed.success) {
|
|
112
|
+
return {
|
|
113
|
+
content: [{ type: 'text', text: `Invalid request: ${parsed.error.message}` }],
|
|
114
|
+
isError: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const { url, method, body, max_cost, dry_run, preferred_network } = parsed.data;
|
|
118
|
+
const config = getConfig();
|
|
119
|
+
if (!config.apiKey || config.mode === 'simulated') {
|
|
120
|
+
// Simulated mode
|
|
121
|
+
const simId = `x402_sim_${Date.now().toString(36)}`;
|
|
122
|
+
return {
|
|
123
|
+
content: [
|
|
124
|
+
{
|
|
125
|
+
type: 'text',
|
|
126
|
+
text: JSON.stringify({
|
|
127
|
+
success: true,
|
|
128
|
+
response: { status_code: 200, body: '{"data": "simulated_x402_response"}' },
|
|
129
|
+
payment: {
|
|
130
|
+
payment_id: simId,
|
|
131
|
+
amount: '1000000',
|
|
132
|
+
currency: 'USDC',
|
|
133
|
+
network: preferred_network || config.chain,
|
|
134
|
+
tx_hash: '0x' + Math.random().toString(16).substring(2).padEnd(64, '0'),
|
|
135
|
+
dry_run: dry_run || false,
|
|
136
|
+
},
|
|
137
|
+
cost: '$1.00 USDC',
|
|
138
|
+
message: dry_run
|
|
139
|
+
? `Dry run: accessing ${url} would cost ~$1.00 USDC`
|
|
140
|
+
: `Paid $1.00 USDC to access ${url}`,
|
|
141
|
+
}, null, 2),
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
const result = await apiRequest('POST', '/api/v2/x402/client-request', {
|
|
148
|
+
url,
|
|
149
|
+
method,
|
|
150
|
+
body: body || undefined,
|
|
151
|
+
max_cost: max_cost || undefined,
|
|
152
|
+
dry_run,
|
|
153
|
+
preferred_network: preferred_network || undefined,
|
|
154
|
+
wallet_id: config.walletId,
|
|
155
|
+
agent_id: config.agentId,
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
content: [
|
|
159
|
+
{
|
|
160
|
+
type: 'text',
|
|
161
|
+
text: JSON.stringify({
|
|
162
|
+
success: true,
|
|
163
|
+
...result,
|
|
164
|
+
message: result.payment?.dry_run
|
|
165
|
+
? `Dry run: accessing ${url} would cost ${result.cost}`
|
|
166
|
+
: `Paid ${result.cost} to access ${url}`,
|
|
167
|
+
}, null, 2),
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const msg = error instanceof Error ? error.message : 'x402 payment failed';
|
|
174
|
+
return {
|
|
175
|
+
content: [
|
|
176
|
+
{
|
|
177
|
+
type: 'text',
|
|
178
|
+
text: JSON.stringify({ success: false, error: msg, url }, null, 2),
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
isError: true,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
sardis_x402_preview_cost: async (args) => {
|
|
186
|
+
const parsed = X402PreviewSchema.safeParse(args);
|
|
187
|
+
if (!parsed.success) {
|
|
188
|
+
return {
|
|
189
|
+
content: [{ type: 'text', text: `Invalid request: ${parsed.error.message}` }],
|
|
190
|
+
isError: true,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
const { url } = parsed.data;
|
|
194
|
+
const config = getConfig();
|
|
195
|
+
if (!config.apiKey || config.mode === 'simulated') {
|
|
196
|
+
return {
|
|
197
|
+
content: [
|
|
198
|
+
{
|
|
199
|
+
type: 'text',
|
|
200
|
+
text: JSON.stringify({
|
|
201
|
+
url,
|
|
202
|
+
amount: '1000000',
|
|
203
|
+
currency: 'USDC',
|
|
204
|
+
network: config.chain,
|
|
205
|
+
policy_check: true,
|
|
206
|
+
estimated_total_cost: '$1.00 USDC',
|
|
207
|
+
failure_reasons: [],
|
|
208
|
+
message: `Endpoint ${url} requires ~$1.00 USDC per request (simulated)`,
|
|
209
|
+
}, null, 2),
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const preview = await apiRequest('POST', '/api/v2/x402/dry-run', {
|
|
216
|
+
url,
|
|
217
|
+
wallet_id: config.walletId,
|
|
218
|
+
agent_id: config.agentId,
|
|
219
|
+
});
|
|
220
|
+
return {
|
|
221
|
+
content: [
|
|
222
|
+
{
|
|
223
|
+
type: 'text',
|
|
224
|
+
text: JSON.stringify({
|
|
225
|
+
...preview,
|
|
226
|
+
message: preview.policy_check
|
|
227
|
+
? `Endpoint requires ${preview.estimated_total_cost} — policy allows`
|
|
228
|
+
: `Endpoint requires ${preview.estimated_total_cost} — BLOCKED: ${preview.failure_reasons.join(', ')}`,
|
|
229
|
+
}, null, 2),
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
return {
|
|
236
|
+
content: [
|
|
237
|
+
{
|
|
238
|
+
type: 'text',
|
|
239
|
+
text: `Failed to preview cost: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
isError: true,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
sardis_x402_list_payments: async (args) => {
|
|
247
|
+
const parsed = X402ListPaymentsSchema.safeParse(args);
|
|
248
|
+
const { limit, offset, status } = parsed.success
|
|
249
|
+
? parsed.data
|
|
250
|
+
: { limit: 20, offset: 0, status: undefined };
|
|
251
|
+
const config = getConfig();
|
|
252
|
+
if (!config.apiKey || config.mode === 'simulated') {
|
|
253
|
+
const simTime = new Date().toISOString();
|
|
254
|
+
return {
|
|
255
|
+
content: [
|
|
256
|
+
{
|
|
257
|
+
type: 'text',
|
|
258
|
+
text: JSON.stringify([
|
|
259
|
+
{
|
|
260
|
+
payment_id: `x402_sim_${Date.now().toString(36)}`,
|
|
261
|
+
status: 'settled',
|
|
262
|
+
amount: '1000000',
|
|
263
|
+
currency: 'USDC',
|
|
264
|
+
network: config.chain,
|
|
265
|
+
tx_hash: '0x' + '1'.repeat(64),
|
|
266
|
+
source: 'client',
|
|
267
|
+
created_at: simTime,
|
|
268
|
+
},
|
|
269
|
+
], null, 2),
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
const params = new URLSearchParams({
|
|
276
|
+
limit: limit.toString(),
|
|
277
|
+
offset: offset.toString(),
|
|
278
|
+
});
|
|
279
|
+
if (status)
|
|
280
|
+
params.append('status', status);
|
|
281
|
+
const payments = await apiRequest('GET', `/api/v2/x402/settlements?${params}`);
|
|
282
|
+
return {
|
|
283
|
+
content: [{ type: 'text', text: JSON.stringify(payments, null, 2) }],
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
return {
|
|
288
|
+
content: [
|
|
289
|
+
{
|
|
290
|
+
type: 'text',
|
|
291
|
+
text: `Failed to list x402 payments: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
292
|
+
},
|
|
293
|
+
],
|
|
294
|
+
isError: true,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=x402.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/tools/x402.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC"}
|