agentcash 0.13.1 → 0.13.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.
Files changed (104) hide show
  1. package/README.md +7 -1
  2. package/dist/cjs/run-server.cjs +3912 -5574
  3. package/dist/esm/{add-skill-3SHARVQA.js → add-skill-W277MI7L.js} +16 -16
  4. package/dist/esm/{bridge-55J4MKZR.js → bridge-EXVM6MMU.js} +13 -14
  5. package/dist/esm/{bridge-55J4MKZR.js.map → bridge-EXVM6MMU.js.map} +1 -1
  6. package/dist/esm/{check-V262JV5M.js → check-LTH3BZYQ.js} +12 -13
  7. package/dist/esm/{check-V262JV5M.js.map → check-LTH3BZYQ.js.map} +1 -1
  8. package/dist/esm/{chunk-DFHVSUHX.js → chunk-5CMVFNXO.js} +3 -3
  9. package/dist/esm/{chunk-23OVF3MX.js → chunk-5JBG33QY.js} +4 -4
  10. package/dist/esm/{chunk-QOYH6AOG.js → chunk-7AT3NXJ2.js} +2 -2
  11. package/dist/esm/{chunk-DPKUB6GL.js → chunk-AWFBYDYO.js} +7 -7
  12. package/dist/esm/{chunk-HFEYSQRZ.js → chunk-F3KGAMIA.js} +34 -19
  13. package/dist/esm/chunk-F3KGAMIA.js.map +1 -0
  14. package/dist/esm/{chunk-QLW6AJTF.js → chunk-H3L6DHOH.js} +4 -4
  15. package/dist/esm/{chunk-EJDPIURX.js → chunk-IL5RGDIX.js} +9 -9
  16. package/dist/esm/{chunk-Q5SPIJGE.js → chunk-IPBR36VR.js} +48 -29
  17. package/dist/esm/chunk-IPBR36VR.js.map +1 -0
  18. package/dist/esm/{chunk-6XGAIMNK.js → chunk-ISF2WVEZ.js} +2 -2
  19. package/dist/esm/{chunk-4JNU4ZDR.js → chunk-JAA6JEF2.js} +3 -3
  20. package/dist/esm/{chunk-GYJKIBJJ.js → chunk-JOIAQY6V.js} +5 -5
  21. package/dist/esm/{chunk-GKYODP7W.js → chunk-JX2XE6FD.js} +2 -2
  22. package/dist/esm/{chunk-TVSACMMH.js → chunk-KPJJSNZO.js} +7 -7
  23. package/dist/esm/{chunk-LNQRIXFK.js → chunk-KVSTJRSJ.js} +2 -2
  24. package/dist/esm/{chunk-DJLERI6R.js → chunk-MYWE3P7R.js} +5 -5
  25. package/dist/esm/{chunk-RVJ22H4S.js → chunk-NC4UN6IF.js} +2 -2
  26. package/dist/esm/{chunk-BYLBPP4V.js → chunk-O3OVWMBY.js} +8 -8
  27. package/dist/esm/{chunk-QZBSRYSW.js → chunk-PBVLTOFS.js} +3 -3
  28. package/dist/esm/{chunk-Y4VZACTC.js → chunk-QZCSZB7E.js} +6 -8
  29. package/dist/esm/{chunk-Y4VZACTC.js.map → chunk-QZCSZB7E.js.map} +1 -1
  30. package/dist/esm/chunk-TTAO2EJK.js +10 -0
  31. package/dist/esm/chunk-TTAO2EJK.js.map +1 -0
  32. package/dist/esm/{chunk-E5SPXKCI.js → chunk-UBVHQSSW.js} +9 -9
  33. package/dist/esm/{chunk-HOGMCHWI.js → chunk-UMYAGSWZ.js} +5 -5
  34. package/dist/esm/{chunk-BQRFNAMV.js → chunk-VX6PPHSN.js} +5 -5
  35. package/dist/esm/{chunk-X5AS5G23.js → chunk-WRMSVC2R.js} +2 -2
  36. package/dist/esm/{chunk-EMQMCXIC.js → chunk-X2JUL4S3.js} +3 -10
  37. package/dist/esm/chunk-X2JUL4S3.js.map +1 -0
  38. package/dist/esm/{chunk-TX4UYXJO.js → chunk-YIU364NZ.js} +3 -3
  39. package/dist/esm/{chunk-WUNL7OYW.js → chunk-YUGBFY4H.js} +3 -3
  40. package/dist/esm/{chunk-C7KWYVS3.js → chunk-YWNBUUBR.js} +53 -2
  41. package/dist/esm/chunk-YWNBUUBR.js.map +1 -0
  42. package/dist/esm/{discover-RV2HPYM3.js → discover-63V73SKH.js} +7 -7
  43. package/dist/esm/{fetch-5H6NJNO5.js → fetch-G2C4EUTP.js} +17 -18
  44. package/dist/esm/{fetch-5H6NJNO5.js.map → fetch-G2C4EUTP.js.map} +1 -1
  45. package/dist/esm/{fund-OTAWWC7N.js → fund-YCUI5KVH.js} +9 -11
  46. package/dist/esm/{fund-OTAWWC7N.js.map → fund-YCUI5KVH.js.map} +1 -1
  47. package/dist/esm/index.js +35 -35
  48. package/dist/esm/{install-BZLMXTQ6.js → install-OK4J2KEU.js} +12 -14
  49. package/dist/esm/{install-BZLMXTQ6.js.map → install-OK4J2KEU.js.map} +1 -1
  50. package/dist/esm/{onboard-DBENGNGV.js → onboard-SLU3CNO4.js} +17 -19
  51. package/dist/esm/{onboard-DBENGNGV.js.map → onboard-SLU3CNO4.js.map} +1 -1
  52. package/dist/esm/{origins-3AA7U2VW.js → origins-7KBHPH42.js} +10 -10
  53. package/dist/esm/register-HP4VTPU7.js +150 -0
  54. package/dist/esm/register-HP4VTPU7.js.map +1 -0
  55. package/dist/esm/{report-error-F44RFQ54.js → report-error-D3RRKDEC.js} +10 -12
  56. package/dist/esm/{report-error-F44RFQ54.js.map → report-error-D3RRKDEC.js.map} +1 -1
  57. package/dist/esm/{search-WTPHS4A3.js → search-G25PLCS2.js} +14 -15
  58. package/dist/esm/{search-WTPHS4A3.js.map → search-G25PLCS2.js.map} +1 -1
  59. package/dist/esm/{server-BR4W2YCH.js → server-KWXWCPIO.js} +36 -37
  60. package/dist/esm/{server-BR4W2YCH.js.map → server-KWXWCPIO.js.map} +1 -1
  61. package/dist/esm/{server-6V4NB65Q.js → server-QJNQOPBK.js} +2 -2
  62. package/dist/esm/{settings-SEZ65YUC.js → settings-RLSKK5RM.js} +3 -4
  63. package/dist/esm/{settings-SEZ65YUC.js.map → settings-RLSKK5RM.js.map} +1 -1
  64. package/dist/esm/{try-2KUOYSRY.js → try-JK56MOLD.js} +16 -17
  65. package/dist/esm/{try-2KUOYSRY.js.map → try-JK56MOLD.js.map} +1 -1
  66. package/dist/esm/{wallet-RZVO77IB.js → wallet-RWNVHHCO.js} +17 -19
  67. package/dist/esm/{wallet-RZVO77IB.js.map → wallet-RWNVHHCO.js.map} +1 -1
  68. package/package.json +7 -7
  69. package/dist/esm/chunk-C7KWYVS3.js.map +0 -1
  70. package/dist/esm/chunk-EMQMCXIC.js.map +0 -1
  71. package/dist/esm/chunk-HFEYSQRZ.js.map +0 -1
  72. package/dist/esm/chunk-NROPRHIC.js +0 -25
  73. package/dist/esm/chunk-NROPRHIC.js.map +0 -1
  74. package/dist/esm/chunk-Q5SPIJGE.js.map +0 -1
  75. package/dist/esm/chunk-VDBUUHJF.js +0 -58
  76. package/dist/esm/chunk-VDBUUHJF.js.map +0 -1
  77. package/dist/esm/register-NAPAV4G7.js +0 -64
  78. package/dist/esm/register-NAPAV4G7.js.map +0 -1
  79. /package/dist/esm/{add-skill-3SHARVQA.js.map → add-skill-W277MI7L.js.map} +0 -0
  80. /package/dist/esm/{chunk-DFHVSUHX.js.map → chunk-5CMVFNXO.js.map} +0 -0
  81. /package/dist/esm/{chunk-23OVF3MX.js.map → chunk-5JBG33QY.js.map} +0 -0
  82. /package/dist/esm/{chunk-QOYH6AOG.js.map → chunk-7AT3NXJ2.js.map} +0 -0
  83. /package/dist/esm/{chunk-DPKUB6GL.js.map → chunk-AWFBYDYO.js.map} +0 -0
  84. /package/dist/esm/{chunk-QLW6AJTF.js.map → chunk-H3L6DHOH.js.map} +0 -0
  85. /package/dist/esm/{chunk-EJDPIURX.js.map → chunk-IL5RGDIX.js.map} +0 -0
  86. /package/dist/esm/{chunk-6XGAIMNK.js.map → chunk-ISF2WVEZ.js.map} +0 -0
  87. /package/dist/esm/{chunk-4JNU4ZDR.js.map → chunk-JAA6JEF2.js.map} +0 -0
  88. /package/dist/esm/{chunk-GYJKIBJJ.js.map → chunk-JOIAQY6V.js.map} +0 -0
  89. /package/dist/esm/{chunk-GKYODP7W.js.map → chunk-JX2XE6FD.js.map} +0 -0
  90. /package/dist/esm/{chunk-TVSACMMH.js.map → chunk-KPJJSNZO.js.map} +0 -0
  91. /package/dist/esm/{chunk-LNQRIXFK.js.map → chunk-KVSTJRSJ.js.map} +0 -0
  92. /package/dist/esm/{chunk-DJLERI6R.js.map → chunk-MYWE3P7R.js.map} +0 -0
  93. /package/dist/esm/{chunk-RVJ22H4S.js.map → chunk-NC4UN6IF.js.map} +0 -0
  94. /package/dist/esm/{chunk-BYLBPP4V.js.map → chunk-O3OVWMBY.js.map} +0 -0
  95. /package/dist/esm/{chunk-QZBSRYSW.js.map → chunk-PBVLTOFS.js.map} +0 -0
  96. /package/dist/esm/{chunk-E5SPXKCI.js.map → chunk-UBVHQSSW.js.map} +0 -0
  97. /package/dist/esm/{chunk-HOGMCHWI.js.map → chunk-UMYAGSWZ.js.map} +0 -0
  98. /package/dist/esm/{chunk-BQRFNAMV.js.map → chunk-VX6PPHSN.js.map} +0 -0
  99. /package/dist/esm/{chunk-X5AS5G23.js.map → chunk-WRMSVC2R.js.map} +0 -0
  100. /package/dist/esm/{chunk-TX4UYXJO.js.map → chunk-YIU364NZ.js.map} +0 -0
  101. /package/dist/esm/{chunk-WUNL7OYW.js.map → chunk-YUGBFY4H.js.map} +0 -0
  102. /package/dist/esm/{discover-RV2HPYM3.js.map → discover-63V73SKH.js.map} +0 -0
  103. /package/dist/esm/{origins-3AA7U2VW.js.map → origins-7KBHPH42.js.map} +0 -0
  104. /package/dist/esm/{server-6V4NB65Q.js.map → server-QJNQOPBK.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/descriptions.ts"],"sourcesContent":["/**\n * Single source of truth for all LLM-facing text in the MCP package.\n *\n * `DESCRIPTIONS` covers every tool with both an `mcp` variant (detailed,\n * AI-audience) and a `cli` variant (concise, human-readable for --help).\n * `serverInstructions` is shared across both surfaces.\n *\n * Additional exports cover parameter/output schema descriptions, origin\n * metadata, and prompt content — all LLM-facing text in one place.\n */\n\nimport type { UserOrigin } from './user-origins';\nimport { Origin } from './origins';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Origin metadata (used for MCP resource registration descriptions)\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const ORIGIN_METADATA: Record<\n string,\n { title: string; description: string }\n> = {\n [Origin.StableEnrich]: {\n title: 'StableEnrich',\n description:\n 'People/org search, Google Maps, Exa web search, LinkedIn data, Firecrawl scrape, WhitePages, email enrichment',\n },\n [Origin.StableSocial]: {\n title: 'StableSocial',\n description:\n 'Social media data for Twitter, Instagram, TikTok, YouTube, Facebook, Reddit',\n },\n [Origin.StableStudio]: {\n title: 'StableStudio',\n description: 'Generate and edit images and videos',\n },\n [Origin.StableUpload]: {\n title: 'StableUpload',\n description: 'Pay to upload files, get a permanent download URL.',\n },\n [Origin.StableEmail]: {\n title: 'StableEmail',\n description: 'Send emails',\n },\n [Origin.X402Scan]: {\n title: 'X402 Scan',\n description: 'x402 protocol explorer',\n },\n [Origin.Shirt]: {\n title: 'Shirt',\n description: 'Shirt.sh',\n },\n [Origin.X402Puppet]: {\n title: 'X402 Puppet',\n description: 'Browser automation',\n },\n [Origin.X402Facilitator]: {\n title: 'X402 Facilitator',\n description: 'Payment facilitation',\n },\n [Origin.StableMerch]: {\n title: 'StableMerch',\n description:\n 'Create shirts and mugs with custom images and have them shipped to your address.',\n },\n};\n\nexport const PRIMARY_ORIGINS = [\n Origin.StableEnrich,\n Origin.StableSocial,\n Origin.StableStudio,\n Origin.StableUpload,\n Origin.StableEmail,\n Origin.StableMerch,\n] as const;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Tool descriptions — { mcp, cli } per tool + shared serverInstructions\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const DESCRIPTIONS = {\n bridge: {\n toolNames: {\n cli: 'bridge',\n mcp: 'bridge',\n },\n title: 'Bridge Between Networks',\n mcp: `Bridge USDC between supported networks using the current wallet. Requires a source network, destination network, and amount. Use this when funds are on one supported network and the user needs them moved to another. Bridging is subject to fees.`,\n cli: `Bridge USDC between supported networks using the current wallet. Requires --from, --to, and --amount. Bridging is subject to fees.`,\n },\n\n getBalance: {\n mcp: `Get your total USDC balance across all supported networks. Auto-creates the wallet on first use (~/.agentcash/wallet.json). Use this before paid API calls to confirm you have funds available.`,\n cli: `Get your total USDC balance across all supported networks. Creates the wallet on first use (~/.agentcash/wallet.json). Use this before paid API calls to confirm you have funds available.`,\n },\n\n fetch: {\n mcp: `HTTP fetch with automatic authentication and payment handling. Makes the request, retries with SIGN-IN-WITH-X when the route exposes a SIWX challenge, and only pays if the route still returns 402. Returns response data along with payment details (price, tx hash) if a payment was made.\\n\\nFor endpoints you haven't called before in this session, you MUST call check_endpoint_schema first to confirm the request body schema. Skipping this causes 400 errors from wrong field names.`,\n cli: `HTTP fetch with automatic authentication and payment handling. If the endpoint returns 402, agentcash attempts authentication first and only falls back to payment if the route still requires it. Run 'check <url>' first to confirm the request body schema; skipping this causes 400 errors from wrong field names.`,\n epilogue: `Workflow: check <url> → fetch <url> -m POST -b '{\"field\":\"value\"}'\\nAuth mode is advisory only; fetch handles both SIWX and paid routes.`,\n },\n\n fetchWithAuth: {\n mcp: `Deprecated alias for fetch. Uses the same unified flow: probe the route, attempt SIWX when available, and only pay if the route still returns 402.\\n\\nFor new integrations, prefer fetch.`,\n cli: `Deprecated alias for fetch. Uses the same unified auth-and-payment flow, but new integrations should call 'fetch' directly.`,\n epilogue: `Deprecated: use agentcash fetch <url>. This alias is kept for compatibility.`,\n },\n\n listAccounts: {\n mcp: `List wallet accounts for each supported network. Returns the network, address, balance, and deposit link for every supported network so you can see where to fund the wallet. Auto-creates the wallet on first use (~/.agentcash/wallet.json). If onboardingCta is present, show its message to the user — it means they haven't onboarded yet and need to either visit the onboard link or deposit directly.`,\n cli: `List wallet accounts for each supported network, including network, address, balance, and deposit link. Creates the wallet on first use (~/.agentcash/wallet.json). Use this when you need the per-network funding addresses and deposit links.`,\n },\n\n getWalletInfo: {\n mcp: `Legacy combined wallet view. Returns both the total balance and the per-network account list. Prefer calling get_balance for available funds and list_accounts when you need network-specific addresses or deposit links.`,\n cli: `Legacy combined wallet view. Returns both the total balance and the per-network account list. Prefer 'balance' for available funds and 'accounts' for network-specific addresses or deposit links.`,\n },\n\n checkEndpointSchema: {\n mcp: [\n `Get the input/output schema and auth mode (paid or SIWX) for a single endpoint.`,\n `Call this to see exactly what fields the request body expects and what the response contains.`,\n `Returns the schema from the origin's OpenAPI spec. Optionally pass sample_input_body to probe the endpoint live (without payment) for an exact price quote — do this when pricing is range-based or quote-based, or when you're unsure about the input schema. Treat auth mode as advisory: fetch handles both SIWX and paid routes.`,\n ].join('\\n\\n'),\n cli: `Get the input/output schema and auth mode (paid or SIWX) for an endpoint. Returns exact field names from the OpenAPI spec — call this before 'fetch' to avoid 400 errors. Pass --body to probe the endpoint live for an exact price quote when pricing is range-based or unclear.`,\n epilogue: `Auth mode is advisory:\\n paid → agentcash fetch <url>\\n SIWX → agentcash fetch <url>`,\n },\n\n discoverApiEndpoints: {\n mcp: [\n `List available endpoints at an API origin. Returns endpoint URLs with descriptions of what each does and the auth mode for each (paid or SIWX). Works with any origin, not just the registered ones.`,\n `Call this when you need to see what routes are available at an origin — whether it's one of the registered origins or any other origin you've identified as useful. Treat the auth mode as guidance for what the route may require; fetch handles both SIWX and payment.`,\n `The response always indicates whether guidance is available. Guidance is documentation published by the API provider explaining how endpoints work together, edge cases, and usage tips. compact guidance is included automatically; set include_guidance=true to force-include full usage documentation when you need to compose two or more endpoints or need clarification on how the origin works.`,\n ].join('\\n\\n'),\n cli: `List available endpoints at an API origin with descriptions and auth modes (paid or SIWX). Works with any origin, not just registered ones. Add --include-guidance for full provider docs when composing multiple endpoints or when usage is unclear. Fetch handles both auth modes.`,\n epilogue: `Registered origins:\\n${PRIMARY_ORIGINS.flatMap(o => (ORIGIN_METADATA[o] ? [` ${o} — ${ORIGIN_METADATA[o].description}`] : [])).join('\\n')}`,\n },\n\n redeemInvite: {\n mcp: `Redeem an invite code for free USDC on Base. One-time use per code. Returns amount received and transaction hash. Use get_balance after to verify funds, or list_accounts if you need the per-network deposit links as well.`,\n cli: `Redeem an invite code for free USDC on Base. One-time use per code. Run 'balance' after to verify the balance landed.`,\n },\n\n try: {\n cli: `Fetch a new origin for its resources and return a prompt guiding the user through the process of calling the first endpoint.`,\n },\n\n search: {\n mcp: `Search for relevant paid API services by describing what you need in natural language. Returns the best matching origins with endpoint details and pricing. The top result includes the full input/output schema so you can call it immediately via fetch.\n\nOnly use this when you DON'T already know which registered origin to use. If the task clearly maps to a registered origin (e.g. people search → StableEnrich, image generation → StableStudio), skip search and go straight to discover_api_endpoints on that origin. Search is for discovering NEW or UNKNOWN capabilities outside the registered origins.`,\n cli: `Search for paid API services by natural language query. Returns matching origins with endpoints and pricing. Use this to find APIs before calling discover or fetch.`,\n },\n\n reportError: {\n mcp: `EMERGENCY ONLY. Report critical MCP tool bugs. Do NOT use for normal errors (balance, network, 4xx) — those are recoverable.`,\n cli: `Report a critical bug to the agentcash team (emergency only). Do NOT use for normal errors like low balance, network timeouts, or 4xx responses — those are recoverable without filing a report.`,\n },\n\n updateSettings: {\n mcp: `Update user settings (persisted to ~/.agentcash/settings.json). Currently supports maxAmount — the maximum USD amount allowed per fetch request. If a fetch response requests more than this, the payment is rejected. Returns the current settings after applying changes.`,\n cli: `Update user settings (persisted to ~/.agentcash/settings.json). Currently supports maxAmount, which caps how much a single fetch request can spend.`,\n },\n\n getSettings: {\n mcp: `Get current user settings. Returns persisted values from ~/.agentcash/settings.json with defaults applied.`,\n cli: `Get current user settings from ~/.agentcash/settings.json, with defaults applied.`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Dynamic server instructions (includes user-added origins at runtime)\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst WORKFLOW = [\n `Workflow:`,\n `1. If you don't already know your balance, call get_balance. You need a balance for paid endpoints. SIWX endpoints don't require one. You don't need to call this every turn, just before your first paid call or whenever you're unsure.`,\n `2. If the balance is zero, or if the user needs a funding link or wallet addresses, call list_accounts and share the relevant deposit link. If onboardingCta is present, show it to the user.`,\n `3. If the task doesn't clearly map to any registered origin above, call search() to find relevant APIs. Skip this step when you already know the right origin — go straight to step 4.`,\n `4. Call discover_api_endpoints() to get the endpoint index — a list of available routes with descriptions and auth modes. The auth mode is advisory and tells you what the route may require.`,\n `5. Call check_endpoint_schema() to get the exact input/output schema and auth mode for the endpoint you want to call, so you know what fields to pass and what the response contains. Both discover_api_endpoints and check_endpoint_schema return the auth mode.`,\n `6. Call fetch with the correct input schema. It will attempt SIWX first when available and only pay if the route still returns 402.`,\n].join('\\n');\n\nexport function buildServerInstructions(\n userOrigins: UserOrigin[] = []\n): string {\n const allOrigins = [\n ...userOrigins.map(o => ` - ${o.url} — ${o.description}`),\n ...PRIMARY_ORIGINS.flatMap(o =>\n ORIGIN_METADATA[o] ? [` - ${o} — ${ORIGIN_METADATA[o].description}`] : []\n ),\n ].join('\\n');\n\n return [\n `AgentCash lets you call protected APIs — handling both x402 micropayments and SIWX authentication seamlessly. It manages a USDC wallet for paid endpoints and signs wallet proofs for identity-gated endpoints through fetch.`,\n `The user has installed agentcash because they want to use paid and SIWX-protected APIs as their preferred way to accomplish related tasks.`,\n `Paid endpoints require a wallet balance. SIWX endpoints are free — they only require a wallet identity.`,\n `If a task could be accomplished by one of these registered origins, run the workflow below. If you're unsure which origin to use, or the task doesn't match a registered origin, call search() to find relevant APIs.\\n${allOrigins}`,\n `discover_api_endpoints also works with any origin beyond this list. If you identify another origin that would be useful for a task, you can use it.`,\n WORKFLOW,\n `If you need to compose multiple endpoints in sequence, or anything about the origin's capabilities is unclear, call discover_api_endpoints with include_guidance=true to retrieve the origin's full usage documentation.`,\n ].join('\\n\\n');\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Shared request schema parameter descriptions\n// (used by fetch, fetch_with_auth tools)\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const REQUEST_PARAMS = {\n url: 'The endpoint URL',\n method: 'HTTP method. Defaults to GET for fetch operations.',\n body: 'Raw request body string. Passed through to the underlying fetch call as-is.',\n headers:\n 'Additional headers to include. Each entry must be a string in \"Name: value\" format.',\n timeout: 'Request timeout in milliseconds',\n} as const;\n\nexport const REQUEST_FETCH_PARAMS = {\n ...REQUEST_PARAMS,\n paymentProtocol:\n 'Payment protocol to use when payment is required. If not specified, the payment protocol will be auto-detected.',\n paymentNetwork:\n 'Chain to use for SIWX and payment when applicable. If not specified, the network will be auto-detected.',\n maxAmount:\n 'Maximum amount (in USD) to pay per request. Aborts if the endpoint requests more. Defaults to $5. Pass a higher value for known-expensive endpoints.',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Per-tool parameter and output schema descriptions\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const TOOL_PARAMS = {\n bridge: {\n from: 'The network to bridge from',\n to: 'The network to bridge to',\n amount: 'The amount of USDC to bridge',\n },\n fetch: REQUEST_FETCH_PARAMS,\n fetchWithAuth: REQUEST_FETCH_PARAMS,\n checkEndpointSchema: {\n ...REQUEST_PARAMS,\n method:\n 'HTTP method to check. If omitted, all methods declared in the spec are returned.',\n body: 'Optional. A sample request body to probe the endpoint live (without payment) for exact pricing. Use when pricing is range-based or quote-based, or when you need to verify the input schema. Omit to get the static schema and advisory pricing from the spec.',\n },\n try: {\n url: 'The origin URL to explore',\n },\n add: {\n url: 'The origin URL to add',\n },\n\n listAccounts: {\n output: {\n accounts: 'Wallet accounts for each supported network',\n address: 'Wallet address for this network',\n balance: 'USDC balance on this network',\n network: 'Supported payment network name',\n isNewWallet: 'Whether the wallet is new and needs to be funded',\n depositLink:\n 'Link to deposit USDC directly into the wallet for this network',\n onboardingCta:\n 'Present when the user has not yet redeemed an invite code. Show the message to the user — it directs them to onboard or deposit.',\n onboardingCtaOnboardLink: 'Link to the onboarding page',\n onboardingCtaDepositLink: 'Link to deposit USDC directly',\n onboardingCtaMessage: 'Human-readable CTA to show the user',\n },\n },\n\n redeemInvite: {\n code: 'The invite code',\n output: {\n amount: 'Amount with unit (e.g., \"5 USDC\")',\n txHash: 'Transaction hash on Base',\n },\n },\n\n search: {\n query:\n 'Natural language description of what you need (e.g. \"send physical mail\", \"generate music\", \"flight prices\")',\n },\n\n discoverApiEndpoints: {\n url: 'The origin URL to discover endpoints on (e.g. https://stableenrich.dev)',\n includeGuidance:\n \"Request the origin's usage guidance. true=always include, false=never include, omit=auto (included when compact). Guidance explains how to compose multiple endpoints and covers edge cases.\",\n },\n\n reportError: {\n tool: 'MCP tool name',\n resource: 'Resource URL',\n summary: '1-2 sentence summary',\n errorMessage: 'Error message',\n stack: 'Stack trace',\n fullReport: 'Detailed report with context, logs, repro steps',\n output: {\n reportId: 'Unique report ID for tracking',\n message: 'Confirmation message',\n },\n },\n} as const;\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  safeParseJson
3
- } from "./chunk-LNQRIXFK.js";
3
+ } from "./chunk-KVSTJRSJ.js";
4
4
  import {
5
5
  configFile
6
- } from "./chunk-VDBUUHJF.js";
6
+ } from "./chunk-YWNBUUBR.js";
7
7
 
8
8
  // src/shared/user-origins.ts
9
9
  import * as fs from "fs";
@@ -61,4 +61,4 @@ export {
61
61
  addUserOrigin,
62
62
  removeUserOrigin
63
63
  };
64
- //# sourceMappingURL=chunk-TX4UYXJO.js.map
64
+ //# sourceMappingURL=chunk-YIU364NZ.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  coreRequestSchema,
3
3
  fetchShape
4
- } from "./chunk-BQRFNAMV.js";
4
+ } from "./chunk-VX6PPHSN.js";
5
5
  import {
6
6
  REQUEST_PARAMS
7
- } from "./chunk-EMQMCXIC.js";
7
+ } from "./chunk-X2JUL4S3.js";
8
8
 
