@1ly/mcp-server 0.1.3 → 0.1.5
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/README.md +61 -29
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +22 -1
- package/dist/budget.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +81 -15
- package/dist/config.js.map +1 -1
- package/dist/http.d.ts +2 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +27 -1
- package/dist/http.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/rate-limit.d.ts +24 -0
- package/dist/rate-limit.d.ts.map +1 -0
- package/dist/rate-limit.js +50 -0
- package/dist/rate-limit.js.map +1 -0
- package/dist/security-log.d.ts +55 -0
- package/dist/security-log.d.ts.map +1 -0
- package/dist/security-log.js +52 -0
- package/dist/security-log.js.map +1 -0
- package/dist/tools/call.d.ts.map +1 -1
- package/dist/tools/call.js +59 -20
- package/dist/tools/call.js.map +1 -1
- package/dist/tools/update-avatar.d.ts.map +1 -1
- package/dist/tools/update-avatar.js +30 -4
- package/dist/tools/update-avatar.js.map +1 -1
- package/dist/wallet/agentic.d.ts +19 -0
- package/dist/wallet/agentic.d.ts.map +1 -0
- package/dist/wallet/agentic.js +77 -0
- package/dist/wallet/agentic.js.map +1 -0
- package/dist/wallet/evm.d.ts.map +1 -1
- package/dist/wallet/evm.js +46 -4
- package/dist/wallet/evm.js.map +1 -1
- package/dist/wallet/solana.d.ts.map +1 -1
- package/dist/wallet/solana.js +43 -5
- package/dist/wallet/solana.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Event Audit Logging
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging for security-relevant events to support:
|
|
5
|
+
* - Compliance auditing (SOC 2, ISO 27001)
|
|
6
|
+
* - Security monitoring and alerting
|
|
7
|
+
* - Incident response and forensics
|
|
8
|
+
* - Operational analytics
|
|
9
|
+
*
|
|
10
|
+
* Implementation Notes:
|
|
11
|
+
* - Logs to stderr (stdout reserved for MCP protocol communication)
|
|
12
|
+
* - JSON format for machine readability and SIEM integration
|
|
13
|
+
* - ISO 8601 timestamps for log aggregation
|
|
14
|
+
* - Non-blocking operation
|
|
15
|
+
*
|
|
16
|
+
* @module security-log
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Security event types categorized by domain
|
|
20
|
+
*/
|
|
21
|
+
export type SecurityEventType = "budget_exceeded" | "rate_limit_exceeded" | "wallet_path_violation" | "api_base_violation" | "invalid_budget_config" | "large_upload_blocked" | "api_call_paid" | "store_created" | "withdrawal_requested";
|
|
22
|
+
/**
|
|
23
|
+
* Structured security event log entry
|
|
24
|
+
*/
|
|
25
|
+
export interface SecurityEvent {
|
|
26
|
+
/** ISO 8601 timestamp */
|
|
27
|
+
timestamp: string;
|
|
28
|
+
/** Event type identifier */
|
|
29
|
+
event: SecurityEventType;
|
|
30
|
+
/** Event-specific contextual data */
|
|
31
|
+
details: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Log a security-relevant event for audit trail
|
|
35
|
+
*
|
|
36
|
+
* Events are written to stderr in JSON format for:
|
|
37
|
+
* - Log aggregation systems (Datadog, Splunk, ELK)
|
|
38
|
+
* - SIEM platforms
|
|
39
|
+
* - Compliance reporting
|
|
40
|
+
*
|
|
41
|
+
* @param event - Event type identifier
|
|
42
|
+
* @param details - Event-specific contextual information
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* logSecurityEvent("budget_exceeded", {
|
|
47
|
+
* type: "daily",
|
|
48
|
+
* currentSpent: 48.50,
|
|
49
|
+
* limit: 50.00,
|
|
50
|
+
* attemptedAmount: 2.00
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function logSecurityEvent(event: SecurityEventType, details?: Record<string, unknown>): void;
|
|
55
|
+
//# sourceMappingURL=security-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-log.d.ts","sourceRoot":"","sources":["../src/security-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAEzB,iBAAiB,GACjB,qBAAqB,GAErB,uBAAuB,GACvB,oBAAoB,GACpB,uBAAuB,GAEvB,sBAAsB,GAEtB,eAAe,GACf,eAAe,GACf,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,EAAE,iBAAiB,CAAC;IACzB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,IAAI,CAUN"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Security Event Audit Logging
|
|
4
|
+
*
|
|
5
|
+
* Provides structured logging for security-relevant events to support:
|
|
6
|
+
* - Compliance auditing (SOC 2, ISO 27001)
|
|
7
|
+
* - Security monitoring and alerting
|
|
8
|
+
* - Incident response and forensics
|
|
9
|
+
* - Operational analytics
|
|
10
|
+
*
|
|
11
|
+
* Implementation Notes:
|
|
12
|
+
* - Logs to stderr (stdout reserved for MCP protocol communication)
|
|
13
|
+
* - JSON format for machine readability and SIEM integration
|
|
14
|
+
* - ISO 8601 timestamps for log aggregation
|
|
15
|
+
* - Non-blocking operation
|
|
16
|
+
*
|
|
17
|
+
* @module security-log
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.logSecurityEvent = logSecurityEvent;
|
|
21
|
+
/**
|
|
22
|
+
* Log a security-relevant event for audit trail
|
|
23
|
+
*
|
|
24
|
+
* Events are written to stderr in JSON format for:
|
|
25
|
+
* - Log aggregation systems (Datadog, Splunk, ELK)
|
|
26
|
+
* - SIEM platforms
|
|
27
|
+
* - Compliance reporting
|
|
28
|
+
*
|
|
29
|
+
* @param event - Event type identifier
|
|
30
|
+
* @param details - Event-specific contextual information
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* logSecurityEvent("budget_exceeded", {
|
|
35
|
+
* type: "daily",
|
|
36
|
+
* currentSpent: 48.50,
|
|
37
|
+
* limit: 50.00,
|
|
38
|
+
* attemptedAmount: 2.00
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function logSecurityEvent(event, details = {}) {
|
|
43
|
+
const entry = {
|
|
44
|
+
timestamp: new Date().toISOString(),
|
|
45
|
+
event,
|
|
46
|
+
details,
|
|
47
|
+
};
|
|
48
|
+
// Write to stderr (stdout is MCP protocol channel)
|
|
49
|
+
// Using console.error for non-blocking write
|
|
50
|
+
console.error(JSON.stringify(entry));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=security-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-log.js","sourceRoot":"","sources":["../src/security-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAqDH,4CAaC;AAlCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,gBAAgB,CAC9B,KAAwB,EACxB,UAAmC,EAAE;IAErC,MAAM,KAAK,GAAkB;QAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,OAAO;KACR,CAAC;IAEF,mDAAmD;IACnD,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/tools/call.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/tools/call.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/tools/call.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;AAiBF,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;;;;;;GAuM7D"}
|
package/dist/tools/call.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.handleCall = handleCall;
|
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const solana_js_1 = require("../wallet/solana.js");
|
|
7
7
|
const evm_js_1 = require("../wallet/evm.js");
|
|
8
|
+
const agentic_js_1 = require("../wallet/agentic.js");
|
|
8
9
|
const http_js_1 = require("../http.js");
|
|
9
10
|
const budget_js_1 = require("../budget.js");
|
|
10
11
|
const mcp_js_1 = require("../mcp.js");
|
|
@@ -54,17 +55,15 @@ async function handleCall(args, config) {
|
|
|
54
55
|
const input = InputSchema.parse(args);
|
|
55
56
|
const solanaKey = config.walletSolana || (config.wallet?.type === "solana" ? config.wallet.key : null);
|
|
56
57
|
const evmKey = config.walletEvm || (config.wallet?.type === "evm" ? config.wallet.key : null);
|
|
57
|
-
if (!solanaKey && !evmKey) {
|
|
58
|
-
throw new Error("Missing wallet config: set ONELY_WALLET_SOLANA_KEY or ONELY_WALLET_EVM_KEY (or legacy ONELY_WALLET_TYPE/KEY)");
|
|
59
|
-
}
|
|
60
58
|
const endpointPath = parseEndpoint(input.endpoint);
|
|
61
59
|
const fullUrl = `${config.apiBase}${endpointPath}`;
|
|
60
|
+
const requestHeaders = {
|
|
61
|
+
"Content-Type": "application/json",
|
|
62
|
+
...input.headers,
|
|
63
|
+
};
|
|
62
64
|
const initialResponse = await (0, http_js_1.fetchWithTimeout)(fullUrl, {
|
|
63
65
|
method: input.method,
|
|
64
|
-
headers:
|
|
65
|
-
"Content-Type": "application/json",
|
|
66
|
-
...input.headers,
|
|
67
|
-
},
|
|
66
|
+
headers: requestHeaders,
|
|
68
67
|
body: input.body ? JSON.stringify(input.body) : undefined,
|
|
69
68
|
});
|
|
70
69
|
if (initialResponse.status !== 402) {
|
|
@@ -83,13 +82,15 @@ async function handleCall(args, config) {
|
|
|
83
82
|
catch {
|
|
84
83
|
// Some 402 responses only include headers
|
|
85
84
|
}
|
|
86
|
-
const preferredNetwork =
|
|
87
|
-
? "
|
|
88
|
-
:
|
|
89
|
-
? "
|
|
90
|
-
:
|
|
91
|
-
? "
|
|
92
|
-
: "
|
|
85
|
+
const preferredNetwork = config.walletProvider === "coinbase"
|
|
86
|
+
? "eip155"
|
|
87
|
+
: solanaKey && !evmKey
|
|
88
|
+
? "solana"
|
|
89
|
+
: evmKey && !solanaKey
|
|
90
|
+
? "eip155"
|
|
91
|
+
: config.network === "solana"
|
|
92
|
+
? "solana"
|
|
93
|
+
: "eip155";
|
|
93
94
|
const accepts = body402.accepts?.find((entry) => {
|
|
94
95
|
const network = String(entry.network);
|
|
95
96
|
if (preferredNetwork === "solana")
|
|
@@ -109,16 +110,55 @@ async function handleCall(args, config) {
|
|
|
109
110
|
if (priceUsd > config.budgets.perCall) {
|
|
110
111
|
throw new Error(`Price $${priceUsd} exceeds per-call budget limit of $${config.budgets.perCall}`);
|
|
111
112
|
}
|
|
112
|
-
// Enforce and record daily spending
|
|
113
|
-
(0, budget_js_1.checkAndRecordDailySpend)(config, priceUsd);
|
|
114
|
-
// Build x402 payment signature header (v2)
|
|
115
|
-
let paymentSignature;
|
|
116
113
|
const network = String(accepts.network || "");
|
|
117
114
|
const shouldUseSolana = network.startsWith("solana:")
|
|
118
115
|
? true
|
|
119
116
|
: network.startsWith("eip155:")
|
|
120
117
|
? false
|
|
121
118
|
: preferredNetwork === "solana";
|
|
119
|
+
if (config.walletProvider === "coinbase") {
|
|
120
|
+
if (shouldUseSolana) {
|
|
121
|
+
throw new Error("Agentic Wallet only supports Base (EVM). Solana payments are not supported.");
|
|
122
|
+
}
|
|
123
|
+
// Enforce and record daily spending
|
|
124
|
+
(0, budget_js_1.checkAndRecordDailySpend)(config, priceUsd);
|
|
125
|
+
const baseAccept = {
|
|
126
|
+
scheme: accepts.scheme,
|
|
127
|
+
network: accepts.network,
|
|
128
|
+
amount: accepts.amount,
|
|
129
|
+
maxAmountRequired: accepts.maxAmountRequired,
|
|
130
|
+
payTo: accepts.payTo,
|
|
131
|
+
asset: accepts.asset,
|
|
132
|
+
maxTimeoutSeconds: accepts.maxTimeoutSeconds,
|
|
133
|
+
extra: accepts.extra,
|
|
134
|
+
};
|
|
135
|
+
const result = await (0, agentic_js_1.makeX402RequestViaAgenticWallet)({
|
|
136
|
+
baseURL: config.apiBase,
|
|
137
|
+
path: endpointPath,
|
|
138
|
+
method: input.method,
|
|
139
|
+
body: input.body,
|
|
140
|
+
headers: requestHeaders,
|
|
141
|
+
maxAmountPerRequest: priceInSmallestUnit,
|
|
142
|
+
paymentRequirements: [baseAccept],
|
|
143
|
+
}, 30_000);
|
|
144
|
+
if (result.status < 200 || result.status >= 300) {
|
|
145
|
+
throw new Error(`Payment failed: ${result.status} - ${result.statusText || "Agentic Wallet error"}`);
|
|
146
|
+
}
|
|
147
|
+
return (0, mcp_js_1.mcpOk)(result.data ?? {});
|
|
148
|
+
}
|
|
149
|
+
if (shouldUseSolana && !solanaKey) {
|
|
150
|
+
throw new Error("Solana wallet not configured for this payment");
|
|
151
|
+
}
|
|
152
|
+
if (!shouldUseSolana && !evmKey) {
|
|
153
|
+
throw new Error("EVM wallet not configured for this payment");
|
|
154
|
+
}
|
|
155
|
+
if (!solanaKey && !evmKey) {
|
|
156
|
+
throw new Error("Missing wallet config: set ONELY_WALLET_SOLANA_KEY or ONELY_WALLET_EVM_KEY (or legacy ONELY_WALLET_TYPE/KEY)");
|
|
157
|
+
}
|
|
158
|
+
// Enforce and record daily spending
|
|
159
|
+
(0, budget_js_1.checkAndRecordDailySpend)(config, priceUsd);
|
|
160
|
+
// Build x402 payment signature header (v2)
|
|
161
|
+
let paymentSignature;
|
|
122
162
|
if (shouldUseSolana) {
|
|
123
163
|
if (!solanaKey) {
|
|
124
164
|
throw new Error("Solana wallet not configured for this payment");
|
|
@@ -147,8 +187,7 @@ async function handleCall(args, config) {
|
|
|
147
187
|
const paidResponse = await (0, http_js_1.fetchWithTimeout)(fullUrl, {
|
|
148
188
|
method: input.method,
|
|
149
189
|
headers: {
|
|
150
|
-
|
|
151
|
-
...input.headers,
|
|
190
|
+
...requestHeaders,
|
|
152
191
|
"payment-signature": paymentSignature,
|
|
153
192
|
},
|
|
154
193
|
body: input.body ? JSON.stringify(input.body) : undefined,
|
package/dist/tools/call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/tools/call.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/tools/call.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-avatar.d.ts","sourceRoot":"","sources":["../../src/tools/update-avatar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;CAY5B,CAAC;
|
|
1
|
+
{"version":3,"file":"update-avatar.d.ts","sourceRoot":"","sources":["../../src/tools/update-avatar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;CAY5B,CAAC;AAmBF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;;;;;;GA6DrE"}
|
|
@@ -20,9 +20,19 @@ exports.updateAvatarTool = {
|
|
|
20
20
|
};
|
|
21
21
|
const InputSchema = zod_1.z.object({
|
|
22
22
|
avatarUrl: zod_1.z.string().url().optional(),
|
|
23
|
-
imageBase64: zod_1.z
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
imageBase64: zod_1.z
|
|
24
|
+
.string()
|
|
25
|
+
.min(1)
|
|
26
|
+
.max(10_485_760) // 10MB max (base64 encoded ~= 1.37x original size)
|
|
27
|
+
.optional(),
|
|
28
|
+
mimeType: zod_1.z
|
|
29
|
+
.enum(["image/png", "image/jpeg", "image/jpg", "image/webp", "image/gif"]) // Strict MIME type validation
|
|
30
|
+
.optional(),
|
|
31
|
+
filename: zod_1.z
|
|
32
|
+
.string()
|
|
33
|
+
.regex(/^[a-zA-Z0-9_.-]+$/) // Prevent path traversal in filename
|
|
34
|
+
.max(255)
|
|
35
|
+
.optional(),
|
|
26
36
|
});
|
|
27
37
|
async function handleUpdateAvatar(args, config) {
|
|
28
38
|
const input = InputSchema.parse(args);
|
|
@@ -45,7 +55,23 @@ async function handleUpdateAvatar(args, config) {
|
|
|
45
55
|
if (!input.imageBase64 || !input.mimeType) {
|
|
46
56
|
throw new Error("Provide either avatarUrl or imageBase64 + mimeType");
|
|
47
57
|
}
|
|
48
|
-
|
|
58
|
+
// Decode and validate base64
|
|
59
|
+
let buffer;
|
|
60
|
+
try {
|
|
61
|
+
buffer = Buffer.from(input.imageBase64, "base64");
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
throw new Error("Invalid base64 encoding");
|
|
65
|
+
}
|
|
66
|
+
// Validate decoded size (5MB max for actual image data)
|
|
67
|
+
const maxSize = 5 * 1024 * 1024; // 5MB
|
|
68
|
+
if (buffer.length > maxSize) {
|
|
69
|
+
throw new Error(`Image size ${(buffer.length / 1024 / 1024).toFixed(2)}MB exceeds 5MB limit`);
|
|
70
|
+
}
|
|
71
|
+
// Minimum size check (prevent empty uploads)
|
|
72
|
+
if (buffer.length < 100) {
|
|
73
|
+
throw new Error("Image too small - minimum 100 bytes");
|
|
74
|
+
}
|
|
49
75
|
const blob = new Blob([buffer], { type: input.mimeType });
|
|
50
76
|
const formData = new FormData();
|
|
51
77
|
formData.append("file", blob, input.filename || "avatar.png");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-avatar.js","sourceRoot":"","sources":["../../src/tools/update-avatar.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update-avatar.js","sourceRoot":"","sources":["../../src/tools/update-avatar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface AgenticWalletRequest {
|
|
2
|
+
baseURL: string;
|
|
3
|
+
path: string;
|
|
4
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
|
|
5
|
+
queryParams?: Record<string, string>;
|
|
6
|
+
body?: unknown;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
maxAmountPerRequest?: number;
|
|
9
|
+
paymentRequirements?: Array<Record<string, unknown>>;
|
|
10
|
+
}
|
|
11
|
+
type AgenticWalletResponse = {
|
|
12
|
+
status: number;
|
|
13
|
+
statusText?: string;
|
|
14
|
+
data?: unknown;
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
export declare function makeX402RequestViaAgenticWallet(request: AgenticWalletRequest, timeoutMs?: number): Promise<AgenticWalletResponse>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=agentic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic.d.ts","sourceRoot":"","sources":["../../src/wallet/agentic.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AA0BF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,oBAAoB,EAC7B,SAAS,SAAS,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAkDhC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeX402RequestViaAgenticWallet = makeX402RequestViaAgenticWallet;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_crypto_1 = require("node:crypto");
|
|
10
|
+
const IPC_DIR = "/tmp/payments-mcp-ui-bridge";
|
|
11
|
+
const REQUESTS_DIR = node_path_1.default.join(IPC_DIR, "requests");
|
|
12
|
+
const RESPONSES_DIR = node_path_1.default.join(IPC_DIR, "responses");
|
|
13
|
+
function ensureIpcDirs() {
|
|
14
|
+
if (!node_fs_1.default.existsSync(IPC_DIR))
|
|
15
|
+
node_fs_1.default.mkdirSync(IPC_DIR, { mode: 0o700 });
|
|
16
|
+
if (!node_fs_1.default.existsSync(REQUESTS_DIR))
|
|
17
|
+
node_fs_1.default.mkdirSync(REQUESTS_DIR, { mode: 0o700 });
|
|
18
|
+
if (!node_fs_1.default.existsSync(RESPONSES_DIR))
|
|
19
|
+
node_fs_1.default.mkdirSync(RESPONSES_DIR, { mode: 0o700 });
|
|
20
|
+
}
|
|
21
|
+
async function waitForResponseFile(filePath, timeoutMs) {
|
|
22
|
+
if (node_fs_1.default.existsSync(filePath))
|
|
23
|
+
return;
|
|
24
|
+
await new Promise((resolve, reject) => {
|
|
25
|
+
const timeout = setTimeout(() => {
|
|
26
|
+
watcher.close();
|
|
27
|
+
reject(new Error("Agentic Wallet IPC timeout"));
|
|
28
|
+
}, timeoutMs);
|
|
29
|
+
const watcher = node_fs_1.default.watch(RESPONSES_DIR, (eventType, filename) => {
|
|
30
|
+
if (filename === node_path_1.default.basename(filePath)) {
|
|
31
|
+
clearTimeout(timeout);
|
|
32
|
+
watcher.close();
|
|
33
|
+
resolve();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async function makeX402RequestViaAgenticWallet(request, timeoutMs = 30_000) {
|
|
39
|
+
ensureIpcDirs();
|
|
40
|
+
const originalTitle = process.title;
|
|
41
|
+
process.title = "awal-cli";
|
|
42
|
+
const requestId = (0, node_crypto_1.randomUUID)();
|
|
43
|
+
const requestFile = node_path_1.default.join(REQUESTS_DIR, `${requestId}.json`);
|
|
44
|
+
const responseFile = node_path_1.default.join(RESPONSES_DIR, `${requestId}.json`);
|
|
45
|
+
try {
|
|
46
|
+
const payload = {
|
|
47
|
+
id: requestId,
|
|
48
|
+
channel: "make-x402-request",
|
|
49
|
+
data: request,
|
|
50
|
+
timestamp: Date.now(),
|
|
51
|
+
pid: process.pid,
|
|
52
|
+
processTitle: process.title,
|
|
53
|
+
};
|
|
54
|
+
node_fs_1.default.writeFileSync(requestFile, JSON.stringify(payload, null, 2), { mode: 0o600 });
|
|
55
|
+
await waitForResponseFile(responseFile, timeoutMs);
|
|
56
|
+
const responseData = node_fs_1.default.readFileSync(responseFile, "utf-8");
|
|
57
|
+
const response = JSON.parse(responseData);
|
|
58
|
+
try {
|
|
59
|
+
node_fs_1.default.unlinkSync(responseFile);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// ignore cleanup errors
|
|
63
|
+
}
|
|
64
|
+
if (response.error) {
|
|
65
|
+
const message = typeof response.error === "string" ? response.error : JSON.stringify(response.error);
|
|
66
|
+
throw new Error(message);
|
|
67
|
+
}
|
|
68
|
+
if (!response.result) {
|
|
69
|
+
throw new Error("Agentic Wallet IPC returned empty result");
|
|
70
|
+
}
|
|
71
|
+
return response.result;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
process.title = originalTitle;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=agentic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic.js","sourceRoot":"","sources":["../../src/wallet/agentic.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet/evm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/wallet/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/wallet/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQ5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA0CxD,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiBhF;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3E;AAED,UAAU,mBAAmB;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAaD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,CAAC,CAmEjB;AAYD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,CAAC,CAkB/H;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,CAAC,CAmDjB;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAqCjB"}
|
package/dist/wallet/evm.js
CHANGED
|
@@ -41,19 +41,57 @@ exports.buildEvmPaymentSimple = buildEvmPaymentSimple;
|
|
|
41
41
|
exports.buildEvmPaymentSignature = buildEvmPaymentSignature;
|
|
42
42
|
const accounts_1 = require("viem/accounts");
|
|
43
43
|
const chains_1 = require("viem/chains");
|
|
44
|
+
const path_1 = require("path");
|
|
45
|
+
const os = __importStar(require("os"));
|
|
44
46
|
const client_1 = require("@x402/core/client");
|
|
45
47
|
const http_1 = require("@x402/core/http");
|
|
46
48
|
const evm_1 = require("@x402/evm");
|
|
47
49
|
const fs = __importStar(require("fs"));
|
|
48
50
|
// Mainnet only
|
|
49
51
|
const CHAIN = chains_1.base;
|
|
52
|
+
function expandTilde(inputPath) {
|
|
53
|
+
if (!inputPath.startsWith("~/"))
|
|
54
|
+
return inputPath;
|
|
55
|
+
return (0, path_1.resolve)(os.homedir(), inputPath.slice(2));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validates wallet file path to prevent directory traversal attacks.
|
|
59
|
+
* Only allows files in home directory or /tmp (for testing).
|
|
60
|
+
*/
|
|
61
|
+
function validateWalletPath(keyPath) {
|
|
62
|
+
try {
|
|
63
|
+
const normalizedPath = (0, path_1.normalize)((0, path_1.resolve)(keyPath));
|
|
64
|
+
const homeDir = os.homedir();
|
|
65
|
+
// Allow files in home directory or /tmp
|
|
66
|
+
const isInHome = normalizedPath.startsWith(homeDir);
|
|
67
|
+
const isInTmp = normalizedPath.startsWith("/tmp") || normalizedPath.startsWith(os.tmpdir());
|
|
68
|
+
if (!isInHome && !isInTmp) {
|
|
69
|
+
throw new Error("Wallet file must be in home directory or /tmp for security. Path: " + normalizedPath);
|
|
70
|
+
}
|
|
71
|
+
// Block sensitive directories
|
|
72
|
+
const blockedPaths = [".ssh", ".gnupg", ".aws", ".kube"];
|
|
73
|
+
if (blockedPaths.some((p) => normalizedPath.includes(`/${p}/`))) {
|
|
74
|
+
throw new Error("Cannot load wallet from sensitive directory");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
if (err instanceof Error && err.message.includes("Wallet file must be")) {
|
|
79
|
+
throw err;
|
|
80
|
+
}
|
|
81
|
+
throw new Error("Invalid wallet file path");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
50
84
|
async function loadEvmWallet(keyInput) {
|
|
51
85
|
let privateKey;
|
|
52
86
|
if (keyInput.startsWith("0x")) {
|
|
87
|
+
// Inline hex key - no path validation needed
|
|
53
88
|
privateKey = keyInput;
|
|
54
89
|
}
|
|
55
|
-
else if (fs.existsSync(keyInput)) {
|
|
56
|
-
const
|
|
90
|
+
else if (fs.existsSync(expandTilde(keyInput))) {
|
|
91
|
+
const expandedPath = expandTilde(keyInput);
|
|
92
|
+
// File path - validate before reading
|
|
93
|
+
validateWalletPath(expandedPath);
|
|
94
|
+
const content = fs.readFileSync(expandedPath, "utf-8").trim();
|
|
57
95
|
privateKey = (content.startsWith("0x") ? content : `0x${content}`);
|
|
58
96
|
}
|
|
59
97
|
else {
|
|
@@ -141,10 +179,14 @@ let storedPrivateKey = null;
|
|
|
141
179
|
async function loadEvmWalletWithKey(keyInput) {
|
|
142
180
|
let privateKey;
|
|
143
181
|
if (keyInput.startsWith("0x")) {
|
|
182
|
+
// Inline hex key - no path validation needed
|
|
144
183
|
privateKey = keyInput;
|
|
145
184
|
}
|
|
146
|
-
else if (fs.existsSync(keyInput)) {
|
|
147
|
-
const
|
|
185
|
+
else if (fs.existsSync(expandTilde(keyInput))) {
|
|
186
|
+
const expandedPath = expandTilde(keyInput);
|
|
187
|
+
// File path - validate before reading
|
|
188
|
+
validateWalletPath(expandedPath);
|
|
189
|
+
const content = fs.readFileSync(expandedPath, "utf-8").trim();
|
|
148
190
|
privateKey = (content.startsWith("0x") ? content : `0x${content}`);
|
|
149
191
|
}
|
|
150
192
|
else {
|
package/dist/wallet/evm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/wallet/evm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/wallet/evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/wallet/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/wallet/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAS1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAuCxD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BxE;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,QAAQ,GAAG,KAAK,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED,wBAAsB,2BAA2B,CAC/C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|