@elizaos/plugin-x402 2.0.0-alpha.5 → 2.0.0-alpha.6
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 +74 -10
- package/dist/index.js.map +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36,9 +36,30 @@ var checkPaymentHistoryAction = {
|
|
|
36
36
|
schema: { type: "number" }
|
|
37
37
|
}
|
|
38
38
|
],
|
|
39
|
-
validate: async (runtime) => {
|
|
40
|
-
const
|
|
41
|
-
|
|
39
|
+
validate: async (runtime, message, state, options) => {
|
|
40
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
41
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
42
|
+
const __avKeywords = ["check", "payment", "history"];
|
|
43
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
44
|
+
const __avRegex = new RegExp("\\b(?:check|payment|history)\\b", "i");
|
|
45
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
46
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
47
|
+
const __avExpectedSource = "";
|
|
48
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
49
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
50
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
51
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const __avLegacyValidate = async (runtime2) => {
|
|
55
|
+
const service = runtime2.getService("x402_payment");
|
|
56
|
+
return !!service && service.isActive();
|
|
57
|
+
};
|
|
58
|
+
try {
|
|
59
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
60
|
+
} catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
42
63
|
},
|
|
43
64
|
handler: async (runtime, _message, _state, options, callback) => {
|
|
44
65
|
const service = runtime.getService("x402_payment");
|
|
@@ -189,9 +210,30 @@ var setPaymentPolicyAction = {
|
|
|
189
210
|
schema: { type: "string" }
|
|
190
211
|
}
|
|
191
212
|
],
|
|
192
|
-
validate: async (runtime) => {
|
|
193
|
-
const
|
|
194
|
-
|
|
213
|
+
validate: async (runtime, message, state, options) => {
|
|
214
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
215
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
216
|
+
const __avKeywords = ["set", "payment", "policy"];
|
|
217
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
218
|
+
const __avRegex = new RegExp("\\b(?:set|payment|policy)\\b", "i");
|
|
219
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
220
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
221
|
+
const __avExpectedSource = "";
|
|
222
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
223
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
224
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
225
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
const __avLegacyValidate = async (runtime2) => {
|
|
229
|
+
const service = runtime2.getService("x402_payment");
|
|
230
|
+
return !!service && service.isActive();
|
|
231
|
+
};
|
|
232
|
+
try {
|
|
233
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
234
|
+
} catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
195
237
|
},
|
|
196
238
|
handler: async (runtime, _message, _state, options, callback) => {
|
|
197
239
|
const service = runtime.getService("x402_payment");
|
|
@@ -390,9 +432,30 @@ var payForServiceAction = {
|
|
|
390
432
|
schema: { type: "string" }
|
|
391
433
|
}
|
|
392
434
|
],
|
|
393
|
-
validate: async (runtime) => {
|
|
394
|
-
const
|
|
395
|
-
|
|
435
|
+
validate: async (runtime, message, state, options) => {
|
|
436
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
437
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
438
|
+
const __avKeywords = ["pay", "for", "service"];
|
|
439
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
440
|
+
const __avRegex = new RegExp("\\b(?:pay|for|service)\\b", "i");
|
|
441
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
442
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
443
|
+
const __avExpectedSource = "";
|
|
444
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
445
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
446
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
447
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
448
|
+
return false;
|
|
449
|
+
}
|
|
450
|
+
const __avLegacyValidate = async (runtime2) => {
|
|
451
|
+
const service = runtime2.getService("x402_payment");
|
|
452
|
+
return !!service && service.canMakePayments();
|
|
453
|
+
};
|
|
454
|
+
try {
|
|
455
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
456
|
+
} catch {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
396
459
|
},
|
|
397
460
|
handler: async (runtime, message, _state, options, callback) => {
|
|
398
461
|
const service = runtime.getService("x402_payment");
|
|
@@ -537,6 +600,7 @@ function extractUrlFromMessage(message) {
|
|
|
537
600
|
var paymentBalanceProvider = {
|
|
538
601
|
name: "x402_payment_status",
|
|
539
602
|
description: "Current x402 payment status including wallet, spending, and earning summary",
|
|
603
|
+
dynamic: true,
|
|
540
604
|
get: async (runtime, _message, _state) => {
|
|
541
605
|
const service = runtime.getService("x402_payment");
|
|
542
606
|
if (!service || !service.isActive()) {
|
|
@@ -2003,4 +2067,4 @@ export {
|
|
|
2003
2067
|
CircuitBreaker
|
|
2004
2068
|
};
|
|
2005
2069
|
|
|
2006
|
-
//# debugId=
|
|
2070
|
+
//# debugId=2EC8B924AB46A7D764756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../actions/check-payment-history.ts", "../utils.ts", "../actions/set-payment-policy.ts", "../actions/pay-for-service.ts", "../providers/payment-balance.ts", "../routes/agent-card.ts", "../networks.ts", "../services/x402-service.ts", "../client/signer.ts", "../client/fetch-with-payment.ts", "../policy/circuit-breaker.ts", "../policy/engine.ts", "../storage/memory.ts", "../storage/sqlite.ts", "../middleware/facilitator-client.ts", "../middleware/paywall.ts", "../storage/postgres.ts", "../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * Action: Check payment history.\n *\n * Allows the agent to review its x402 payment history,\n * including spending summaries and recent transactions.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nimport { ONE_DAY_MS, formatUsd, truncateAddress } from \"../utils\";\n\nexport const checkPaymentHistoryAction: Action = {\n name: \"CHECK_PAYMENT_HISTORY\",\n description:\n \"Check x402 payment history including spending summary and recent transactions. Use when asked about payment activity, spending, or earnings.\",\n\n similes: [\n \"check payments\",\n \"payment history\",\n \"spending summary\",\n \"how much have I spent\",\n \"payment transactions\",\n \"show payments\",\n ],\n\n parameters: [\n {\n name: \"limit\",\n description: \"Maximum number of recent transactions to show (default: 10)\",\n required: false,\n schema: { type: \"number\" },\n },\n ],\n\n
|
|
5
|
+
"/**\n * Action: Check payment history.\n *\n * Allows the agent to review its x402 payment history,\n * including spending summaries and recent transactions.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nimport { ONE_DAY_MS, formatUsd, truncateAddress } from \"../utils\";\n\nexport const checkPaymentHistoryAction: Action = {\n name: \"CHECK_PAYMENT_HISTORY\",\n description:\n \"Check x402 payment history including spending summary and recent transactions. Use when asked about payment activity, spending, or earnings.\",\n\n similes: [\n \"check payments\",\n \"payment history\",\n \"spending summary\",\n \"how much have I spent\",\n \"payment transactions\",\n \"show payments\",\n ],\n\n parameters: [\n {\n name: \"limit\",\n description: \"Maximum number of recent transactions to show (default: 10)\",\n required: false,\n schema: { type: \"number\" },\n },\n ],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n \tconst __avTextRaw = typeof message?.content?.text === 'string' ? message.content.text : '';\n \tconst __avText = __avTextRaw.toLowerCase();\n \tconst __avKeywords = ['check', 'payment', 'history'];\n \tconst __avKeywordOk =\n \t\t__avKeywords.length > 0 &&\n \t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n \tconst __avRegex = new RegExp('\\\\b(?:check|payment|history)\\\\b', 'i');\n \tconst __avRegexOk = __avRegex.test(__avText);\n \tconst __avSource = String(message?.content?.source ?? message?.source ?? '');\n \tconst __avExpectedSource = '';\n \tconst __avSourceOk = __avExpectedSource\n \t\t? __avSource === __avExpectedSource\n \t\t: Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n \tconst __avOptions = options && typeof options === 'object' ? options : {};\n \tconst __avInputOk =\n \t\t__avText.trim().length > 0 ||\n \t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n \t\tBoolean(message?.content && typeof message.content === 'object');\n\n \tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n \t\treturn false;\n \t}\n\n \tconst __avLegacyValidate = async (runtime: IAgentRuntime): Promise<boolean> => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n return !!service && service.isActive();\n };\n \ttry {\n \t\treturn Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n \t} catch {\n \t\treturn false;\n \t}\n },\n\n handler: async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State,\n options?: HandlerOptions | Record<string, JsonValue | undefined>,\n callback?: HandlerCallback,\n ) => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n\n if (!service || !service.isActive()) {\n logger.warn(\n \"[x402] CHECK_PAYMENT_HISTORY: Service not available or inactive\",\n );\n if (callback) {\n await callback({\n text: \"Payment tracking is not active. The x402 payment service is not configured.\",\n actions: [],\n });\n }\n return { success: false, error: \"x402 service not available\" };\n }\n\n const params = (options as Record<string, Record<string, string | number> | undefined> | undefined)?.parameters;\n const limit = typeof params?.limit === \"number\" ? params.limit : 10;\n\n try {\n // Get 24h summary\n const summary = await service.getSummary(ONE_DAY_MS);\n const recentTxns = await service.getRecentTransactions(limit);\n\n const lines: string[] = [];\n\n // Header\n const walletAddress = service.getWalletAddress();\n const network = service.getNetwork();\n lines.push(`**Payment Summary** (${network})`);\n lines.push(\n `Wallet: ${walletAddress ? truncateAddress(walletAddress) : \"N/A\"}`,\n );\n lines.push(\"\");\n\n // 24h summary\n lines.push(\"**Last 24 Hours:**\");\n lines.push(\n `- Spent: ${formatUsd(summary.totalSpent)} (${summary.outgoingCount} transactions)`,\n );\n lines.push(\n `- Earned: ${formatUsd(summary.totalEarned)} (${summary.incomingCount} transactions)`,\n );\n\n const net = summary.totalEarned - summary.totalSpent;\n const netDisplay =\n net < 0n ? `-${formatUsd(-net)}` : `+${formatUsd(net)}`;\n lines.push(`- Net: ${netDisplay}`);\n lines.push(\"\");\n\n // Circuit breaker status\n lines.push(\n `Circuit Breaker: ${service.getCircuitBreakerState()}`,\n );\n lines.push(\"\");\n\n // Recent transactions\n if (recentTxns.length > 0) {\n lines.push(`**Recent Transactions** (last ${recentTxns.length}):`);\n for (const txn of recentTxns) {\n const direction = txn.direction === \"outgoing\" ? \"SENT\" : \"RECV\";\n const counterpartyDisplay = truncateAddress(txn.counterparty);\n const time = new Date(txn.createdAt).toLocaleString();\n lines.push(\n `- [${direction}] ${formatUsd(txn.amount)} ${txn.direction === \"outgoing\" ? \"to\" : \"from\"} ${counterpartyDisplay} — ${txn.resource || \"N/A\"} (${time}) [${txn.status}]`,\n );\n }\n } else {\n lines.push(\"No recent transactions.\");\n }\n\n const responseText = lines.join(\"\\n\");\n\n if (callback) {\n await callback({\n text: responseText,\n actions: [],\n });\n }\n\n return {\n success: true,\n text: responseText,\n data: {\n totalSpent: formatUsd(summary.totalSpent),\n totalEarned: formatUsd(summary.totalEarned),\n outgoingCount: summary.outgoingCount,\n incomingCount: summary.incomingCount,\n recentTransactionCount: recentTxns.length,\n },\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(\n `[x402] CHECK_PAYMENT_HISTORY: Failed: ${errorMessage}`,\n );\n if (callback) {\n await callback({\n text: `Failed to retrieve payment history: ${errorMessage}`,\n actions: [],\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"How much have you spent today?\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"Let me check my payment history for today.\",\n actions: [\"CHECK_PAYMENT_HISTORY\"],\n },\n } as ActionExample,\n ],\n [\n {\n name: \"user\",\n content: {\n text: \"Show me your recent payment transactions\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"Here are my recent x402 payment transactions.\",\n actions: [\"CHECK_PAYMENT_HISTORY\"],\n },\n } as ActionExample,\n ],\n ],\n};\n",
|
|
6
6
|
"/**\n * Shared utility functions for the x402 plugin.\n */\n\n/** 24 hours in milliseconds */\nexport const ONE_DAY_MS = 24 * 60 * 60 * 1000;\n\n/** Format USDC base units (6 decimals) as human-readable USD string */\nexport function formatUsd(baseUnits: bigint): string {\n const dollars = Number(baseUnits) / 1_000_000;\n return `$${dollars.toFixed(2)}`;\n}\n\n/** Truncate an Ethereum address for display (e.g. \"0x1234...5678\") */\nexport function truncateAddress(address: string): string {\n if (address.length <= 10) return address;\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n}\n\n/** Convert whole USD dollars to USDC base units (6 decimals) */\nexport function usdToBaseUnits(usd: number): bigint {\n return BigInt(Math.round(usd * 1_000_000));\n}\n",
|
|
7
|
-
"/**\n * Action: SET_PAYMENT_POLICY\n *\n * Allows the agent to manage its payment policies via natural language.\n * Supports setting per-transaction and daily limits, as well as\n * blocking/allowing specific recipient addresses.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\nimport { usdToBaseUnits } from \"../utils\";\n\ninterface PolicyParams {\n maxPerPaymentUsd?: number;\n maxDailyUsd?: number;\n blockRecipient?: string;\n allowRecipient?: string;\n}\n\nexport const setPaymentPolicyAction: Action = {\n name: \"SET_PAYMENT_POLICY\",\n description:\n \"Manage payment policies for the x402 payment service. Set per-transaction limits, daily spending limits, or block/allow specific recipient addresses.\",\n\n similes: [\n \"set payment policy\",\n \"update payment limits\",\n \"change spending limit\",\n \"block recipient\",\n \"allow recipient\",\n \"set max payment\",\n \"set daily limit\",\n \"payment policy\",\n ],\n\n parameters: [\n {\n name: \"maxPerPaymentUsd\",\n description:\n \"Maximum amount in USD for a single outgoing payment (e.g. 5.0 for $5.00)\",\n required: false,\n schema: { type: \"number\" },\n },\n {\n name: \"maxDailyUsd\",\n description:\n \"Maximum total USD spend per day (e.g. 50.0 for $50.00)\",\n required: false,\n schema: { type: \"number\" },\n },\n {\n name: \"blockRecipient\",\n description:\n \"Ethereum address to add to the blocklist (payments to this address will be rejected)\",\n required: false,\n schema: { type: \"string\" },\n },\n {\n name: \"allowRecipient\",\n description:\n \"Ethereum address to add to the allowlist (when allowlist is non-empty, only listed addresses can receive payments)\",\n required: false,\n schema: { type: \"string\" },\n },\n ],\n\n
|
|
8
|
-
"/**\n * Action: Pay for an x402-protected service.\n *\n * Allows the agent to make a request to an x402-protected URL,\n * automatically handling payment if a 402 response is received.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nexport const payForServiceAction: Action = {\n name: \"PAY_FOR_SERVICE\",\n description:\n \"Make a request to an x402-protected URL, automatically paying if required. Use when you need to access a paid API or service that uses the x402 payment protocol.\",\n\n similes: [\n \"pay for service\",\n \"x402 payment\",\n \"make a paid request\",\n \"access paid endpoint\",\n \"pay and fetch\",\n ],\n\n parameters: [\n {\n name: \"url\",\n description: \"The URL of the x402-protected service to access\",\n required: true,\n schema: { type: \"string\" },\n },\n {\n name: \"method\",\n description: \"HTTP method (GET, POST, etc.). Defaults to GET.\",\n required: false,\n schema: {\n type: \"string\",\n enumValues: [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n },\n },\n {\n name: \"body\",\n description: \"Optional request body as a JSON string (for POST/PUT)\",\n required: false,\n schema: { type: \"string\" },\n },\n ],\n\n
|
|
9
|
-
"/**\n * Payment balance provider.\n *\n * Injects current payment state into the agent's context so that the LLM\n * is aware of the agent's spending and earning activity.\n */\n\nimport type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nimport { ONE_DAY_MS, formatUsd, truncateAddress } from \"../utils\";\
|
|
7
|
+
"/**\n * Action: SET_PAYMENT_POLICY\n *\n * Allows the agent to manage its payment policies via natural language.\n * Supports setting per-transaction and daily limits, as well as\n * blocking/allowing specific recipient addresses.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\nimport { usdToBaseUnits } from \"../utils\";\n\ninterface PolicyParams {\n maxPerPaymentUsd?: number;\n maxDailyUsd?: number;\n blockRecipient?: string;\n allowRecipient?: string;\n}\n\nexport const setPaymentPolicyAction: Action = {\n name: \"SET_PAYMENT_POLICY\",\n description:\n \"Manage payment policies for the x402 payment service. Set per-transaction limits, daily spending limits, or block/allow specific recipient addresses.\",\n\n similes: [\n \"set payment policy\",\n \"update payment limits\",\n \"change spending limit\",\n \"block recipient\",\n \"allow recipient\",\n \"set max payment\",\n \"set daily limit\",\n \"payment policy\",\n ],\n\n parameters: [\n {\n name: \"maxPerPaymentUsd\",\n description:\n \"Maximum amount in USD for a single outgoing payment (e.g. 5.0 for $5.00)\",\n required: false,\n schema: { type: \"number\" },\n },\n {\n name: \"maxDailyUsd\",\n description:\n \"Maximum total USD spend per day (e.g. 50.0 for $50.00)\",\n required: false,\n schema: { type: \"number\" },\n },\n {\n name: \"blockRecipient\",\n description:\n \"Ethereum address to add to the blocklist (payments to this address will be rejected)\",\n required: false,\n schema: { type: \"string\" },\n },\n {\n name: \"allowRecipient\",\n description:\n \"Ethereum address to add to the allowlist (when allowlist is non-empty, only listed addresses can receive payments)\",\n required: false,\n schema: { type: \"string\" },\n },\n ],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n \tconst __avTextRaw = typeof message?.content?.text === 'string' ? message.content.text : '';\n \tconst __avText = __avTextRaw.toLowerCase();\n \tconst __avKeywords = ['set', 'payment', 'policy'];\n \tconst __avKeywordOk =\n \t\t__avKeywords.length > 0 &&\n \t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n \tconst __avRegex = new RegExp('\\\\b(?:set|payment|policy)\\\\b', 'i');\n \tconst __avRegexOk = __avRegex.test(__avText);\n \tconst __avSource = String(message?.content?.source ?? message?.source ?? '');\n \tconst __avExpectedSource = '';\n \tconst __avSourceOk = __avExpectedSource\n \t\t? __avSource === __avExpectedSource\n \t\t: Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n \tconst __avOptions = options && typeof options === 'object' ? options : {};\n \tconst __avInputOk =\n \t\t__avText.trim().length > 0 ||\n \t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n \t\tBoolean(message?.content && typeof message.content === 'object');\n\n \tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n \t\treturn false;\n \t}\n\n \tconst __avLegacyValidate = async (runtime: IAgentRuntime): Promise<boolean> => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n return !!service && service.isActive();\n };\n \ttry {\n \t\treturn Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n \t} catch {\n \t\treturn false;\n \t}\n },\n\n handler: async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State,\n options?: HandlerOptions | Record<string, JsonValue | undefined>,\n callback?: HandlerCallback,\n ) => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n\n if (!service || !service.isActive()) {\n logger.warn(\"[x402] SET_PAYMENT_POLICY: Service not available or inactive\");\n if (callback) {\n await callback({\n text: \"I'm unable to update payment policies right now. The x402 payment service is not configured or is inactive.\",\n actions: [],\n });\n }\n return { success: false, error: \"x402 service not available\" };\n }\n\n // Extract parameters\n const rawParams = (\n options as Record<string, Record<string, unknown> | undefined> | undefined\n )?.parameters as PolicyParams | undefined;\n\n const maxPerPaymentUsd = rawParams?.maxPerPaymentUsd;\n const maxDailyUsd = rawParams?.maxDailyUsd;\n const blockRecipient = rawParams?.blockRecipient;\n const allowRecipient = rawParams?.allowRecipient;\n\n // Validate that at least one parameter was provided\n if (\n maxPerPaymentUsd === undefined &&\n maxDailyUsd === undefined &&\n !blockRecipient &&\n !allowRecipient\n ) {\n if (callback) {\n await callback({\n text: \"Please specify at least one policy change: maxPerPaymentUsd, maxDailyUsd, blockRecipient, or allowRecipient.\",\n actions: [],\n });\n }\n return { success: false, error: \"No policy parameters provided\" };\n }\n\n const changes: string[] = [];\n\n try {\n // Apply per-transaction limit\n if (maxPerPaymentUsd !== undefined) {\n if (maxPerPaymentUsd <= 0) {\n if (callback) {\n await callback({\n text: \"maxPerPaymentUsd must be a positive number.\",\n actions: [],\n });\n }\n return { success: false, error: \"Invalid maxPerPaymentUsd\" };\n }\n service.updatePolicy({\n outgoing: {\n maxPerTransaction: usdToBaseUnits(maxPerPaymentUsd),\n } as never,\n });\n changes.push(`Max per-payment limit set to $${maxPerPaymentUsd.toFixed(2)}`);\n logger.info(\n `[x402] SET_PAYMENT_POLICY: maxPerTransaction set to $${maxPerPaymentUsd}`,\n );\n }\n\n // Apply daily total limit\n if (maxDailyUsd !== undefined) {\n if (maxDailyUsd <= 0) {\n if (callback) {\n await callback({\n text: \"maxDailyUsd must be a positive number.\",\n actions: [],\n });\n }\n return { success: false, error: \"Invalid maxDailyUsd\" };\n }\n service.updatePolicy({\n outgoing: {\n maxTotal: usdToBaseUnits(maxDailyUsd),\n } as never,\n });\n changes.push(`Daily spending limit set to $${maxDailyUsd.toFixed(2)}`);\n logger.info(\n `[x402] SET_PAYMENT_POLICY: maxTotal (daily) set to $${maxDailyUsd}`,\n );\n }\n\n // Block a recipient\n if (blockRecipient) {\n service.updatePolicy({\n outgoing: {\n blockedRecipients: [blockRecipient],\n } as never,\n });\n changes.push(`Blocked recipient: ${blockRecipient}`);\n logger.info(\n `[x402] SET_PAYMENT_POLICY: blocked recipient ${blockRecipient}`,\n );\n }\n\n // Allow a recipient\n if (allowRecipient) {\n service.updatePolicy({\n outgoing: {\n allowedRecipients: [allowRecipient],\n } as never,\n });\n changes.push(`Added to allowlist: ${allowRecipient}`);\n logger.info(\n `[x402] SET_PAYMENT_POLICY: allowed recipient ${allowRecipient}`,\n );\n }\n\n const summary = changes.join(\"\\n- \");\n if (callback) {\n await callback({\n text: `Payment policy updated:\\n- ${summary}`,\n actions: [],\n });\n }\n\n return {\n success: true,\n text: `Payment policy updated: ${changes.join(\"; \")}`,\n data: {\n maxPerPaymentUsd: maxPerPaymentUsd ?? null,\n maxDailyUsd: maxDailyUsd ?? null,\n blockRecipient: blockRecipient ?? null,\n allowRecipient: allowRecipient ?? null,\n },\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(\n `[x402] SET_PAYMENT_POLICY: Failed to update policy: ${errorMessage}`,\n );\n if (callback) {\n await callback({\n text: `Failed to update payment policy: ${errorMessage}`,\n actions: [],\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"Set the maximum payment per transaction to $5\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"I'll set the per-transaction limit to $5.00.\",\n actions: [\"SET_PAYMENT_POLICY\"],\n },\n } as ActionExample,\n ],\n [\n {\n name: \"user\",\n content: {\n text: \"Limit my daily spending to $50 and block payments to 0xDEAD...BEEF\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"I'll set the daily limit to $50 and block that address.\",\n actions: [\"SET_PAYMENT_POLICY\"],\n },\n } as ActionExample,\n ],\n [\n {\n name: \"user\",\n content: {\n text: \"Allow payments only to 0x1234567890abcdef1234567890abcdef12345678\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"Adding that address to the payment allowlist.\",\n actions: [\"SET_PAYMENT_POLICY\"],\n },\n } as ActionExample,\n ],\n ],\n};\n",
|
|
8
|
+
"/**\n * Action: Pay for an x402-protected service.\n *\n * Allows the agent to make a request to an x402-protected URL,\n * automatically handling payment if a 402 response is received.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n JsonValue,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nexport const payForServiceAction: Action = {\n name: \"PAY_FOR_SERVICE\",\n description:\n \"Make a request to an x402-protected URL, automatically paying if required. Use when you need to access a paid API or service that uses the x402 payment protocol.\",\n\n similes: [\n \"pay for service\",\n \"x402 payment\",\n \"make a paid request\",\n \"access paid endpoint\",\n \"pay and fetch\",\n ],\n\n parameters: [\n {\n name: \"url\",\n description: \"The URL of the x402-protected service to access\",\n required: true,\n schema: { type: \"string\" },\n },\n {\n name: \"method\",\n description: \"HTTP method (GET, POST, etc.). Defaults to GET.\",\n required: false,\n schema: {\n type: \"string\",\n enumValues: [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n },\n },\n {\n name: \"body\",\n description: \"Optional request body as a JSON string (for POST/PUT)\",\n required: false,\n schema: { type: \"string\" },\n },\n ],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n \tconst __avTextRaw = typeof message?.content?.text === 'string' ? message.content.text : '';\n \tconst __avText = __avTextRaw.toLowerCase();\n \tconst __avKeywords = ['pay', 'for', 'service'];\n \tconst __avKeywordOk =\n \t\t__avKeywords.length > 0 &&\n \t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n \tconst __avRegex = new RegExp('\\\\b(?:pay|for|service)\\\\b', 'i');\n \tconst __avRegexOk = __avRegex.test(__avText);\n \tconst __avSource = String(message?.content?.source ?? message?.source ?? '');\n \tconst __avExpectedSource = '';\n \tconst __avSourceOk = __avExpectedSource\n \t\t? __avSource === __avExpectedSource\n \t\t: Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n \tconst __avOptions = options && typeof options === 'object' ? options : {};\n \tconst __avInputOk =\n \t\t__avText.trim().length > 0 ||\n \t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n \t\tBoolean(message?.content && typeof message.content === 'object');\n\n \tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n \t\treturn false;\n \t}\n\n \tconst __avLegacyValidate = async (runtime: IAgentRuntime): Promise<boolean> => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n return !!service && service.canMakePayments();\n };\n \ttry {\n \t\treturn Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n \t} catch {\n \t\treturn false;\n \t}\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n options?: HandlerOptions | Record<string, JsonValue | undefined>,\n callback?: HandlerCallback,\n ) => {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n\n if (!service || !service.canMakePayments()) {\n logger.warn(\"[x402] PAY_FOR_SERVICE: Service not available or inactive\");\n if (callback) {\n await callback({\n text: \"I'm unable to make payments right now. The x402 payment service is not configured or is inactive.\",\n actions: [],\n });\n }\n return { success: false, error: \"x402 service not available\" };\n }\n\n // Extract parameters\n const params = (options as Record<string, Record<string, string> | undefined> | undefined)?.parameters;\n const url = params?.url ?? extractUrlFromMessage(message);\n const method = params?.method ?? \"GET\";\n const body = params?.body;\n\n if (!url) {\n logger.warn(\"[x402] PAY_FOR_SERVICE: No URL provided\");\n if (callback) {\n await callback({\n text: \"I need a URL to make the paid request. Please provide the URL of the service you want me to access.\",\n actions: [],\n });\n }\n return { success: false, error: \"No URL provided\" };\n }\n\n logger.info(`[x402] PAY_FOR_SERVICE: Requesting ${method} ${url}`);\n\n const payFetch = service.getFetchWithPayment();\n\n try {\n const init: RequestInit = { method };\n if (body && (method === \"POST\" || method === \"PUT\")) {\n init.body = body;\n init.headers = { \"Content-Type\": \"application/json\" };\n }\n\n const response = await payFetch(url, init);\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n let responseText: string;\n\n if (contentType.includes(\"application/json\")) {\n const json = await response.json();\n responseText = JSON.stringify(json, null, 2);\n } else {\n responseText = await response.text();\n }\n\n // Truncate very long responses\n const maxLen = 2000;\n const truncated =\n responseText.length > maxLen\n ? `${responseText.slice(0, maxLen)}...\\n[Truncated - ${responseText.length} total characters]`\n : responseText;\n\n if (response.ok) {\n logger.info(\n `[x402] PAY_FOR_SERVICE: Success (${response.status}) from ${url}`,\n );\n if (callback) {\n await callback({\n text: `Successfully accessed ${url} (HTTP ${response.status}):\\n\\n${truncated}`,\n actions: [],\n });\n }\n return {\n success: true,\n text: `Payment and request successful for ${url}`,\n data: {\n status: response.status,\n url,\n responsePreview: truncated,\n },\n };\n } else {\n logger.warn(\n `[x402] PAY_FOR_SERVICE: Request returned ${response.status} from ${url}`,\n );\n if (callback) {\n await callback({\n text: `Request to ${url} returned HTTP ${response.status}:\\n\\n${truncated}`,\n actions: [],\n });\n }\n return {\n success: false,\n error: `HTTP ${response.status}`,\n data: {\n status: response.status,\n url,\n responsePreview: truncated,\n },\n };\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(\n `[x402] PAY_FOR_SERVICE: Request failed: ${errorMessage}`,\n );\n if (callback) {\n await callback({\n text: `Failed to access ${url}: ${errorMessage}`,\n actions: [],\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"Can you fetch the data from https://api.example.com/premium/data? It's a paid API.\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"I'll access that paid API for you now.\",\n actions: [\"PAY_FOR_SERVICE\"],\n },\n } as ActionExample,\n ],\n [\n {\n name: \"user\",\n content: {\n text: \"Please make a paid request to https://weather.paid-api.com/forecast\",\n },\n } as ActionExample,\n {\n name: \"assistant\",\n content: {\n text: \"Making a paid request to the weather API.\",\n actions: [\"PAY_FOR_SERVICE\"],\n },\n } as ActionExample,\n ],\n ],\n};\n\n/**\n * Attempt to extract a URL from the message text.\n */\nfunction extractUrlFromMessage(message: Memory): string | undefined {\n const text =\n typeof message.content === \"string\"\n ? message.content\n : message.content?.text;\n\n if (!text) return undefined;\n\n const urlRegex = /https?:\\/\\/[^\\s<>\"{}|\\\\^`[\\]]+/g;\n const matches = text.match(urlRegex);\n return matches?.[0];\n}\n",
|
|
9
|
+
"/**\n * Payment balance provider.\n *\n * Injects current payment state into the agent's context so that the LLM\n * is aware of the agent's spending and earning activity.\n */\n\nimport type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { X402Service } from \"../services/x402-service\";\n\nimport { ONE_DAY_MS, formatUsd, truncateAddress } from \"../utils\";\nexport const paymentBalanceProvider: Provider = {\n name: \"x402_payment_status\",\n description:\n \"Current x402 payment status including wallet, spending, and earning summary\",\n\n dynamic: true,\nget: async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state: State,\n ) => {\nconst service = runtime.getService<X402Service>(\"x402_payment\");\n\n if (!service || !service.isActive()) {\n return {\n text: \"[Payment Status]\\nPayments: Inactive (no wallet configured)\",\n values: {\n x402Active: false,\n },\n };\n }\n\n const walletAddress = service.getWalletAddress();\n const network = service.getNetwork();\n\n const summary = await service.getSummary(ONE_DAY_MS);\n\n const netAmount = summary.totalEarned - summary.totalSpent;\n const netDisplay = netAmount < 0n\n ? `-${formatUsd(-netAmount)}`\n : `+${formatUsd(netAmount)}`;\n\n const statusLines = [\n \"[Payment Status]\",\n `Wallet: ${walletAddress ? truncateAddress(walletAddress) : \"N/A\"} (${network})`,\n `24h Spent: ${formatUsd(summary.totalSpent)} (${summary.outgoingCount} txns)`,\n `24h Earned: ${formatUsd(summary.totalEarned)} (${summary.incomingCount} txns)`,\n `Net: ${netDisplay}`,\n `Circuit Breaker: ${service.getCircuitBreakerState()}`,\n ];\n\n return {\n text: statusLines.join(\"\\n\"),\n values: {\n x402Active: true,\n x402Wallet: walletAddress ?? \"\",\n x402Network: network,\n x402TotalSpent: formatUsd(summary.totalSpent),\n x402TotalEarned: formatUsd(summary.totalEarned),\n x402OutgoingCount: summary.outgoingCount,\n x402IncomingCount: summary.incomingCount,\n },\n };\n },\n};\n",
|
|
10
10
|
"/**\n * Route: /.well-known/agent-card.json\n *\n * Serves an agent card that advertises the agent's x402 payment capabilities,\n * wallet address, network, and available paid skills/routes.\n */\n\nimport { logger } from \"@elizaos/core\";\nimport type {\n IAgentRuntime,\n Route,\n RouteRequest,\n RouteResponse,\n} from \"@elizaos/core\";\n\nimport { X402Service } from \"../services/x402-service\";\nimport { resolveNetwork } from \"../networks\";\n\n/** Shape of a skill entry in the agent card */\ninterface AgentCardSkill {\n name: string;\n description: string;\n path?: string;\n price?: string;\n network?: string;\n}\n\n/** Shape of the agent card JSON response */\ninterface AgentCard {\n protocolVersion: string;\n name: string;\n description: string;\n url: string;\n capabilities: {\n x402Payments: boolean;\n };\n payments: Array<{\n method: string;\n payee: string;\n network: string;\n facilitatorUrl: string;\n }>;\n skills: AgentCardSkill[];\n}\n\n/** GET /.well-known/agent-card.json — Serve the agent's payment capabilities card */\nasync function handleAgentCard(\n req: RouteRequest,\n res: RouteResponse,\n runtime: IAgentRuntime,\n): Promise<void> {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n if (!service || !service.isActive()) {\n res.status(503).json({ error: \"x402 service not active\" });\n return;\n }\n\n const walletAddress = service.getWalletAddress() ?? \"\";\n const networkKey = service.getNetwork();\n const facilitatorUrl = service.getFacilitatorUrl();\n\n // Resolve CAIP-2 network identifier\n let caip2Network: string;\n try {\n const networkInfo = resolveNetwork(networkKey);\n caip2Network = networkInfo.caip2;\n } catch (err) {\n // Unknown network key — use it as-is (may be a CAIP-2 ID already)\n caip2Network = networkKey;\n const msg = err instanceof Error ? err.message : String(err);\n logger.warn(\"[x402] Agent card: could not resolve network '\" + networkKey + \"': \" + msg);\n }\n\n // Extract agent name and description from runtime character\n const character = runtime.character;\n const agentName = character?.name ?? \"ElizaOS Agent\";\n const agentDescription =\n (Array.isArray(character?.bio) ? character.bio[0] : character?.bio) ??\n \"An ElizaOS agent with x402 payment capabilities\";\n\n // Auto-detect the agent URL from the request or configuration\n const configuredUrl = String(runtime.getSetting(\"X402_AGENT_URL\") ?? \"\");\n let agentUrl = configuredUrl;\n if (!agentUrl && req.headers) {\n const host =\n (Array.isArray(req.headers.host) ? req.headers.host[0] : req.headers.host) ?? \"\";\n const proto =\n (Array.isArray(req.headers[\"x-forwarded-proto\"])\n ? req.headers[\"x-forwarded-proto\"][0]\n : req.headers[\"x-forwarded-proto\"]) ?? \"https\";\n if (host) {\n agentUrl = `${proto}://${host}`;\n }\n }\n\n // Collect paid routes/skills from the plugin's routes\n const skills: AgentCardSkill[] = [];\n\n // Check registered routes for x402 configuration\n const plugins = runtime.plugins ?? [];\n for (const plugin of plugins) {\n if (!plugin.routes) continue;\n for (const route of plugin.routes) {\n // Access x402 field — it's on BaseRoute but may not be in published types yet\n const x402Config = \"x402\" in route\n ? (route as { x402?: { price: string; network?: string; description?: string } }).x402\n : undefined;\n if (x402Config) {\n skills.push({\n name: (\"name\" in route ? route.name : undefined) ?? route.path,\n description: x402Config.description ?? `Paid endpoint: ${route.path}`,\n path: route.path,\n price: x402Config.price,\n network: x402Config.network,\n });\n }\n }\n }\n\n const card: AgentCard = {\n protocolVersion: \"1.0\",\n name: agentName,\n description: agentDescription,\n url: agentUrl,\n capabilities: {\n x402Payments: true,\n },\n payments: [\n {\n method: \"x402\",\n payee: walletAddress,\n network: caip2Network,\n facilitatorUrl,\n },\n ],\n skills,\n };\n\n res.status(200).json(card as unknown as Record<string, string | number | boolean | Record<string, string> | undefined>);\n}\n\nexport const agentCardRoute: Route = {\n type: \"GET\" as const,\n path: \"/.well-known/agent-card.json\",\n name: \"x402-agent-card\",\n public: true,\n handler: handleAgentCard,\n};\n",
|
|
11
11
|
"/**\n * Registry of supported EVM networks for x402 payments.\n *\n * IMPORTANT: usdcDomainName MUST match the on-chain EIP-712 domain name\n * returned by the USDC contract's name() function. This varies by chain:\n * - Ethereum mainnet: \"USD Coin\"\n * - Base / Base Sepolia / testnets: \"USDC\"\n * Using the wrong name produces signatures the on-chain contract rejects.\n */\n\nimport type { NetworkInfo } from \"./types\";\n\nexport const NETWORK_REGISTRY: Record<string, NetworkInfo> = {\n base: {\n caip2: \"eip155:8453\",\n chainId: 8453,\n name: \"Base\",\n usdcAddress: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n usdcDomainName: \"USDC\",\n usdcPermitVersion: \"2\",\n rpcUrl: \"https://mainnet.base.org\",\n },\n \"base-sepolia\": {\n caip2: \"eip155:84532\",\n chainId: 84532,\n name: \"Base Sepolia\",\n usdcAddress: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n usdcDomainName: \"USDC\",\n usdcPermitVersion: \"2\",\n rpcUrl: \"https://sepolia.base.org\",\n },\n ethereum: {\n caip2: \"eip155:1\",\n chainId: 1,\n name: \"Ethereum\",\n usdcAddress: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n usdcDomainName: \"USD Coin\",\n usdcPermitVersion: \"2\",\n rpcUrl: \"https://cloudflare-eth.com\",\n },\n sepolia: {\n caip2: \"eip155:11155111\",\n chainId: 11155111,\n name: \"Sepolia\",\n usdcAddress: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n usdcDomainName: \"USDC\",\n usdcPermitVersion: \"2\",\n rpcUrl: \"https://rpc.sepolia.org\",\n },\n} as const;\n\nexport function resolveNetwork(key: string): NetworkInfo {\n const info = NETWORK_REGISTRY[key];\n if (!info) {\n const supported = Object.keys(NETWORK_REGISTRY).join(\", \");\n throw new Error(`Unknown network \"${key}\". Supported: ${supported}`);\n }\n return info;\n}\n\nexport function networkKeyFromCaip2(caip2: string): string | undefined {\n for (const [key, info] of Object.entries(NETWORK_REGISTRY)) {\n if (info.caip2 === caip2) {\n return key;\n }\n }\n return undefined;\n}\n",
|
|
12
12
|
"/**\n * Core X402 payment service for ElizaOS.\n *\n * Manages wallet configuration, payment signing, policy enforcement,\n * circuit breaking, and payment tracking. Provides a fetch wrapper\n * that auto-handles 402 Payment Required responses.\n */\n\nimport { Service } from \"@elizaos/core\";\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\nimport { EvmPaymentSigner } from \"../client/signer\";\nimport {\n createFetchWithPayment,\n type X402Fetch,\n} from \"../client/fetch-with-payment\";\nimport { resolveNetwork } from \"../networks\";\nimport { CircuitBreaker } from \"../policy/circuit-breaker\";\nimport { PolicyEngine } from \"../policy/engine\";\nimport { MemoryPaymentStorage } from \"../storage/memory\";\nimport { SqlitePaymentStorage } from \"../storage/sqlite\";\nimport type {\n PaymentPolicy,\n PaymentRecord,\n PaymentSigner,\n PaymentStorage,\n PaymentSummary,\n X402ServiceConfig,\n} from \"../types\";\n\nimport { ONE_DAY_MS, usdToBaseUnits } from \"../utils\";\n\nconst DEFAULT_FACILITATOR_URL = \"https://facilitator.daydreams.systems\";\n\nconst DEFAULTS = {\n network: \"base\",\n maxPaymentUsd: 1.0,\n maxTotalUsd: 10.0,\n} as const;\n\nexport class X402Service extends Service {\n static serviceType = \"x402_payment\" as const;\n capabilityDescription = \"x402 HTTP payment protocol - send and receive crypto payments\";\n\n private signer: PaymentSigner | null = null;\n private policyEngine: PolicyEngine | null = null;\n private circuitBreaker: CircuitBreaker;\n private storage: PaymentStorage;\n private serviceConfig: X402ServiceConfig;\n private fetchWithPayment: X402Fetch | null = null;\n\n constructor(runtime?: IAgentRuntime) {\n super(runtime);\n\n // Initialize with safe defaults — real init happens in start()\n this.circuitBreaker = new CircuitBreaker();\n this.storage = new MemoryPaymentStorage();\n this.serviceConfig = {\n privateKey: \"\",\n network: DEFAULTS.network,\n payTo: \"\",\n facilitatorUrl: DEFAULT_FACILITATOR_URL,\n maxPaymentUsd: DEFAULTS.maxPaymentUsd,\n maxTotalUsd: DEFAULTS.maxTotalUsd,\n enabled: false,\n };\n }\n\n /**\n * Factory method: create and start the service.\n */\n static async start(runtime: IAgentRuntime): Promise<Service> {\n const service = new X402Service(runtime);\n await service.initialize(runtime);\n return service;\n }\n\n /**\n * Initialize the service with runtime configuration.\n */\n private async initialize(runtime: IAgentRuntime): Promise<void> {\n this.runtime = runtime;\n\n // Read configuration from runtime settings\n // getSetting returns string | boolean | number | null — coerce to string\n const privateKey = String(runtime.getSetting(\"X402_PRIVATE_KEY\") ?? \"\");\n const network = String(runtime.getSetting(\"X402_NETWORK\") ?? DEFAULTS.network);\n const payTo = String(runtime.getSetting(\"X402_PAY_TO\") ?? \"\");\n const facilitatorUrl = String(\n runtime.getSetting(\"X402_FACILITATOR_URL\") ?? DEFAULT_FACILITATOR_URL,\n );\n const maxPaymentUsdRaw = runtime.getSetting(\"X402_MAX_PAYMENT_USD\");\n const maxPaymentUsd = maxPaymentUsdRaw !== null\n ? parseFloat(String(maxPaymentUsdRaw))\n : DEFAULTS.maxPaymentUsd;\n const maxTotalUsdRaw = runtime.getSetting(\"X402_MAX_TOTAL_USD\");\n const maxTotalUsd = maxTotalUsdRaw !== null\n ? parseFloat(String(maxTotalUsdRaw))\n : DEFAULTS.maxTotalUsd;\n const enabledSetting = runtime.getSetting(\"X402_ENABLED\");\n const enabled =\n String(enabledSetting) !== \"false\" && privateKey.length > 0;\n\n this.serviceConfig = {\n privateKey,\n network,\n payTo,\n facilitatorUrl,\n maxPaymentUsd: isNaN(maxPaymentUsd) ? DEFAULTS.maxPaymentUsd : maxPaymentUsd,\n maxTotalUsd: isNaN(maxTotalUsd) ? DEFAULTS.maxTotalUsd : maxTotalUsd,\n enabled,\n };\n\n if (!enabled) {\n logger.info(\n \"[x402] Service inactive — no private key configured or explicitly disabled\",\n );\n return;\n }\n\n // Validate network\n try {\n resolveNetwork(network);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n logger.error(`[x402] Invalid network configuration: ${message}`);\n this.serviceConfig.enabled = false;\n return;\n }\n\n // Create signer\n try {\n this.signer = new EvmPaymentSigner(privateKey, network);\n logger.info(\n `[x402] Wallet initialized: ${this.signer.address} on ${network}`,\n );\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n logger.error(`[x402] Failed to initialize signer: ${message}`);\n this.serviceConfig.enabled = false;\n return;\n }\n\n // Security: clear the private key from config now that the signer has it.\n // The signer holds the key internally via viem's account object.\n this.serviceConfig.privateKey = \"\";\n\n // Auto-select storage backend\n const dbPath = String(runtime.getSetting(\"X402_DB_PATH\") ?? \"\");\n if (dbPath) {\n try {\n this.storage = new SqlitePaymentStorage(dbPath);\n logger.info(`[x402] Using SQLite storage at ${dbPath}`);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n logger.warn(`[x402] Failed to initialize SQLite storage: ${message}. Falling back to memory storage.`);\n this.storage = new MemoryPaymentStorage();\n }\n } else {\n logger.info(\"[x402] Using in-memory storage (set X402_DB_PATH for persistence)\");\n }\n\n // Build default policy\n const policy: PaymentPolicy = {\n outgoing: {\n maxPerTransaction: usdToBaseUnits(this.serviceConfig.maxPaymentUsd),\n maxTotal: usdToBaseUnits(this.serviceConfig.maxTotalUsd),\n windowMs: ONE_DAY_MS,\n maxTransactions: 1000,\n allowedRecipients: [],\n blockedRecipients: [],\n },\n incoming: {\n minPerTransaction: 0n,\n allowedSenders: [],\n blockedSenders: [],\n },\n };\n\n this.policyEngine = new PolicyEngine(policy, this.storage);\n this.circuitBreaker = new CircuitBreaker();\n\n // Create the fetch wrapper\n this.fetchWithPayment = createFetchWithPayment({\n signer: this.signer,\n policyEngine: this.policyEngine,\n circuitBreaker: this.circuitBreaker,\n storage: this.storage,\n logger,\n });\n\n logger.info(\n `[x402] Service active — max per-txn: $${this.serviceConfig.maxPaymentUsd}, max daily: $${this.serviceConfig.maxTotalUsd}`,\n );\n }\n\n async stop(): Promise<void> {\n logger.info(\"[x402] Service stopping\");\n this.signer = null;\n this.fetchWithPayment = null;\n }\n\n /**\n * Get a fetch function that automatically handles 402 Payment Required.\n * Returns the standard fetch if the service is inactive.\n */\n getFetchWithPayment(): X402Fetch {\n if (!this.fetchWithPayment) {\n return (input: RequestInfo | URL, init?: RequestInit) => fetch(input, init);\n }\n return this.fetchWithPayment;\n }\n\n /**\n * Get a summary of payment activity.\n * @param windowMs - Time window in milliseconds (default: 24h)\n */\n async getSummary(windowMs: number = ONE_DAY_MS): Promise<PaymentSummary> {\n const [totalSpent, totalEarned, outgoingCount, incomingCount] =\n await Promise.all([\n this.storage.getTotal(\"outgoing\", windowMs),\n this.storage.getTotal(\"incoming\", windowMs),\n this.storage.getCount(\"outgoing\", windowMs),\n this.storage.getCount(\"incoming\", windowMs),\n ]);\n\n return {\n totalSpent,\n totalEarned,\n outgoingCount,\n incomingCount,\n windowMs,\n };\n }\n\n /**\n * Get recent payment transactions.\n * @param limit - Maximum number of records to return\n */\n async getRecentTransactions(limit: number = 20): Promise<PaymentRecord[]> {\n return this.storage.getRecords({ limit });\n }\n\n isActive(): boolean {\n return this.serviceConfig.enabled && this.signer !== null;\n }\n\n canMakePayments(): boolean {\n return this.isActive() && this.fetchWithPayment !== null;\n }\n\n updatePolicy(policy: Partial<PaymentPolicy>): void {\n if (this.policyEngine) {\n this.policyEngine.updatePolicy(policy);\n logger.info(\"[x402] Payment policy updated\");\n }\n }\n\n getWalletAddress(): string | null {\n return this.signer?.address ?? null;\n }\n\n getNetwork(): string {\n return this.serviceConfig.network;\n }\n\n getFacilitatorUrl(): string {\n return this.serviceConfig.facilitatorUrl;\n }\n\n getPayToAddress(): string {\n return this.serviceConfig.payTo;\n }\n\n getStorage(): PaymentStorage {\n return this.storage;\n }\n\n getCircuitBreakerState(): string {\n return this.circuitBreaker.getState();\n }\n\n resetCircuitBreaker(): void {\n this.circuitBreaker.reset();\n logger.info(\"[x402] Circuit breaker reset\");\n }\n}\n",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"/** PostgreSQL PaymentStorage for multi-tenant Eliza Cloud deployments. Amounts stored as TEXT for BigInt precision. */\n\nimport pg from \"pg\";\nimport type {\n PaymentDirection,\n PaymentFilters,\n PaymentRecord,\n PaymentStorage,\n} from \"../types\";\n\nconst { Pool } = pg;\n\n/** Row shape returned from Postgres queries */\ninterface PaymentRow {\n id: string;\n agent_id: string;\n direction: string;\n counterparty: string;\n amount: string;\n network: string;\n tx_hash: string;\n resource: string;\n status: string;\n created_at: string;\n metadata: Record<string, string>;\n}\n\nexport class PostgresPaymentStorage implements PaymentStorage {\n private pool: pg.Pool;\n private agentId: string;\n private initialized: Promise<void>;\n\n constructor(connectionString: string, agentId: string) {\n this.pool = new Pool({ connectionString });\n this.agentId = agentId;\n this.initialized = this.initialize();\n }\n\n private async initialize(): Promise<void> {\n const client = await this.pool.connect();\n try {\n await client.query(`\n CREATE TABLE IF NOT EXISTS x402_payments (\n id TEXT PRIMARY KEY,\n agent_id TEXT NOT NULL,\n direction VARCHAR NOT NULL CHECK(direction IN ('outgoing', 'incoming')),\n counterparty TEXT NOT NULL,\n amount TEXT NOT NULL,\n network TEXT NOT NULL,\n tx_hash TEXT NOT NULL DEFAULT '',\n resource TEXT NOT NULL DEFAULT '',\n status TEXT NOT NULL DEFAULT 'pending',\n created_at TEXT NOT NULL,\n metadata JSONB NOT NULL DEFAULT '{}'\n );\n CREATE INDEX IF NOT EXISTS idx_x402_agent ON x402_payments(agent_id);\n CREATE INDEX IF NOT EXISTS idx_x402_direction ON x402_payments(agent_id, direction, created_at);\n `);\n } finally {\n client.release();\n }\n }\n\n /** Ensure the table is created before any operation */\n private async ready(): Promise<void> {\n await this.initialized;\n }\n\n async recordPayment(record: PaymentRecord): Promise<void> {\n await this.ready();\n await this.pool.query(\n `INSERT INTO x402_payments (id, agent_id, direction, counterparty, amount, network, tx_hash, resource, status, created_at, metadata)\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)`,\n [\n record.id,\n this.agentId,\n record.direction,\n record.counterparty,\n record.amount.toString(),\n record.network,\n record.txHash,\n record.resource,\n record.status,\n record.createdAt,\n JSON.stringify(record.metadata),\n ],\n );\n }\n\n async getTotal(\n direction: PaymentDirection,\n windowMs?: number,\n scope?: string,\n ): Promise<bigint> {\n await this.ready();\n\n let sql =\n \"SELECT amount FROM x402_payments WHERE agent_id = $1 AND direction = $2 AND status NOT IN ('failed', 'refunded')\";\n const params: (string | number)[] = [this.agentId, direction];\n let paramIdx = 3;\n\n if (windowMs !== undefined) {\n const cutoff = new Date(Date.now() - windowMs).toISOString();\n sql += ` AND created_at >= $${paramIdx}`;\n params.push(cutoff);\n paramIdx++;\n }\n\n if (scope) {\n sql += ` AND counterparty = $${paramIdx}`;\n params.push(scope);\n paramIdx++;\n }\n\n const result = await this.pool.query<{ amount: string }>(sql, params);\n let total = 0n;\n for (const row of result.rows) {\n total += BigInt(row.amount);\n }\n return total;\n }\n\n async getRecords(filters?: PaymentFilters): Promise<PaymentRecord[]> {\n await this.ready();\n\n let sql = \"SELECT * FROM x402_payments WHERE agent_id = $1\";\n const params: (string | number)[] = [this.agentId];\n let paramIdx = 2;\n\n if (filters) {\n if (filters.direction) {\n sql += ` AND direction = $${paramIdx}`;\n params.push(filters.direction);\n paramIdx++;\n }\n if (filters.counterparty) {\n sql += ` AND LOWER(counterparty) = LOWER($${paramIdx})`;\n params.push(filters.counterparty);\n paramIdx++;\n }\n if (filters.status) {\n sql += ` AND status = $${paramIdx}`;\n params.push(filters.status);\n paramIdx++;\n }\n if (filters.network) {\n sql += ` AND network = $${paramIdx}`;\n params.push(filters.network);\n paramIdx++;\n }\n if (filters.since) {\n sql += ` AND created_at >= $${paramIdx}`;\n params.push(filters.since);\n paramIdx++;\n }\n if (filters.until) {\n sql += ` AND created_at <= $${paramIdx}`;\n params.push(filters.until);\n paramIdx++;\n }\n }\n\n sql += \" ORDER BY created_at DESC\";\n\n if (filters?.limit !== undefined) {\n sql += ` LIMIT $${paramIdx}`;\n params.push(filters.limit);\n paramIdx++;\n }\n if (filters?.offset !== undefined) {\n sql += ` OFFSET $${paramIdx}`;\n params.push(filters.offset);\n paramIdx++;\n }\n\n const result = await this.pool.query<PaymentRow>(sql, params);\n return result.rows.map((row) => this.rowToRecord(row));\n }\n\n async getCount(\n direction: PaymentDirection,\n windowMs?: number,\n ): Promise<number> {\n await this.ready();\n\n let sql =\n \"SELECT COUNT(*) as cnt FROM x402_payments WHERE agent_id = $1 AND direction = $2 AND status NOT IN ('failed', 'refunded')\";\n const params: (string | number)[] = [this.agentId, direction];\n let paramIdx = 3;\n\n if (windowMs !== undefined) {\n const cutoff = new Date(Date.now() - windowMs).toISOString();\n sql += ` AND created_at >= $${paramIdx}`;\n params.push(cutoff);\n paramIdx++;\n }\n\n const result = await this.pool.query<{ cnt: string }>(sql, params);\n return parseInt(result.rows[0].cnt, 10);\n }\n\n async clear(): Promise<void> {\n await this.ready();\n await this.pool.query(\"DELETE FROM x402_payments WHERE agent_id = $1\", [\n this.agentId,\n ]);\n }\n\n /** Gracefully shut down the connection pool */\n async close(): Promise<void> {\n await this.pool.end();\n }\n\n private rowToRecord(row: PaymentRow): PaymentRecord {\n let metadata: Record<string, string> = {};\n try {\n // Postgres JSONB is already parsed by pg driver, but handle string case defensively\n metadata =\n typeof row.metadata === \"string\"\n ? (JSON.parse(row.metadata as unknown as string) as Record<string, string>)\n : (row.metadata as Record<string, string>);\n } catch (_metadataParseError) {\n // Non-critical: metadata is optional display data\n }\n\n return {\n id: row.id,\n direction: row.direction as PaymentDirection,\n counterparty: row.counterparty,\n amount: BigInt(row.amount),\n network: row.network,\n txHash: row.tx_hash,\n resource: row.resource,\n status: row.status as PaymentRecord[\"status\"],\n createdAt: row.created_at,\n metadata,\n };\n }\n}\n",
|
|
22
22
|
"/**\n * @elizaos/plugin-x402\n *\n * x402 HTTP payment protocol plugin for ElizaOS.\n * Enables agents to send and receive crypto payments (USDC on EVM chains)\n * using the x402 protocol standard.\n *\n * @see https://www.x402.org/\n */\n\nimport type {\n IAgentRuntime,\n Plugin,\n RouteRequest,\n RouteResponse,\n} from \"@elizaos/core\";\n\nimport { checkPaymentHistoryAction } from \"./actions/check-payment-history\";\nimport { setPaymentPolicyAction } from \"./actions/set-payment-policy\";\nimport { payForServiceAction } from \"./actions/pay-for-service\";\nimport { paymentBalanceProvider } from \"./providers/payment-balance\";\nimport { agentCardRoute } from \"./routes/agent-card\";\nimport { X402Service } from \"./services/x402-service\";\nimport { formatUsd } from \"./utils\";\n\n// Re-export public API\nexport { X402Service } from \"./services/x402-service\";\nexport { EvmPaymentSigner } from \"./client/signer\";\nexport { createFetchWithPayment } from \"./client/fetch-with-payment\";\nexport { createPaywallMiddleware } from \"./middleware/paywall\";\nexport {\n verifyPaymentWithFacilitator,\n settlePaymentWithFacilitator,\n} from \"./middleware/facilitator-client\";\nexport { PolicyEngine } from \"./policy/engine\";\nexport { CircuitBreaker } from \"./policy/circuit-breaker\";\nexport { MemoryPaymentStorage } from \"./storage/memory\";\nexport { SqlitePaymentStorage } from \"./storage/sqlite\";\nexport { PostgresPaymentStorage } from \"./storage/postgres\";\nexport { NETWORK_REGISTRY, resolveNetwork, networkKeyFromCaip2 } from \"./networks\";\nexport { payForServiceAction } from \"./actions/pay-for-service\";\nexport { checkPaymentHistoryAction } from \"./actions/check-payment-history\";\nexport { setPaymentPolicyAction } from \"./actions/set-payment-policy\";\nexport { agentCardRoute } from \"./routes/agent-card\";\nexport { paymentBalanceProvider } from \"./providers/payment-balance\";\nexport { formatUsd, truncateAddress, usdToBaseUnits, ONE_DAY_MS } from \"./utils\";\nexport type * from \"./types\";\n\n/** GET /x402/summary — Return 24h payment summary as JSON */\nasync function handleSummary(\n _req: RouteRequest,\n res: RouteResponse,\n runtime: IAgentRuntime,\n): Promise<void> {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n if (!service || !service.isActive()) {\n res.status(503).json({ error: \"x402 service not active\" });\n return;\n }\n\n const summary = await service.getSummary();\n res.status(200).json({\n wallet: service.getWalletAddress() ?? \"\",\n network: service.getNetwork(),\n totalSpent: formatUsd(summary.totalSpent),\n totalSpentRaw: summary.totalSpent.toString(),\n totalEarned: formatUsd(summary.totalEarned),\n totalEarnedRaw: summary.totalEarned.toString(),\n outgoingCount: summary.outgoingCount,\n incomingCount: summary.incomingCount,\n windowMs: summary.windowMs,\n circuitBreaker: service.getCircuitBreakerState(),\n });\n}\n\n/** GET /x402/history — Return recent payment transactions */\nasync function handleHistory(\n req: RouteRequest,\n res: RouteResponse,\n runtime: IAgentRuntime,\n): Promise<void> {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n if (!service || !service.isActive()) {\n res.status(503).json({ error: \"x402 service not active\" });\n return;\n }\n\n const limitStr =\n (Array.isArray(req.query?.limit)\n ? req.query.limit[0]\n : req.query?.limit) ?? \"20\";\n const limit = Math.min(Math.max(parseInt(limitStr, 10) || 20, 1), 100);\n\n const transactions = await service.getRecentTransactions(limit);\n\n // Serialize BigInt amounts as strings for JSON transport\n const serialized = transactions.map((txn) => ({\n id: txn.id,\n direction: txn.direction,\n counterparty: txn.counterparty,\n amount: txn.amount.toString(),\n amountUsd: formatUsd(txn.amount),\n network: txn.network,\n txHash: txn.txHash,\n resource: txn.resource,\n status: txn.status,\n createdAt: txn.createdAt,\n metadata: txn.metadata,\n }));\n\n res.status(200).json({ transactions: serialized, count: serialized.length });\n}\n\n/** GET /x402/export — Export all payments as CSV */\nasync function handleExport(\n _req: RouteRequest,\n res: RouteResponse,\n runtime: IAgentRuntime,\n): Promise<void> {\n const service = runtime.getService<X402Service>(\"x402_payment\");\n if (!service || !service.isActive()) {\n res.status(503).json({ error: \"x402 service not active\" });\n return;\n }\n\n const transactions = await service.getRecentTransactions(10000);\n\n const csvHeader =\n \"id,direction,counterparty,amount_base_units,amount_usd,network,tx_hash,resource,status,created_at\";\n const csvRows = transactions.map(\n (txn) =>\n `${txn.id},${txn.direction},${txn.counterparty},${txn.amount.toString()},${formatUsd(txn.amount)},${txn.network},${txn.txHash},${escapeCSV(txn.resource)},${txn.status},${txn.createdAt}`,\n );\n\n const csv = [csvHeader, ...csvRows].join(\"\\n\");\n\n if (res.setHeader) {\n res.setHeader(\"Content-Type\", \"text/csv\");\n res.setHeader(\n \"Content-Disposition\",\n `attachment; filename=\"x402-payments-${new Date().toISOString().slice(0, 10)}.csv\"`,\n );\n }\n res.send(csv);\n}\n\n/** Escape a value for CSV (wrap in quotes if it contains commas or quotes) */\nfunction escapeCSV(value: string): string {\n if (value.includes(\",\") || value.includes('\"') || value.includes(\"\\n\")) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\nexport const x402Plugin: Plugin = {\n name: \"x402\",\n description:\n \"x402 HTTP payment protocol - send and receive crypto payments (USDC on EVM chains)\",\n\n config: {\n X402_PRIVATE_KEY: null,\n X402_NETWORK: null,\n X402_PAY_TO: null,\n X402_FACILITATOR_URL: null,\n X402_MAX_PAYMENT_USD: null,\n X402_MAX_TOTAL_USD: null,\n X402_ENABLED: null,\n },\n\n services: [X402Service],\n actions: [payForServiceAction, checkPaymentHistoryAction, setPaymentPolicyAction],\n providers: [paymentBalanceProvider],\n\n routes: [\n agentCardRoute,\n {\n type: \"GET\" as const,\n path: \"/x402/summary\",\n name: \"x402-summary\",\n public: false,\n handler: handleSummary,\n },\n {\n type: \"GET\" as const,\n path: \"/x402/history\",\n name: \"x402-history\",\n public: false,\n handler: handleHistory,\n },\n {\n type: \"GET\" as const,\n path: \"/x402/export\",\n name: \"x402-export\",\n public: false,\n handler: handleExport,\n },\n ],\n};\n\nexport default x402Plugin;\n"
|
|
23
23
|
],
|
|
24
|
-
"mappings": "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",
|
|
25
|
-
"debugId": "
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "2EC8B924AB46A7D764756E2164756E21",
|
|
26
26
|
"names": []
|
|
27
27
|
}
|
package/package.json
CHANGED