9
9
  // src/shared/request/schemas/cli.ts
10
10
  import z from "zod";
@@ -46,4 +46,4 @@ export {
46
46
  cliRequestSchema,
47
47
  cliFetchRequestSchema
48
48
  };
49
- //# sourceMappingURL=chunk-WUNL7OYW.js.map
49
+ //# sourceMappingURL=chunk-YUGBFY4H.js.map
@@ -500,10 +500,61 @@ function err2(type, surface, error) {
500
500
  });
501
501
  }
502
502
 
503
+ // src/shared/fs.ts
504
+ import { join } from "path";
505
+ import { homedir } from "os";
506
+ import * as fs from "fs";
507
+ var BASE_DIRECTORY = join(homedir(), ".agentcash");
508
+ var LEGACY_DIRECTORY = join(homedir(), ".x402scan-mcp");
509
+ function migrateFromLegacy() {
510
+ if (!fs.existsSync(LEGACY_DIRECTORY)) return;
511
+ const result = resultFromThrowable(
512
+ "migration",
513
+ "fs",
514
+ () => {
515
+ const files = fs.readdirSync(LEGACY_DIRECTORY);
516
+ for (const file of files) {
517
+ if (file.endsWith(".log")) continue;
518
+ const src = join(LEGACY_DIRECTORY, file);
519
+ const dest = join(BASE_DIRECTORY, file);
520
+ if (!fs.existsSync(dest) && fs.statSync(src).isFile()) {
521
+ fs.copyFileSync(src, dest);
522
+ const { mode } = fs.statSync(src);
523
+ fs.chmodSync(dest, mode);
524
+ }
525
+ }
526
+ },
527
+ (e) => ({
528
+ cause: "migration_failed",
529
+ message: `Failed to migrate: ${e instanceof Error ? e.message : String(e)}`
530
+ })
531
+ );
532
+ if (result.isErr()) {
533
+ console.error(
534
+ `[agentcash] Warning: failed to migrate files from ${LEGACY_DIRECTORY} to ${BASE_DIRECTORY}. Your wallet may still be at ${join(LEGACY_DIRECTORY, "wallet.json")} \u2014 copy it manually to ${join(BASE_DIRECTORY, "wallet.json")}. Error: ${result.error.message}`
535
+ );
536
+ }
537
+ }
538
+ var initialized = false;
539
+ function ensureBaseDir() {
540
+ if (initialized) return;
541
+ if (!fs.existsSync(BASE_DIRECTORY)) {
542
+ fs.mkdirSync(BASE_DIRECTORY, { recursive: true });
543
+ }
544
+ migrateFromLegacy();
545
+ initialized = true;
546
+ }
547
+ var configFile = (name) => {
548
+ ensureBaseDir();
549
+ const filePath = join(BASE_DIRECTORY, name);
550
+ return filePath;
551
+ };
552
+
503
553
  export {
504
554
  resultFromPromise,
505
555
  resultFromThrowable,
506
556
  ok2 as ok,
507
- err2 as err
557
+ err2 as err,
558
+ configFile
508
559
  };
