agentcash 0.6.0 → 0.6.2
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/cjs/run-server.cjs +172 -170
- package/dist/esm/{chunk-C73Z5QPI.js → chunk-BAQ3QDQY.js} +58 -4
- package/dist/esm/chunk-BAQ3QDQY.js.map +1 -0
- package/dist/esm/{chunk-X5H7CNL7.js → chunk-CPB4JGR7.js} +2 -2
- package/dist/esm/chunk-EGM7SQKO.js +7 -0
- package/dist/esm/{chunk-BOGGLB3Y.js → chunk-KZOOVRXW.js} +3 -3
- package/dist/esm/{chunk-THRXTZU6.js → chunk-UC3J43CE.js} +2 -2
- package/dist/esm/{commands-RO7I7ERX.js → commands-CJHVEMHK.js} +27 -86
- package/dist/esm/commands-CJHVEMHK.js.map +1 -0
- package/dist/esm/index.js +19 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{install-WAPHWJ54.js → install-7FG62LQT.js} +2 -2
- package/dist/esm/lib.js +2 -2
- package/dist/esm/{server-VK4ASVX7.js → server-AO2FSPPT.js} +66 -114
- package/dist/esm/server-AO2FSPPT.js.map +1 -0
- package/dist/esm/shared/operations/index.js +4 -4
- package/package.json +4 -4
- package/dist/esm/chunk-C73Z5QPI.js.map +0 -1
- package/dist/esm/chunk-N3WKW6F4.js +0 -7
- package/dist/esm/commands-RO7I7ERX.js.map +0 -1
- package/dist/esm/server-VK4ASVX7.js.map +0 -1
- /package/dist/esm/{chunk-X5H7CNL7.js.map → chunk-CPB4JGR7.js.map} +0 -0
- /package/dist/esm/{chunk-N3WKW6F4.js.map → chunk-EGM7SQKO.js.map} +0 -0
- /package/dist/esm/{chunk-BOGGLB3Y.js.map → chunk-KZOOVRXW.js.map} +0 -0
- /package/dist/esm/{chunk-THRXTZU6.js.map → chunk-UC3J43CE.js.map} +0 -0
- /package/dist/esm/{install-WAPHWJ54.js.map → install-7FG62LQT.js.map} +0 -0
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { Clients } from './cli/install/clients';\nimport { isMppEnabled } from '@/shared/mpp-enabled';\n\nconst isClaudeCode = Boolean(process.env.CLAUDECODE);\nconst defaultYes = isClaudeCode || Boolean(process.env.CI);\n\nvoid yargs(hideBin(process.argv))\n .scriptName('agentcash')\n .usage('$0 [command] [options]')\n .option('dev', {\n type: 'boolean',\n description: 'Enable dev mode (use localhost endpoints)',\n default: false,\n })\n .option('invite', {\n type: 'string',\n description: 'Invite code to redeem for starter money',\n required: false,\n })\n .option('yes', {\n alias: 'y',\n type: 'boolean',\n description: 'Yes to all prompts',\n default: defaultYes ? true : undefined,\n })\n .option('sessionId', {\n type: 'string',\n description:\n 'Session ID for matching requests (auto-generated if not provided)',\n required: false,\n })\n .option('provider', {\n type: 'string',\n description: 'Provider to use for the MCP server',\n required: false,\n })\n .option('format', {\n type: 'string',\n description:\n 'Output format: json (default for pipes) or pretty (default for TTY)',\n choices: ['json', 'pretty'],\n })\n .option('quiet', {\n alias: 'q',\n type: 'boolean',\n description: 'Suppress stderr output',\n default: false,\n })\n .option('verbose', {\n alias: 'v',\n type: 'boolean',\n description: 'Enable verbose logging (debug output to stderr)',\n default: false,\n })\n .middleware(async argv => {\n // Configure CLI context for shared modules (like logging)\n if (argv.verbose) {\n const { configureCliContext } = await import('@/shared/cli-context');\n configureCliContext({ verbose: true });\n }\n })\n // ============================================================\n // Core CLI Commands (for agent/programmatic use)\n // ============================================================\n .command(\n 'fetch <url>',\n 'HTTP fetch with automatic x402 payment handling',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to fetch',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description: 'HTTP method',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n default: 'GET',\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n })\n .option('payment-method', {\n alias: 'p',\n type: 'string',\n description: 'Payment protocol to use',\n choices: isMppEnabled() ? ['x402', 'mpp', 'auto'] : ['x402', 'auto'],\n default: 'auto',\n }),\n async args => {\n const { fetchCommand } = await import('@/cli/commands');\n await fetchCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n paymentMethod: args.paymentMethod,\n },\n args\n );\n }\n )\n .command(\n 'fetch-auth <url>',\n 'HTTP fetch with automatic SIWX (Sign-In With X) authentication',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to fetch',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description: 'HTTP method',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n default: 'GET',\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n }),\n async args => {\n const { fetchAuthCommand } = await import('@/cli/commands');\n await fetchAuthCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n },\n args\n );\n }\n )\n .command(\n 'check <url>',\n 'Check endpoint for x402 pricing and schema without making payment',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to check',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description:\n 'HTTP method to check. If omitted, all methods are probed in parallel.',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n }),\n async args => {\n const { checkCommand } = await import('@/cli/commands');\n await checkCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n },\n args\n );\n }\n )\n .command(\n 'discover <url>',\n 'Discover x402-protected endpoints on an origin',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to discover endpoints from',\n demandOption: true,\n }),\n async args => {\n const { discoverCommand } = await import('@/cli/commands');\n await discoverCommand({ url: args.url }, args);\n }\n )\n .command(\n 'register <url>',\n 'Register an origin with agentcash (discover + index endpoints)',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to register',\n demandOption: true,\n }),\n async args => {\n const { registerCommand } = await import('@/cli/commands');\n await registerCommand({ url: args.url }, args);\n }\n )\n .command(\n 'wallet',\n 'Wallet management commands',\n yargs =>\n yargs\n .command(\n 'info',\n 'Get wallet address, balance, and deposit link',\n yargs => yargs,\n async args => {\n const { walletInfoCommand } = await import('@/cli/commands');\n await walletInfoCommand({}, args);\n }\n )\n .command(\n 'redeem <code>',\n 'Redeem an invite code for free USDC',\n yargs =>\n yargs.positional('code', {\n type: 'string',\n description: 'The invite code to redeem',\n demandOption: true,\n }),\n async args => {\n const { walletRedeemCommand } = await import('@/cli/commands');\n await walletRedeemCommand({ code: args.code }, args);\n }\n )\n .demandCommand(1, 'You must specify a wallet subcommand')\n .strict(),\n () => {\n // Show help for wallet command\n }\n )\n .command(\n 'report-error',\n 'Report a critical bug to the agentcash team (emergency only)',\n yargs =>\n yargs\n .option('tool', {\n type: 'string',\n description: 'The tool/command that failed',\n demandOption: true,\n })\n .option('summary', {\n type: 'string',\n description: '1-2 sentence summary of the issue',\n demandOption: true,\n })\n .option('error-message', {\n type: 'string',\n description: 'The error message',\n demandOption: true,\n })\n .option('resource', {\n type: 'string',\n description: 'The x402 resource URL (if applicable)',\n })\n .option('stack', {\n type: 'string',\n description: 'Stack trace (if available)',\n })\n .option('full-report', {\n type: 'string',\n description: 'Detailed report with context and repro steps',\n }),\n async args => {\n const { reportErrorCommand } = await import('@/cli/commands');\n await reportErrorCommand(\n {\n tool: args.tool,\n summary: args.summary,\n errorMessage: args.errorMessage,\n resource: args.resource,\n stack: args.stack,\n fullReport: args.fullReport,\n },\n args\n );\n }\n )\n // ============================================================\n // Server & Installation Commands\n // ============================================================\n .command(\n ['$0', 'server'],\n 'Start the MCP server (default when no command specified)',\n yargs => yargs,\n async args => {\n const { serverCommand } = await import('@/cli/commands');\n await serverCommand(args);\n }\n )\n .command(\n 'install',\n 'Install the MCP server configuration for a client',\n yargs =>\n yargs.option('client', {\n type: 'string',\n description: 'The client name',\n required: false,\n default: isClaudeCode ? Clients.ClaudeCode : undefined,\n }),\n async args => {\n const { installMcpServer } = await import('@/cli/install');\n await installMcpServer(args);\n }\n )\n .command(\n 'fund',\n 'Open the funding page to add USDC to your wallet',\n yargs => yargs,\n async args => {\n const { fundMcpServer } = await import('@/cli/fund');\n await fundMcpServer(args);\n }\n )\n .example(\n '$0 fetch \"https://enrichx402.com/api/apollo/people-enrich\" -m POST -b \\'{\"email\":\"user@example.com\"}\\'',\n 'Fetch with x402 payment'\n )\n .example(\n '$0 check \"https://enrichx402.com/api/apollo/people-enrich\"',\n 'Check endpoint pricing'\n )\n .example(\n '$0 discover \"https://enrichx402.com\"',\n 'Discover endpoints on origin'\n )\n .example(\n '$0 register \"https://enrichx402.com\"',\n 'Register origin with agentcash'\n )\n .example('$0 wallet info', 'Get wallet balance')\n .example('$0 wallet redeem ABC123', 'Redeem invite code')\n .example('$0', 'Start MCP server (default)')\n .example('$0 install --client cursor', 'Install MCP for Cursor')\n .strict()\n .help()\n .version()\n .parseAsync()\n .catch(err => {\n // Output error in JSON format for agent consumption\n const response = {\n success: false,\n error: {\n code: 'GENERAL_ERROR',\n message: err instanceof Error ? err.message : String(err),\n surface: 'cli',\n cause: 'unknown',\n },\n };\n console.log(JSON.stringify(response, null, 2));\n process.exit(1);\n });\n"],"mappings":"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","names":["yargs"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { Clients } from './cli/install/clients';\nimport { isMppEnabled } from '@/shared/mpp-enabled';\nimport { MCP_VERSION } from '@/shared/version';\n\nconst isClaudeCode = Boolean(process.env.CLAUDECODE);\nconst defaultYes = isClaudeCode || Boolean(process.env.CI);\n\nvoid yargs(hideBin(process.argv))\n .scriptName('agentcash')\n .usage('$0 [command] [options]')\n .option('dev', {\n type: 'boolean',\n description: 'Enable dev mode (use localhost endpoints)',\n default: false,\n })\n .option('invite', {\n type: 'string',\n description: 'Invite code to redeem for starter money',\n required: false,\n })\n .option('yes', {\n alias: 'y',\n type: 'boolean',\n description: 'Yes to all prompts',\n default: defaultYes ? true : undefined,\n })\n .option('sessionId', {\n type: 'string',\n description:\n 'Session ID for matching requests (auto-generated if not provided)',\n required: false,\n })\n .option('provider', {\n type: 'string',\n description: 'Provider to use for the MCP server',\n required: false,\n })\n .option('format', {\n type: 'string',\n description:\n 'Output format: json (default for pipes) or pretty (default for TTY)',\n choices: ['json', 'pretty'],\n })\n .option('quiet', {\n alias: 'q',\n type: 'boolean',\n description: 'Suppress stderr output',\n default: false,\n })\n .option('verbose', {\n alias: 'v',\n type: 'boolean',\n description: 'Enable verbose logging (debug output to stderr)',\n default: false,\n })\n .middleware(async argv => {\n // Configure CLI context for shared modules (like logging)\n if (argv.verbose) {\n const { configureCliContext } = await import('@/shared/cli-context');\n configureCliContext({ verbose: true });\n }\n })\n // ============================================================\n // Core CLI Commands (for agent/programmatic use)\n // ============================================================\n .command(\n 'fetch <url>',\n 'HTTP fetch with automatic x402 payment handling',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to fetch',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description: 'HTTP method',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n default: 'GET',\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n })\n .option('payment-method', {\n alias: 'p',\n type: 'string',\n description: 'Payment protocol to use',\n choices: isMppEnabled() ? ['x402', 'mpp', 'auto'] : ['x402', 'auto'],\n default: 'auto',\n }),\n async args => {\n const { fetchCommand } = await import('@/cli/commands');\n await fetchCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n paymentMethod: args.paymentMethod,\n },\n args\n );\n }\n )\n .command(\n 'fetch-auth <url>',\n 'HTTP fetch with automatic SIWX (Sign-In With X) authentication',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to fetch',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description: 'HTTP method',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n default: 'GET',\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n }),\n async args => {\n const { fetchAuthCommand } = await import('@/cli/commands');\n await fetchAuthCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n },\n args\n );\n }\n )\n .command(\n 'check <url>',\n 'Check endpoint for x402 pricing and schema without making payment',\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The endpoint URL to check',\n demandOption: true,\n })\n .option('method', {\n alias: 'm',\n type: 'string',\n description:\n 'HTTP method to check. If omitted, all methods are probed in parallel.',\n choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n })\n .option('body', {\n alias: 'b',\n type: 'string',\n description: 'Request body as JSON string',\n })\n .option('headers', {\n alias: 'H',\n type: 'string',\n description: 'Additional headers as JSON object',\n }),\n async args => {\n const { checkCommand } = await import('@/cli/commands');\n await checkCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n },\n args\n );\n }\n )\n .command(\n 'discover <url>',\n 'Discover x402-protected endpoints on an origin',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to discover endpoints from',\n demandOption: true,\n }),\n async args => {\n const { discoverCommand } = await import('@/cli/commands');\n await discoverCommand({ url: args.url }, args);\n }\n )\n .command(\n 'register <url>',\n 'Register an origin with agentcash (discover + index endpoints)',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to register',\n demandOption: true,\n }),\n async args => {\n const { registerCommand } = await import('@/cli/commands');\n await registerCommand({ url: args.url }, args);\n }\n )\n .command(\n 'wallet',\n 'Wallet management commands',\n yargs =>\n yargs\n .command(\n 'info',\n 'Get wallet address, balance, and deposit link',\n yargs => yargs,\n async args => {\n const { walletInfoCommand } = await import('@/cli/commands');\n await walletInfoCommand({}, args);\n }\n )\n .command(\n 'redeem <code>',\n 'Redeem an invite code for free USDC',\n yargs =>\n yargs.positional('code', {\n type: 'string',\n description: 'The invite code to redeem',\n demandOption: true,\n }),\n async args => {\n const { walletRedeemCommand } = await import('@/cli/commands');\n await walletRedeemCommand({ code: args.code }, args);\n }\n )\n .demandCommand(1, 'You must specify a wallet subcommand')\n .strict(),\n () => {\n // Show help for wallet command\n }\n )\n .command(\n 'report-error',\n 'Report a critical bug to the agentcash team (emergency only)',\n yargs =>\n yargs\n .option('tool', {\n type: 'string',\n description: 'The tool/command that failed',\n demandOption: true,\n })\n .option('summary', {\n type: 'string',\n description: '1-2 sentence summary of the issue',\n demandOption: true,\n })\n .option('error-message', {\n type: 'string',\n description: 'The error message',\n demandOption: true,\n })\n .option('resource', {\n type: 'string',\n description: 'The x402 resource URL (if applicable)',\n })\n .option('stack', {\n type: 'string',\n description: 'Stack trace (if available)',\n })\n .option('full-report', {\n type: 'string',\n description: 'Detailed report with context and repro steps',\n }),\n async args => {\n const { reportErrorCommand } = await import('@/cli/commands');\n await reportErrorCommand(\n {\n tool: args.tool,\n summary: args.summary,\n errorMessage: args.errorMessage,\n resource: args.resource,\n stack: args.stack,\n fullReport: args.fullReport,\n },\n args\n );\n }\n )\n // ============================================================\n // Server & Installation Commands\n // ============================================================\n .command(\n ['$0', 'server'],\n 'Start the MCP server (default when no command specified)',\n yargs => yargs,\n async args => {\n const { serverCommand } = await import('@/cli/commands');\n await serverCommand(args);\n }\n )\n .command(\n 'install',\n 'Install the MCP server configuration for a client',\n yargs =>\n yargs.option('client', {\n type: 'string',\n description: 'The client name',\n required: false,\n default: isClaudeCode ? Clients.ClaudeCode : undefined,\n }),\n async args => {\n const { installMcpServer } = await import('@/cli/install');\n await installMcpServer(args);\n }\n )\n .command(\n 'fund',\n 'Open the funding page to add USDC to your wallet',\n yargs => yargs,\n async args => {\n const { fundMcpServer } = await import('@/cli/fund');\n await fundMcpServer(args);\n }\n )\n .example(\n '$0 fetch \"https://stableenrich.dev/api/apollo/people-enrich\" -m POST -b \\'{\"email\":\"user@example.com\"}\\'',\n 'Fetch with x402 payment'\n )\n .example(\n '$0 check \"https://stableenrich.dev/api/apollo/people-enrich\"',\n 'Check endpoint pricing'\n )\n .example(\n '$0 discover \"https://stableenrich.dev\"',\n 'Discover endpoints on origin'\n )\n .example(\n '$0 register \"https://stableenrich.dev\"',\n 'Register origin with agentcash'\n )\n .example('$0 wallet info', 'Get wallet balance')\n .example('$0 wallet redeem ABC123', 'Redeem invite code')\n .example('$0', 'Start MCP server (default)')\n .example('$0 install --client cursor', 'Install MCP for Cursor')\n .strict()\n .help()\n .version(MCP_VERSION)\n .parseAsync()\n .catch(err => {\n // Output error in JSON format for agent consumption\n const response = {\n success: false,\n error: {\n code: 'GENERAL_ERROR',\n message: err instanceof Error ? err.message : String(err),\n surface: 'cli',\n cause: 'unknown',\n },\n };\n console.log(JSON.stringify(response, null, 2));\n process.exit(1);\n });\n"],"mappings":"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","names":["yargs"]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-KPEJO3KV.js";
|
|
5
5
|
import {
|
|
6
6
|
DIST_TAG
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UC3J43CE.js";
|
|
8
8
|
import {
|
|
9
9
|
promptDeposit,
|
|
10
10
|
wait
|
|
@@ -702,4 +702,4 @@ var installMcpServer = async (flags) => {
|
|
|
702
702
|
export {
|
|
703
703
|
installMcpServer
|
|
704
704
|
};
|
|
705
|
-
//# sourceMappingURL=install-
|
|
705
|
+
//# sourceMappingURL=install-7FG62LQT.js.map
|
package/dist/esm/lib.js
CHANGED
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
SUPPORTED_METHODS,
|
|
6
6
|
checkEndpoint,
|
|
7
7
|
discoverResources
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-CPB4JGR7.js";
|
|
9
|
+
import "./chunk-EGM7SQKO.js";
|
|
10
10
|
import "./chunk-TRPO7BKD.js";
|
|
11
11
|
import "./chunk-ISR6DJ53.js";
|
|
12
12
|
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildRequest,
|
|
3
|
+
createFetchWithAuth,
|
|
3
4
|
createFetchWithPayment,
|
|
4
5
|
requestSchema,
|
|
5
6
|
safeGetMppChallenge
|
|
6
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BAQ3QDQY.js";
|
|
7
8
|
import {
|
|
8
9
|
TEMPO_RPC_URL,
|
|
9
10
|
getTempoBalance,
|
|
10
11
|
getWalletInfo,
|
|
11
12
|
submitErrorReport
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-KZOOVRXW.js";
|
|
13
14
|
import {
|
|
14
15
|
checkEndpoint,
|
|
15
16
|
detectPaymentProtocols,
|
|
16
17
|
discoverResources,
|
|
17
18
|
getInputSchema,
|
|
18
|
-
getSiwxExtension,
|
|
19
|
-
safeCreateSIWxPayload,
|
|
20
19
|
safeGetPaymentRequired
|
|
21
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CPB4JGR7.js";
|
|
22
21
|
import {
|
|
23
22
|
isMppEnabled
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import
|
|
23
|
+
} from "./chunk-EGM7SQKO.js";
|
|
24
|
+
import {
|
|
25
|
+
MCP_VERSION
|
|
26
|
+
} from "./chunk-UC3J43CE.js";
|
|
26
27
|
import {
|
|
27
28
|
DEFAULT_NETWORK,
|
|
28
29
|
getWallet,
|
|
@@ -320,7 +321,7 @@ var registerFetchTool = ({
|
|
|
320
321
|
});
|
|
321
322
|
}
|
|
322
323
|
};
|
|
323
|
-
const provider = flags.provider ??
|
|
324
|
+
const provider = flags.provider ?? `agentcash@${MCP_VERSION}`;
|
|
324
325
|
const request = buildRequest({
|
|
325
326
|
input,
|
|
326
327
|
address: account.address,
|
|
@@ -356,8 +357,6 @@ var registerFetchTool = ({
|
|
|
356
357
|
};
|
|
357
358
|
|
|
358
359
|
// src/server/tools/auth-fetch.ts
|
|
359
|
-
import { x402Client as x402Client2, x402HTTPClient as x402HTTPClient2 } from "@x402/core/client";
|
|
360
|
-
import { encodeSIWxHeader } from "@x402/extensions/sign-in-with-x";
|
|
361
360
|
var toolName2 = "fetch_with_auth";
|
|
362
361
|
var registerAuthTools = ({
|
|
363
362
|
server,
|
|
@@ -378,78 +377,28 @@ var registerAuthTools = ({
|
|
|
378
377
|
}
|
|
379
378
|
},
|
|
380
379
|
async (input) => {
|
|
381
|
-
const
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
)
|
|
387
|
-
|
|
388
|
-
return mcpError(firstResult);
|
|
389
|
-
}
|
|
390
|
-
const firstResponse = firstResult.value;
|
|
391
|
-
if (firstResponse.status !== 402) {
|
|
392
|
-
if (!firstResponse.ok) {
|
|
393
|
-
return mcpErrorFetch(toolName2, firstResponse);
|
|
394
|
-
}
|
|
395
|
-
const parseResponseResult2 = await safeParseResponse(
|
|
396
|
-
toolName2,
|
|
397
|
-
firstResponse
|
|
398
|
-
);
|
|
399
|
-
if (parseResponseResult2.isErr()) {
|
|
400
|
-
return mcpError(parseResponseResult2);
|
|
401
|
-
}
|
|
402
|
-
return mcpSuccessResponse(parseResponseResult2.value);
|
|
403
|
-
}
|
|
404
|
-
const getPaymentRequiredResult = await safeGetPaymentRequired(
|
|
405
|
-
toolName2,
|
|
406
|
-
httpClient,
|
|
407
|
-
firstResponse
|
|
408
|
-
);
|
|
409
|
-
if (getPaymentRequiredResult.isErr()) {
|
|
410
|
-
return mcpError(getPaymentRequiredResult);
|
|
380
|
+
const result = await createFetchWithAuth({
|
|
381
|
+
surface: toolName2,
|
|
382
|
+
account,
|
|
383
|
+
timeout: input.timeout ?? DEFAULT_USER_FETCH_TIMEOUT
|
|
384
|
+
})(buildRequest({ input, address: account.address, sessionId }));
|
|
385
|
+
if (result.isErr()) {
|
|
386
|
+
return mcpError(result);
|
|
411
387
|
}
|
|
412
|
-
const
|
|
413
|
-
|
|
414
|
-
if (!siwxExtension) {
|
|
388
|
+
const value = result.value;
|
|
389
|
+
if (value.outcome === "no_siwx_extension") {
|
|
415
390
|
return mcpSuccessJson({
|
|
416
391
|
error: "Endpoint returned 402 but no sign-in-with-x extension found",
|
|
417
392
|
statusCode: 402,
|
|
418
|
-
extensions:
|
|
393
|
+
extensions: value.extensions,
|
|
419
394
|
hint: "This endpoint may require payment instead of authentication. Use execute_call for paid requests."
|
|
420
395
|
});
|
|
421
396
|
}
|
|
422
|
-
const
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
account
|
|
426
|
-
);
|
|
427
|
-
if (payloadResult.isErr()) {
|
|
428
|
-
return mcpError(payloadResult);
|
|
429
|
-
}
|
|
430
|
-
const siwxHeader = encodeSIWxHeader(payloadResult.value);
|
|
431
|
-
const authedRequest = buildRequest({
|
|
432
|
-
input,
|
|
433
|
-
address: account.address,
|
|
434
|
-
sessionId
|
|
435
|
-
});
|
|
436
|
-
authedRequest.headers.set("SIGN-IN-WITH-X", siwxHeader);
|
|
437
|
-
const authedResult = await safeFetch(
|
|
438
|
-
toolName2,
|
|
439
|
-
authedRequest,
|
|
440
|
-
input.timeout ?? DEFAULT_USER_FETCH_TIMEOUT
|
|
441
|
-
);
|
|
442
|
-
if (authedResult.isErr()) {
|
|
443
|
-
return mcpError(authedResult);
|
|
444
|
-
}
|
|
445
|
-
const authedResponse = authedResult.value;
|
|
446
|
-
if (!authedResponse.ok) {
|
|
447
|
-
return mcpErrorFetch(toolName2, authedResponse);
|
|
397
|
+
const { response } = value;
|
|
398
|
+
if (!response.ok) {
|
|
399
|
+
return mcpErrorFetch(toolName2, response);
|
|
448
400
|
}
|
|
449
|
-
const parseResponseResult = await safeParseResponse(
|
|
450
|
-
toolName2,
|
|
451
|
-
authedResponse
|
|
452
|
-
);
|
|
401
|
+
const parseResponseResult = await safeParseResponse(toolName2, response);
|
|
453
402
|
if (parseResponseResult.isErr()) {
|
|
454
403
|
return mcpError(parseResponseResult);
|
|
455
404
|
}
|
|
@@ -683,16 +632,15 @@ import { z as z6 } from "zod";
|
|
|
683
632
|
|
|
684
633
|
// src/shared/origins.ts
|
|
685
634
|
var ORIGINS = [
|
|
686
|
-
"https://
|
|
687
|
-
"https://
|
|
688
|
-
"https://
|
|
689
|
-
"https://
|
|
690
|
-
"https://
|
|
635
|
+
"https://stableenrich.dev" /* StableEnrich */,
|
|
636
|
+
"https://stablesocial.dev" /* StableSocial */,
|
|
637
|
+
"https://stablestudio.dev" /* StableStudio */,
|
|
638
|
+
"https://stableupload.dev" /* StableUpload */,
|
|
639
|
+
"https://stableemail.dev" /* StableEmail */,
|
|
640
|
+
"https://stablejobs.dev" /* StableJobs */,
|
|
691
641
|
"https://x402scan.com" /* X402Scan */,
|
|
692
642
|
"https://shirt.sh" /* Shirt */,
|
|
693
|
-
"https://x402puppet.com" /* X402Puppet
|
|
694
|
-
"https://x402facilitator.com" /* X402Facilitator */,
|
|
695
|
-
"https://stablejobs.dev" /* StableJobs */
|
|
643
|
+
"https://x402puppet.com" /* X402Puppet */
|
|
696
644
|
];
|
|
697
645
|
|
|
698
646
|
// src/server/tools/discover-resources.ts
|
|
@@ -705,7 +653,7 @@ function registerDiscoveryTools(server) {
|
|
|
705
653
|
description: `Find payment-protected resources on an origin. Returns a list of resource URLs.
|
|
706
654
|
Use check_endpoint_schema separately to get detailed pricing/schema info for specific resources.
|
|
707
655
|
Known default origins with resource packs. Discover if more needed:
|
|
708
|
-
- ${"https://
|
|
656
|
+
- ${"https://stableenrich.dev" /* StableEnrich */} ->
|
|
709
657
|
People + Org search
|
|
710
658
|
Google Maps (places + locations)
|
|
711
659
|
Grok twitter search
|
|
@@ -716,10 +664,10 @@ function registerDiscoveryTools(server) {
|
|
|
716
664
|
Email enrichment
|
|
717
665
|
Influencer email/username enrichment
|
|
718
666
|
Hunter email verifier
|
|
719
|
-
- ${"https://
|
|
720
|
-
- ${"https://stablestudio.
|
|
721
|
-
- ${"https://
|
|
722
|
-
- ${"https://
|
|
667
|
+
- ${"https://stablesocial.dev" /* StableSocial */} -> social media data for twitter, instagram, tiktok, youtube, facebook, reddit.
|
|
668
|
+
- ${"https://stablestudio.dev" /* StableStudio */} -> generate and edit images / videos
|
|
669
|
+
- ${"https://stableupload.dev" /* StableUpload */} -> upload and share files with others.
|
|
670
|
+
- ${"https://stableemail.dev" /* StableEmail */} -> send emails.
|
|
723
671
|
`,
|
|
724
672
|
inputSchema: z6.object({
|
|
725
673
|
url: z6.url().describe(
|
|
@@ -771,29 +719,33 @@ function registerDiscoveryTools(server) {
|
|
|
771
719
|
|
|
772
720
|
// src/server/resources/origins.ts
|
|
773
721
|
import z7 from "zod";
|
|
774
|
-
import { x402HTTPClient as
|
|
775
|
-
import { x402Client as
|
|
722
|
+
import { x402HTTPClient as x402HTTPClient2 } from "@x402/core/client";
|
|
723
|
+
import { x402Client as x402Client2 } from "@x402/core/client";
|
|
776
724
|
var ORIGIN_METADATA = {
|
|
777
|
-
["https://
|
|
778
|
-
title: "
|
|
725
|
+
["https://stableenrich.dev" /* StableEnrich */]: {
|
|
726
|
+
title: "StableEnrich",
|
|
779
727
|
description: "People/org search, Google Maps, Grok twitter search, Exa web search, LinkedIn data, Firecrawl scrape, WhitePages, email enrichment"
|
|
780
728
|
},
|
|
781
|
-
["https://
|
|
782
|
-
title: "
|
|
729
|
+
["https://stablesocial.dev" /* StableSocial */]: {
|
|
730
|
+
title: "StableSocial",
|
|
783
731
|
description: "Social media data for Twitter, Instagram, TikTok, YouTube, Facebook, Reddit"
|
|
784
732
|
},
|
|
785
|
-
["https://stablestudio.
|
|
733
|
+
["https://stablestudio.dev" /* StableStudio */]: {
|
|
786
734
|
title: "StableStudio",
|
|
787
735
|
description: "Generate and edit images and videos"
|
|
788
736
|
},
|
|
789
|
-
["https://
|
|
737
|
+
["https://stableupload.dev" /* StableUpload */]: {
|
|
790
738
|
title: "AgentUpload",
|
|
791
739
|
description: "Upload and share files"
|
|
792
740
|
},
|
|
793
|
-
["https://
|
|
794
|
-
title: "
|
|
741
|
+
["https://stableemail.dev" /* StableEmail */]: {
|
|
742
|
+
title: "StableEmail",
|
|
795
743
|
description: "Send emails"
|
|
796
744
|
},
|
|
745
|
+
["https://stablejobs.dev" /* StableJobs */]: {
|
|
746
|
+
title: "StableJobs",
|
|
747
|
+
description: "Search job postings"
|
|
748
|
+
},
|
|
797
749
|
["https://x402scan.com" /* X402Scan */]: {
|
|
798
750
|
title: "X402 Scan",
|
|
799
751
|
description: "x402 protocol explorer"
|
|
@@ -1002,7 +954,7 @@ var getResourceResponse = async (resource, request) => {
|
|
|
1002
954
|
}
|
|
1003
955
|
}
|
|
1004
956
|
if (protocols.includes("x402")) {
|
|
1005
|
-
const client = new
|
|
957
|
+
const client = new x402HTTPClient2(new x402Client2());
|
|
1006
958
|
const paymentRequiredResult = await safeGetPaymentRequired(
|
|
1007
959
|
surface,
|
|
1008
960
|
client,
|
|
@@ -1059,8 +1011,8 @@ If the user has an invite code, use \`redeem_invite\` to claim free USDC credits
|
|
|
1059
1011
|
|
|
1060
1012
|
Use \`discover_api_endpoints\` to find x402-protected endpoints on a target origin. For example:
|
|
1061
1013
|
|
|
1062
|
-
- \`${"https://
|
|
1063
|
-
- \`${"https://stablestudio.
|
|
1014
|
+
- \`${"https://stableenrich.dev" /* StableEnrich */}\` - Data enrichment APIs
|
|
1015
|
+
- \`${"https://stablestudio.dev" /* StableStudio */}\` - AI image generation APIs
|
|
1064
1016
|
|
|
1065
1017
|
This returns a list of available endpoints with their pricing and schemas.
|
|
1066
1018
|
|
|
@@ -1128,7 +1080,7 @@ var registerGettingStartedPrompt = ({ server }) => {
|
|
|
1128
1080
|
|
|
1129
1081
|
// src/server/prompts/enrich.ts
|
|
1130
1082
|
import { z as z8 } from "zod";
|
|
1131
|
-
var PROMPT_CONTENT2 = `To start, you should check this resource page: ${"https://
|
|
1083
|
+
var PROMPT_CONTENT2 = `To start, you should check this resource page: ${"https://stableenrich.dev" /* StableEnrich */}/llms.txt, which has access to all of the paid endpoints.
|
|
1132
1084
|
|
|
1133
1085
|
- You have access to the agentcash MCP server, which allows you to call paid endpoints which contain potentially extremely useful information.
|
|
1134
1086
|
- Here are the tools you have access to:
|
|
@@ -1174,16 +1126,16 @@ var PROMPT_CONTENT2 = `To start, you should check this resource page: ${"https:/
|
|
|
1174
1126
|
- You should use these paid endpoints to find useful information whenever possible.
|
|
1175
1127
|
- Opt to use the paid endpoints as often as possible, as they speed up your research and provide higher quality information than traditional WebFetch.
|
|
1176
1128
|
|
|
1177
|
-
- **IMPORTANT:** All the API endpoints below (Exa, Firecrawl, Clado, Google Maps, Apollo, Grok, Whitepages, Hunter) are accessed via mcp__x402__fetch. They are NOT separate MCP tools. Call them like: mcp__x402__fetch(url="${"https://
|
|
1129
|
+
- **IMPORTANT:** All the API endpoints below (Exa, Firecrawl, Clado, Google Maps, Apollo, Grok, Whitepages, Hunter) are accessed via mcp__x402__fetch. They are NOT separate MCP tools. Call them like: mcp__x402__fetch(url="${"https://stableenrich.dev" /* StableEnrich */}/api/clado/contacts-enrich", method="POST", body={...})
|
|
1178
1130
|
- Use the Exa and Firecrawl endpoints as advanced / better WebFetch. They will often return data that would otherwise return only javascript or blocked content.
|
|
1179
1131
|
- If you get a 403 or error when using WebSearch or WebFetch on a website, try with Exa/Firecrawl endpoints immediately as they likely can get around the blockage.
|
|
1180
1132
|
- Use the Clado endpoints (/api/clado/contacts-enrich, /api/clado/linkedin-scrape) to enrich information about people and find their linkedin or email addresses. If linkedin returns an error code, immediately try with the Clado endpoints.
|
|
1181
1133
|
- Use the Google Maps endpoints to find reviews, or other local information. Always attempt to include review information in your findings if relevant.
|
|
1182
|
-
- **Google Maps text-search/full endpoint:** When calling POST ${"https://
|
|
1134
|
+
- **Google Maps text-search/full endpoint:** When calling POST ${"https://stableenrich.dev" /* StableEnrich */}/api/google-maps/text-search/full, ALWAYS use maxResultCount=1-3, never 5. Using 5 produces too much context. If you get excessive context in the response, retry with maxResultCount=1.
|
|
1183
1135
|
- All these are REST API endpoints called via mcp__x402__fetch - do NOT attempt to call mcp__clado__*, mcp__exa__*, mcp__google_maps__*, etc. Those tools do not exist.
|
|
1184
1136
|
|
|
1185
1137
|
PAID ENDPOINTS:
|
|
1186
|
-
These endpoints are always available at ${"https://
|
|
1138
|
+
These endpoints are always available at ${"https://stableenrich.dev" /* StableEnrich */}. You should always fetch from this domain.`;
|
|
1187
1139
|
var INFER_TASK_INSTRUCTIONS = `No specific query was provided.
|
|
1188
1140
|
|
|
1189
1141
|
Your task:
|
|
@@ -1248,7 +1200,7 @@ import { dirname, join } from "path";
|
|
|
1248
1200
|
import { fileURLToPath } from "url";
|
|
1249
1201
|
function getVersion() {
|
|
1250
1202
|
if (true) {
|
|
1251
|
-
return "0.6.
|
|
1203
|
+
return "0.6.2";
|
|
1252
1204
|
}
|
|
1253
1205
|
const __dirname2 = dirname(fileURLToPath(import.meta.url));
|
|
1254
1206
|
const pkg = JSON.parse(
|
|
@@ -1256,17 +1208,17 @@ function getVersion() {
|
|
|
1256
1208
|
);
|
|
1257
1209
|
return pkg.version;
|
|
1258
1210
|
}
|
|
1259
|
-
var
|
|
1260
|
-
var DIST_TAG =
|
|
1211
|
+
var MCP_VERSION2 = getVersion();
|
|
1212
|
+
var DIST_TAG = MCP_VERSION2.includes("-beta") ? "beta" : "latest";
|
|
1261
1213
|
|
|
1262
1214
|
// src/server/lib/instructions.ts
|
|
1263
1215
|
function buildServerInstructions() {
|
|
1264
1216
|
return `Known API origins:
|
|
1265
|
-
- ${"https://
|
|
1266
|
-
- ${"https://
|
|
1267
|
-
- ${"https://stablestudio.
|
|
1268
|
-
- ${"https://
|
|
1269
|
-
- ${"https://
|
|
1217
|
+
- ${"https://stableenrich.dev" /* StableEnrich */} \u2014 People/org search, Google Maps, Grok twitter search, Exa web search, LinkedIn data, Firecrawl scrape, WhitePages, email enrichment, Hunter email verifier
|
|
1218
|
+
- ${"https://stablesocial.dev" /* StableSocial */} \u2014 Social media data (Twitter, Instagram, TikTok, YouTube, Facebook, Reddit)
|
|
1219
|
+
- ${"https://stablestudio.dev" /* StableStudio */} \u2014 Generate and edit images/videos
|
|
1220
|
+
- ${"https://stableupload.dev" /* StableUpload */} \u2014 Upload and share files
|
|
1221
|
+
- ${"https://stableemail.dev" /* StableEmail */} \u2014 Send emails
|
|
1270
1222
|
|
|
1271
1223
|
Workflow:
|
|
1272
1224
|
1. Use discover_api_endpoints to find available endpoints on an origin.
|
|
@@ -1300,7 +1252,7 @@ var startServer = async (flags) => {
|
|
|
1300
1252
|
const server = new McpServer(
|
|
1301
1253
|
{
|
|
1302
1254
|
name: "agentcash",
|
|
1303
|
-
version:
|
|
1255
|
+
version: MCP_VERSION2,
|
|
1304
1256
|
websiteUrl: "https://x402scan.com/mcp",
|
|
1305
1257
|
icons: [{ src: "https://x402scan.com/logo.svg" }],
|
|
1306
1258
|
...instructions && { instructions }
|
|
@@ -1345,4 +1297,4 @@ var startServer = async (flags) => {
|
|
|
1345
1297
|
export {
|
|
1346
1298
|
startServer
|
|
1347
1299
|
};
|
|
1348
|
-
//# sourceMappingURL=server-
|
|
1300
|
+
//# sourceMappingURL=server-AO2FSPPT.js.map
|