509
- //# sourceMappingURL=chunk-C7KWYVS3.js.map
560
+ //# sourceMappingURL=chunk-YWNBUUBR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.es.js","../../../../internal/neverthrow/src/index.ts","../../src/shared/fs.ts"],"sourcesContent":["const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","import {\n ResultAsync as NeverthrowResultAsync,\n Result as NeverthrowResult,\n ok as neverthrowOk,\n err as neverthrowErr,\n okAsync as neverthrowOkAsync,\n errAsync as neverthrowErrAsync,\n} from 'neverthrow';\n\nimport type { ResultAsync, BaseError, Error, Result } from './types';\n\nexport function resultFromPromise<E extends BaseError, T = unknown>(\n type: string,\n surface: string,\n promise: Promise<T>,\n error: (e: unknown) => E\n): ResultAsync<T, E> {\n return NeverthrowResultAsync.fromPromise(promise, e => ({\n ...error(e),\n type,\n surface,\n }));\n}\n\nexport function resultFromThrowable<E extends BaseError, T = unknown>(\n type: string,\n surface: string,\n fn: () => T,\n error: (e: unknown) => E\n): Result<T, E> {\n return NeverthrowResult.fromThrowable(fn, e => ({\n ...error(e),\n type,\n surface,\n }))();\n}\n\nexport function resultFromSafePromise<E extends BaseError, T = unknown>(\n promise: Promise<T>\n): ResultAsync<T, E> {\n return NeverthrowResultAsync.fromSafePromise(promise);\n}\n\nexport function ok<T>(data: T) {\n return neverthrowOk(data);\n}\n\nexport function err<BE extends BaseError>(\n type: string,\n surface: string,\n error: BE\n) {\n return neverthrowErr<never, Error<BE>>({\n ...error,\n type,\n surface,\n });\n}\n\nexport function okAsync<T>(data: T): ResultAsync<T, never> {\n return neverthrowOkAsync(data);\n}\n\nexport function errAsync<E extends BaseError>(surface: string, error: E) {\n return neverthrowErrAsync({\n ...error,\n surface,\n });\n}\n","import { join } from 'path';\nimport { homedir } from 'os';\nimport * as fs from 'fs';\n\nimport { resultFromThrowable } from '@agentcash/neverthrow';\n\nconst BASE_DIRECTORY = join(homedir(), '.agentcash');\nconst LEGACY_DIRECTORY = join(homedir(), '.x402scan-mcp');\n\n/**\n * Auto-migrate files from ~/.x402scan-mcp/ to ~/.agentcash/\n * Copies wallet.json (and any other config) on first run after upgrade.\n * Only copies files that don't already exist in the new location.\n */\nfunction migrateFromLegacy(): void {\n if (!fs.existsSync(LEGACY_DIRECTORY)) return;\n\n const result = resultFromThrowable(\n 'migration',\n 'fs',\n () => {\n const files = fs.readdirSync(LEGACY_DIRECTORY);\n for (const file of files) {\n // Skip logs — not worth migrating\n if (file.endsWith('.log')) continue;\n\n const src = join(LEGACY_DIRECTORY, file);\n const dest = join(BASE_DIRECTORY, file);\n\n if (!fs.existsSync(dest) && fs.statSync(src).isFile()) {\n fs.copyFileSync(src, dest);\n // Preserve original permissions (wallet.json is 0600)\n const { mode } = fs.statSync(src);\n fs.chmodSync(dest, mode);\n }\n }\n },\n e => ({\n cause: 'migration_failed' as const,\n message: `Failed to migrate: ${e instanceof Error ? e.message : String(e)}`,\n })\n );\n\n if (result.isErr()) {\n console.error(\n `[agentcash] Warning: failed to migrate files from ${LEGACY_DIRECTORY} to ${BASE_DIRECTORY}. ` +\n `Your wallet may still be at ${join(LEGACY_DIRECTORY, 'wallet.json')} — copy it manually to ${join(BASE_DIRECTORY, 'wallet.json')}. ` +\n `Error: ${result.error.message}`\n );\n }\n}\n\nlet initialized = false;\n\n/**\n * Ensure the base directory exists and legacy files are migrated.\n * Runs once on first call; safe to call repeatedly.\n * Throws on failure — callers that need the filesystem (wallet, state)\n * should let this propagate. Optional consumers (logging) should\n * catch and degrade on their own.\n */\nfunction ensureBaseDir(): void {\n if (initialized) return;\n\n if (!fs.existsSync(BASE_DIRECTORY)) {\n fs.mkdirSync(BASE_DIRECTORY, { recursive: true });\n }\n\n migrateFromLegacy();\n initialized = true;\n}\n\nexport const configFile = (name: `${string}.${string}`) => {\n ensureBaseDir();\n const filePath = join(BASE_DIRECTORY, name);\n return filePath;\n};\n"],"mappings":"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","names":["v","ok","err","Result","fromThrowable","ok","err","ok","err"]}
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  discoverResources
3
- } from "./chunk-HOGMCHWI.js";
4
- import "./chunk-Y4VZACTC.js";
5
- import "./chunk-EMQMCXIC.js";
6
- import "./chunk-VDBUUHJF.js";
7
- import "./chunk-ITCDZXBZ.js";
3
+ } from "./chunk-UMYAGSWZ.js";
4
+ import "./chunk-X2JUL4S3.js";
8
5
  import "./chunk-FB5CMO3J.js";
9
6
  import {
10
7
  errorResponse,
11
8
  outputAndExit,
12
9
  successResponse
13
10
  } from "./chunk-7EBJ4BCH.js";
14
- import "./chunk-C7KWYVS3.js";
11
+ import "./chunk-QZCSZB7E.js";
12
+ import "./chunk-TTAO2EJK.js";
13
+ import "./chunk-YWNBUUBR.js";
14
+ import "./chunk-ITCDZXBZ.js";
15
15
 
16
16
  // src/cli/commands/discover.ts
17
17
  var discoverCommand = async (input) => {
@@ -34,4 +34,4 @@ var discoverCommand = async (input) => {
34
34
  export {
35
35
  discoverCommand
36
36
  };
37
- //# sourceMappingURL=discover-RV2HPYM3.js.map
37
+ //# sourceMappingURL=discover-63V73SKH.js.map
@@ -1,28 +1,24 @@
1
1
  import {
2
2
  cliFetchRequestSchema
3
- } from "./chunk-WUNL7OYW.js";
4
- import "./chunk-BQRFNAMV.js";
3
+ } from "./chunk-YUGBFY4H.js";
4
+ import "./chunk-VX6PPHSN.js";
5
+ import "./chunk-X2JUL4S3.js";
5
6
  import {
6
7
  executeFetch
7
- } from "./chunk-Q5SPIJGE.js";
8
- import "./chunk-GKYODP7W.js";
8
+ } from "./chunk-IPBR36VR.js";
9
+ import "./chunk-JX2XE6FD.js";
9
10
  import "./chunk-IKPLMFAK.js";
10
11
  import "./chunk-LNJIXYCU.js";
11
- import "./chunk-DJLERI6R.js";
12
+ import "./chunk-MYWE3P7R.js";
13
+ import {
14
+ safeParseResponse
15
+ } from "./chunk-PBVLTOFS.js";
12
16
  import {
13
17
  getWalletOrExit
14
- } from "./chunk-QOYH6AOG.js";
15
- import "./chunk-HFEYSQRZ.js";
18
+ } from "./chunk-7AT3NXJ2.js";
19
+ import "./chunk-F3KGAMIA.js";
16
20
  import "./chunk-NPJV7AMV.js";
17
- import "./chunk-LNQRIXFK.js";
18
- import "./chunk-Y4VZACTC.js";
19
- import "./chunk-EMQMCXIC.js";
20
- import "./chunk-VDBUUHJF.js";
21
- import "./chunk-ITCDZXBZ.js";
22
- import {
23
- safeParseResponse
24
- } from "./chunk-QZBSRYSW.js";
25
- import "./chunk-NROPRHIC.js";
21
+ import "./chunk-KVSTJRSJ.js";
26
22
  import "./chunk-FB5CMO3J.js";
27
23
  import {
28
24
  errorResponse,
@@ -30,7 +26,10 @@ import {
30
26
  outputAndExit,
31
27
  successResponse
32
28
  } from "./chunk-7EBJ4BCH.js";
33
- import "./chunk-C7KWYVS3.js";
29
+ import "./chunk-QZCSZB7E.js";
30
+ import "./chunk-TTAO2EJK.js";
31
+ import "./chunk-YWNBUUBR.js";
32
+ import "./chunk-ITCDZXBZ.js";
34
33
 
35
34
  // src/cli/commands/fetch.ts
36
35
  var SURFACE = "cli:fetch";
@@ -89,4 +88,4 @@ var fetchCommand = async (input) => {
89
88
  export {
90
89
  fetchCommand
91
90
  };
92
- //# sourceMappingURL=fetch-5H6NJNO5.js.map
91
+ //# sourceMappingURL=fetch-G2C4EUTP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n} from '@/cli/output';\n\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { executeFetch } from '@/operations/fetch';\nimport { cliFetchRequestSchema } from '@/shared/request/schemas/cli';\nimport { getWalletOrExit } from '../lib/get-wallet-or-exit';\n\nimport type z from 'zod';\nimport type { Command } from '@/types';\n\nconst SURFACE = 'cli:fetch';\n\nexport const fetchCommand: Command<\n z.input<typeof cliFetchRequestSchema>\n> = async input => {\n const requestInput = cliFetchRequestSchema.safeParse(input);\n if (!requestInput.success) {\n return outputAndExit(\n errorResponse({\n code: 'INVALID_INPUT',\n message: requestInput.error.message,\n surface: SURFACE,\n cause: 'validation',\n }),\n input\n );\n }\n const wallets = await getWalletOrExit(input);\n\n const fetchResult = await executeFetch(requestInput.data, {\n surface: SURFACE,\n wallets,\n flags: input,\n params: input,\n });\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), input);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: parseResult.match(\n data => ({\n statusCode: response.status,\n type: data.type,\n body:\n data.type === 'json' || data.type === 'text'\n ? data.data\n : undefined,\n }),\n () => ({ statusCode: response.status })\n ),\n }),\n input\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), input);\n }\n\n const parsedResponse = parseResponseResult.value;\n\n const data =\n parsedResponse.type === 'json' || parsedResponse.type === 'text'\n ? parsedResponse.data\n : { type: parsedResponse.type };\n\n outputAndExit(successResponse(data, paymentInfo), input);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU;AAET,IAAM,eAET,OAAM,UAAS;AACjB,QAAM,eAAe,sBAAsB,UAAU,KAAK;AAC1D,MAAI,CAAC,aAAa,SAAS;AACzB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,aAAa,MAAM;AAAA,QAC5B,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAE3C,QAAM,cAAc,MAAM,aAAa,aAAa,MAAM;AAAA,IACxD,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,CAAC;AAED,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,EAAE,UAAU,YAAY,IAAI,YAAY;AAE9C,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,YAAY;AAAA,UACnB,CAAAA,WAAS;AAAA,YACP,YAAY,SAAS;AAAA,YACrB,MAAMA,MAAK;AAAA,YACX,MACEA,MAAK,SAAS,UAAUA,MAAK,SAAS,SAClCA,MAAK,OACL;AAAA,UACR;AAAA,UACA,OAAO,EAAE,YAAY,SAAS,OAAO;AAAA,QACvC;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM,kBAAkB,SAAS,QAAQ;AACrE,MAAI,oBAAoB,MAAM,GAAG;AAC/B,WAAO,cAAc,oBAAoB,mBAAmB,GAAG,KAAK;AAAA,EACtE;AAEA,QAAM,iBAAiB,oBAAoB;AAE3C,QAAM,OACJ,eAAe,SAAS,UAAU,eAAe,SAAS,SACtD,eAAe,OACf,EAAE,MAAM,eAAe,KAAK;AAElC,gBAAc,gBAAgB,MAAM,WAAW,GAAG,KAAK;AACzD;","names":["data"]}
1
+ {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n} from '@/cli/output';\n\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { executeFetch } from '@/operations/fetch';\nimport { cliFetchRequestSchema } from '@/shared/request/schemas/cli';\nimport { getWalletOrExit } from '../lib/get-wallet-or-exit';\n\nimport type z from 'zod';\nimport type { Command } from '@/types';\n\nconst SURFACE = 'cli:fetch';\n\nexport const fetchCommand: Command<\n z.input<typeof cliFetchRequestSchema>\n> = async input => {\n const requestInput = cliFetchRequestSchema.safeParse(input);\n if (!requestInput.success) {\n return outputAndExit(\n errorResponse({\n code: 'INVALID_INPUT',\n message: requestInput.error.message,\n surface: SURFACE,\n cause: 'validation',\n }),\n input\n );\n }\n const wallets = await getWalletOrExit(input);\n\n const fetchResult = await executeFetch(requestInput.data, {\n surface: SURFACE,\n wallets,\n flags: input,\n params: input,\n });\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), input);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: parseResult.match(\n data => ({\n statusCode: response.status,\n type: data.type,\n body:\n data.type === 'json' || data.type === 'text'\n ? data.data\n : undefined,\n }),\n () => ({ statusCode: response.status })\n ),\n }),\n input\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), input);\n }\n\n const parsedResponse = parseResponseResult.value;\n\n const data =\n parsedResponse.type === 'json' || parsedResponse.type === 'text'\n ? parsedResponse.data\n : { type: parsedResponse.type };\n\n outputAndExit(successResponse(data, paymentInfo), input);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU;AAET,IAAM,eAET,OAAM,UAAS;AACjB,QAAM,eAAe,sBAAsB,UAAU,KAAK;AAC1D,MAAI,CAAC,aAAa,SAAS;AACzB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,aAAa,MAAM;AAAA,QAC5B,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAE3C,QAAM,cAAc,MAAM,aAAa,aAAa,MAAM;AAAA,IACxD,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,CAAC;AAED,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,EAAE,UAAU,YAAY,IAAI,YAAY;AAE9C,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,YAAY;AAAA,UACnB,CAAAA,WAAS;AAAA,YACP,YAAY,SAAS;AAAA,YACrB,MAAMA,MAAK;AAAA,YACX,MACEA,MAAK,SAAS,UAAUA,MAAK,SAAS,SAClCA,MAAK,OACL;AAAA,UACR;AAAA,UACA,OAAO,EAAE,YAAY,SAAS,OAAO;AAAA,QACvC;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM,kBAAkB,SAAS,QAAQ;AACrE,MAAI,oBAAoB,MAAM,GAAG;AAC/B,WAAO,cAAc,oBAAoB,mBAAmB,GAAG,KAAK;AAAA,EACtE;AAEA,QAAM,iBAAiB,oBAAoB;AAE3C,QAAM,OACJ,eAAe,SAAS,UAAU,eAAe,SAAS,SACtD,eAAe,OACf,EAAE,MAAM,eAAe,KAAK;AAElC,gBAAc,gBAAgB,MAAM,WAAW,GAAG,KAAK;AACzD;","names":["data"]}
@@ -1,22 +1,20 @@
1
1
  import {
2
2
  promptDeposit
3
- } from "./chunk-GYJKIBJJ.js";
3
+ } from "./chunk-JOIAQY6V.js";
4
4
  import "./chunk-DZNSJ2BA.js";
5
- import "./chunk-DPKUB6GL.js";
6
- import "./chunk-6XGAIMNK.js";
5
+ import "./chunk-AWFBYDYO.js";
6
+ import "./chunk-ISF2WVEZ.js";
7
+ import "./chunk-PBVLTOFS.js";
7
8
  import {
8
9
  getWallet
9
- } from "./chunk-HFEYSQRZ.js";
10
+ } from "./chunk-F3KGAMIA.js";
10
11
  import "./chunk-NPJV7AMV.js";
11
- import "./chunk-LNQRIXFK.js";
12
+ import "./chunk-KVSTJRSJ.js";
12
13
  import {
13
14
  log
14
- } from "./chunk-Y4VZACTC.js";
15
- import "./chunk-VDBUUHJF.js";
15
+ } from "./chunk-QZCSZB7E.js";
16
+ import "./chunk-YWNBUUBR.js";
16
17
  import "./chunk-ITCDZXBZ.js";
17
- import "./chunk-QZBSRYSW.js";
18
- import "./chunk-NROPRHIC.js";
19
- import "./chunk-C7KWYVS3.js";
20
18
 
21
19
  // src/cli/commands/fund.ts
22
20
  import { intro, log as clackLog, outro } from "@clack/prompts";
@@ -36,4 +34,4 @@ var fundMcpServer = async (args) => {
36
34
  export {
37
35
  fundMcpServer
38
36
  };
39
- //# sourceMappingURL=fund-OTAWWC7N.js.map
37
+ //# sourceMappingURL=fund-YCUI5KVH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fund.ts"],"sourcesContent":["import type { Command } from '@/types';\nimport { intro, log as clackLog, outro } from '@clack/prompts';\nimport chalk from 'chalk';\nimport { promptDeposit } from '@/cli/lib/deposit';\nimport { log } from '@/shared/log';\nimport { getWallet } from '@/wallet';\n\nexport const fundMcpServer: Command = async args => {\n intro(chalk.bold(`Fund ${chalk.hex('#2563eb')('agentcash MCP')}`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(walletResult.error.message);\n clackLog.error(walletResult.error.message);\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n await promptDeposit('fund', args, walletResult.value);\n\n outro(chalk.bold.green('Your agentcash MCP server is funded!'));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,SAAS,OAAO,OAAO,UAAU,aAAa;AAC9C,OAAO,WAAW;AAKX,IAAM,gBAAyB,OAAM,SAAQ;AAClD,QAAM,MAAM,KAAK,QAAQ,MAAM,IAAI,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;AAEjE,QAAM,eAAe,MAAM,UAAU;AAErC,MAAI,aAAa,MAAM,GAAG;AACxB,QAAI,MAAM,aAAa,MAAM,OAAO;AACpC,aAAS,MAAM,aAAa,MAAM,OAAO;AACzC,UAAM,MAAM,KAAK,IAAI,sBAAsB,CAAC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,QAAQ,MAAM,aAAa,KAAK;AAEpD,QAAM,MAAM,KAAK,MAAM,sCAAsC,CAAC;AAChE;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/fund.ts"],"sourcesContent":["import type { Command } from '@/types';\nimport { intro, log as clackLog, outro } from '@clack/prompts';\nimport chalk from 'chalk';\nimport { promptDeposit } from '@/cli/lib/deposit';\nimport { log } from '@/shared/log';\nimport { getWallet } from '@/wallet';\n\nexport const fundMcpServer: Command = async args => {\n intro(chalk.bold(`Fund ${chalk.hex('#2563eb')('agentcash MCP')}`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(walletResult.error.message);\n clackLog.error(walletResult.error.message);\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n await promptDeposit('fund', args, walletResult.value);\n\n outro(chalk.bold.green('Your agentcash MCP server is funded!'));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA,SAAS,OAAO,OAAO,UAAU,aAAa;AAC9C,OAAO,WAAW;AAKX,IAAM,gBAAyB,OAAM,SAAQ;AAClD,QAAM,MAAM,KAAK,QAAQ,MAAM,IAAI,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;AAEjE,QAAM,eAAe,MAAM,UAAU;AAErC,MAAI,aAAa,MAAM,GAAG;AACxB,QAAI,MAAM,aAAa,MAAM,OAAO;AACpC,aAAS,MAAM,aAAa,MAAM,OAAO;AACzC,UAAM,MAAM,KAAK,IAAI,sBAAsB,CAAC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,QAAQ,MAAM,aAAa,KAAK;AAEpD,QAAM,MAAM,KAAK,MAAM,sCAAsC,CAAC;AAChE;","names":[]}