agentcash 0.9.0 → 0.9.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 (52) hide show
  1. package/dist/cjs/run-server.cjs +30 -10
  2. package/dist/esm/{add-skill-CPSJHRFF.js → add-skill-U34U44YC.js} +5 -4
  3. package/dist/esm/{add-skill-CPSJHRFF.js.map → add-skill-U34U44YC.js.map} +1 -1
  4. package/dist/esm/{check-YVZ3KR2P.js → check-DXJXBWT2.js} +5 -4
  5. package/dist/esm/{check-YVZ3KR2P.js.map → check-DXJXBWT2.js.map} +1 -1
  6. package/dist/esm/{chunk-YC3QM3JN.js → chunk-6ZASEAWN.js} +2 -2
  7. package/dist/esm/{chunk-M7G7WGN7.js → chunk-CGFED7FU.js} +2 -2
  8. package/dist/esm/{chunk-VC5CLABO.js → chunk-G5IKWSIV.js} +2 -2
  9. package/dist/esm/chunk-GQTOWVH6.js +7 -0
  10. package/dist/esm/{chunk-IB75YFBW.js → chunk-IMJKJGRG.js} +2 -2
  11. package/dist/esm/{chunk-NEJKY3UL.js → chunk-KFJDRCNE.js} +7 -2
  12. package/dist/esm/{chunk-NEJKY3UL.js.map → chunk-KFJDRCNE.js.map} +1 -1
  13. package/dist/esm/{chunk-7QBTMZ6P.js → chunk-OJ7TLSTP.js} +2 -2
  14. package/dist/esm/{chunk-6RYCEJR7.js → chunk-PGMMXO5J.js} +14 -2
  15. package/dist/esm/{chunk-6RYCEJR7.js.map → chunk-PGMMXO5J.js.map} +1 -1
  16. package/dist/esm/chunk-TTAO2EJK.js +10 -0
  17. package/dist/esm/chunk-TTAO2EJK.js.map +1 -0
  18. package/dist/esm/{chunk-EW25ERKW.js → chunk-UJO2BWV6.js} +2 -2
  19. package/dist/esm/{fetch-VUI7TYUI.js → fetch-4X4N7TSG.js} +8 -7
  20. package/dist/esm/{fetch-VUI7TYUI.js.map → fetch-4X4N7TSG.js.map} +1 -1
  21. package/dist/esm/{fetch-auth-KEO66U6Q.js → fetch-auth-R54NXQBZ.js} +5 -4
  22. package/dist/esm/{fetch-auth-KEO66U6Q.js.map → fetch-auth-R54NXQBZ.js.map} +1 -1
  23. package/dist/esm/index.js +21 -20
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/{install-NNR5PKP2.js → install-GB7Z3Y7Y.js} +3 -3
  26. package/dist/esm/{onboard-ACBXF5EZ.js → onboard-IOSC3DTG.js} +5 -5
  27. package/dist/esm/{origins-EYBTV3GF.js → origins-GFGI6TY3.js} +5 -4
  28. package/dist/esm/{origins-EYBTV3GF.js.map → origins-GFGI6TY3.js.map} +1 -1
  29. package/dist/esm/{report-error-4R6Z2DGD.js → report-error-CSI2EPQJ.js} +7 -6
  30. package/dist/esm/{report-error-4R6Z2DGD.js.map → report-error-CSI2EPQJ.js.map} +1 -1
  31. package/dist/esm/{server-ANESRI52.js → server-EM2KLQJY.js} +2 -2
  32. package/dist/esm/{server-7EZORMAF.js → server-QT37RZYD.js} +15 -10
  33. package/dist/esm/server-QT37RZYD.js.map +1 -0
  34. package/dist/esm/{settings-LUYHCU5T.js → settings-I7MPPOB7.js} +4 -3
  35. package/dist/esm/{settings-LUYHCU5T.js.map → settings-I7MPPOB7.js.map} +1 -1
  36. package/dist/esm/{try-HRKABFHO.js → try-2XWGGAAP.js} +7 -6
  37. package/dist/esm/{try-HRKABFHO.js.map → try-2XWGGAAP.js.map} +1 -1
  38. package/dist/esm/{wallet-DNW6DBSU.js → wallet-3ZWXDQNE.js} +7 -6
  39. package/dist/esm/{wallet-DNW6DBSU.js.map → wallet-3ZWXDQNE.js.map} +1 -1
  40. package/package.json +3 -3
  41. package/dist/esm/chunk-JM7J5ZIS.js +0 -7
  42. package/dist/esm/server-7EZORMAF.js.map +0 -1
  43. /package/dist/esm/{chunk-YC3QM3JN.js.map → chunk-6ZASEAWN.js.map} +0 -0
  44. /package/dist/esm/{chunk-M7G7WGN7.js.map → chunk-CGFED7FU.js.map} +0 -0
  45. /package/dist/esm/{chunk-VC5CLABO.js.map → chunk-G5IKWSIV.js.map} +0 -0
  46. /package/dist/esm/{chunk-JM7J5ZIS.js.map → chunk-GQTOWVH6.js.map} +0 -0
  47. /package/dist/esm/{chunk-IB75YFBW.js.map → chunk-IMJKJGRG.js.map} +0 -0
  48. /package/dist/esm/{chunk-7QBTMZ6P.js.map → chunk-OJ7TLSTP.js.map} +0 -0
  49. /package/dist/esm/{chunk-EW25ERKW.js.map → chunk-UJO2BWV6.js.map} +0 -0
  50. /package/dist/esm/{install-NNR5PKP2.js.map → install-GB7Z3Y7Y.js.map} +0 -0
  51. /package/dist/esm/{onboard-ACBXF5EZ.js.map → onboard-IOSC3DTG.js.map} +0 -0
  52. /package/dist/esm/{server-ANESRI52.js.map → server-EM2KLQJY.js.map} +0 -0
@@ -1,25 +1,26 @@
1
1
  import {
2
2
  createFetchWithPayment
3
- } from "./chunk-6RYCEJR7.js";
3
+ } from "./chunk-PGMMXO5J.js";
4
4
  import {
5
5
  MCP_VERSION
6
- } from "./chunk-M7G7WGN7.js";
6
+ } from "./chunk-CGFED7FU.js";
7
7
  import "./chunk-6FEDQ4HI.js";
8
8
  import "./chunk-RAFN7MFS.js";
9
9
  import "./chunk-OKHBFFZP.js";
10
- import "./chunk-JM7J5ZIS.js";
10
+ import "./chunk-GQTOWVH6.js";
11
11
  import "./chunk-G3AVBW3H.js";
12
12
  import {
13
13
  getWalletOrExit,
14
14
  parseRequestInput
15
- } from "./chunk-7QBTMZ6P.js";
15
+ } from "./chunk-OJ7TLSTP.js";
16
16
  import "./chunk-FRPTMW3B.js";
17
17
  import {
18
18
  buildRequest
19
- } from "./chunk-IB75YFBW.js";
19
+ } from "./chunk-IMJKJGRG.js";
20
20
  import "./chunk-4AS5OYMF.js";
21
- import "./chunk-NEJKY3UL.js";
21
+ import "./chunk-KFJDRCNE.js";
22
22
  import "./chunk-7HVLEKUI.js";
23
+ import "./chunk-TTAO2EJK.js";
23
24
  import "./chunk-P3Z6XR5A.js";
24
25
  import "./chunk-M6OXSG34.js";
25
26
  import "./chunk-VDBUUHJF.js";
@@ -115,4 +116,4 @@ function extractJsonErrorMessage(body) {
115
116
  export {
116
117
  fetchCommand
117
118
  };
118
- //# sourceMappingURL=fetch-VUI7TYUI.js.map
119
+ //# sourceMappingURL=fetch-4X4N7TSG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import { randomBytes } from 'crypto';\n\nimport {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { buildRequest } from '@/server/tools/lib/request';\nimport { MCP_VERSION } from '@/shared/version';\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { createFetchWithPayment } from '@/operations/fetch-with-payment';\nimport { getWalletOrExit, parseRequestInput } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\nimport type { JsonObject } from '@/shared/neverthrow/json/types';\nimport type { PaymentProtocol } from '@/shared/protocols/types';\nimport type { Network } from '@agentcash/networks';\n\nconst SURFACE = 'cli:fetch';\n\ninterface FetchArgs {\n url: string;\n method?: string;\n body?: string;\n headers?: string;\n paymentMethod?: PaymentProtocol;\n paymentNetwork?: Network;\n maxAmount?: number;\n}\n\nexport async function fetchCommand(\n args: FetchArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const wallets = await getWalletOrExit(flags);\n const sessionId = randomBytes(16).toString('hex');\n\n const input = parseRequestInput(SURFACE, args, flags);\n\n const provider = flags.provider ?? `agentcash@${MCP_VERSION}`;\n\n const request = buildRequest({\n input,\n wallets,\n sessionId,\n provider,\n });\n\n const fetchResult = await createFetchWithPayment({\n surface: SURFACE,\n wallets,\n flags,\n paymentMethod: args.paymentMethod,\n paymentNetwork: args.paymentNetwork,\n maxAmount: args.maxAmount,\n })(request);\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), flags);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n const details: JsonObject = { statusCode: response.status };\n let serverMessage: string | undefined;\n if (parseResult.isOk()) {\n const { type } = parseResult.value;\n if (type === 'json') {\n details.body = parseResult.value.data;\n serverMessage = extractJsonErrorMessage(parseResult.value.data);\n } else if (type === 'text') {\n details.body = parseResult.value.data;\n serverMessage = parseResult.value.data;\n } else {\n details.bodyType = type;\n }\n }\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: serverMessage ?? response.statusText,\n surface: SURFACE,\n cause: 'http',\n details,\n }),\n flags\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), flags);\n }\n\n // Build response data\n const data =\n parseResponseResult.value.type === 'json'\n ? parseResponseResult.value.data\n : parseResponseResult.value.type === 'text'\n ? parseResponseResult.value.data\n : { type: parseResponseResult.value.type };\n\n // Build metadata from paymentInfo\n const metadata = paymentInfo\n ? {\n protocol: paymentInfo.protocol,\n ...(paymentInfo.price ? { price: paymentInfo.price } : {}),\n ...(paymentInfo.payment ? { payment: paymentInfo.payment } : {}),\n }\n : undefined;\n\n outputAndExit(successResponse(data, metadata), flags);\n}\n\n/**\n * Extract an error message from a JSON response body.\n * Handles common patterns: { error: \"msg\" }, { error: { message: \"msg\" } }, { message: \"msg\" }\n */\nfunction extractJsonErrorMessage(body: JsonObject): string | undefined {\n if (typeof body === 'object' && body !== null) {\n const obj = body as Record<string, unknown>;\n if (typeof obj.error === 'string') return obj.error;\n if (\n typeof obj.error === 'object' &&\n obj.error !== null &&\n typeof (obj.error as Record<string, unknown>).message === 'string'\n ) {\n return (obj.error as Record<string, unknown>).message as string;\n }\n if (typeof obj.message === 'string') return obj.message;\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,mBAAmB;AAqB5B,IAAM,UAAU;AAYhB,eAAsB,aACpB,MACA,OACe;AACf,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAC3C,QAAM,YAAY,YAAY,EAAE,EAAE,SAAS,KAAK;AAEhD,QAAM,QAAQ,kBAAkB,SAAS,MAAM,KAAK;AAEpD,QAAM,WAAW,MAAM,YAAY,aAAa,WAAW;AAE3D,QAAM,UAAU,aAAa;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,cAAc,MAAM,uBAAuB;AAAA,IAC/C,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,eAAe,KAAK;AAAA,IACpB,gBAAgB,KAAK;AAAA,IACrB,WAAW,KAAK;AAAA,EAClB,CAAC,EAAE,OAAO;AAEV,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,UAAM,UAAsB,EAAE,YAAY,SAAS,OAAO;AAC1D,QAAI;AACJ,QAAI,YAAY,KAAK,GAAG;AACtB,YAAM,EAAE,KAAK,IAAI,YAAY;AAC7B,UAAI,SAAS,QAAQ;AACnB,gBAAQ,OAAO,YAAY,MAAM;AACjC,wBAAgB,wBAAwB,YAAY,MAAM,IAAI;AAAA,MAChE,WAAW,SAAS,QAAQ;AAC1B,gBAAQ,OAAO,YAAY,MAAM;AACjC,wBAAgB,YAAY,MAAM;AAAA,MACpC,OAAO;AACL,gBAAQ,WAAW;AAAA,MACrB;AAAA,IACF;AACA,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,iBAAiB,SAAS;AAAA,QACnC,SAAS;AAAA,QACT,OAAO;AAAA,QACP;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;AAGA,QAAM,OACJ,oBAAoB,MAAM,SAAS,SAC/B,oBAAoB,MAAM,OAC1B,oBAAoB,MAAM,SAAS,SACjC,oBAAoB,MAAM,OAC1B,EAAE,MAAM,oBAAoB,MAAM,KAAK;AAG/C,QAAM,WAAW,cACb;AAAA,IACE,UAAU,YAAY;AAAA,IACtB,GAAI,YAAY,QAAQ,EAAE,OAAO,YAAY,MAAM,IAAI,CAAC;AAAA,IACxD,GAAI,YAAY,UAAU,EAAE,SAAS,YAAY,QAAQ,IAAI,CAAC;AAAA,EAChE,IACA;AAEJ,gBAAc,gBAAgB,MAAM,QAAQ,GAAG,KAAK;AACtD;AAMA,SAAS,wBAAwB,MAAsC;AACrE,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,QAAI,OAAO,IAAI,UAAU,SAAU,QAAO,IAAI;AAC9C,QACE,OAAO,IAAI,UAAU,YACrB,IAAI,UAAU,QACd,OAAQ,IAAI,MAAkC,YAAY,UAC1D;AACA,aAAQ,IAAI,MAAkC;AAAA,IAChD;AACA,QAAI,OAAO,IAAI,YAAY,SAAU,QAAO,IAAI;AAAA,EAClD;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import { randomBytes } from 'crypto';\n\nimport {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { buildRequest } from '@/server/tools/lib/request';\nimport { MCP_VERSION } from '@/shared/version';\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { createFetchWithPayment } from '@/operations/fetch-with-payment';\nimport { getWalletOrExit, parseRequestInput } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\nimport type { JsonObject } from '@/shared/neverthrow/json/types';\nimport type { PaymentProtocol } from '@/shared/protocols/types';\nimport type { Network } from '@agentcash/networks';\n\nconst SURFACE = 'cli:fetch';\n\ninterface FetchArgs {\n url: string;\n method?: string;\n body?: string;\n headers?: string;\n paymentMethod?: PaymentProtocol;\n paymentNetwork?: Network;\n maxAmount?: number;\n}\n\nexport async function fetchCommand(\n args: FetchArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const wallets = await getWalletOrExit(flags);\n const sessionId = randomBytes(16).toString('hex');\n\n const input = parseRequestInput(SURFACE, args, flags);\n\n const provider = flags.provider ?? `agentcash@${MCP_VERSION}`;\n\n const request = buildRequest({\n input,\n wallets,\n sessionId,\n provider,\n });\n\n const fetchResult = await createFetchWithPayment({\n surface: SURFACE,\n wallets,\n flags,\n paymentMethod: args.paymentMethod,\n paymentNetwork: args.paymentNetwork,\n maxAmount: args.maxAmount,\n })(request);\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), flags);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n const details: JsonObject = { statusCode: response.status };\n let serverMessage: string | undefined;\n if (parseResult.isOk()) {\n const { type } = parseResult.value;\n if (type === 'json') {\n details.body = parseResult.value.data;\n serverMessage = extractJsonErrorMessage(parseResult.value.data);\n } else if (type === 'text') {\n details.body = parseResult.value.data;\n serverMessage = parseResult.value.data;\n } else {\n details.bodyType = type;\n }\n }\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: serverMessage ?? response.statusText,\n surface: SURFACE,\n cause: 'http',\n details,\n }),\n flags\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), flags);\n }\n\n // Build response data\n const data =\n parseResponseResult.value.type === 'json'\n ? parseResponseResult.value.data\n : parseResponseResult.value.type === 'text'\n ? parseResponseResult.value.data\n : { type: parseResponseResult.value.type };\n\n // Build metadata from paymentInfo\n const metadata = paymentInfo\n ? {\n protocol: paymentInfo.protocol,\n ...(paymentInfo.price ? { price: paymentInfo.price } : {}),\n ...(paymentInfo.payment ? { payment: paymentInfo.payment } : {}),\n }\n : undefined;\n\n outputAndExit(successResponse(data, metadata), flags);\n}\n\n/**\n * Extract an error message from a JSON response body.\n * Handles common patterns: { error: \"msg\" }, { error: { message: \"msg\" } }, { message: \"msg\" }\n */\nfunction extractJsonErrorMessage(body: JsonObject): string | undefined {\n if (typeof body === 'object' && body !== null) {\n const obj = body as Record<string, unknown>;\n if (typeof obj.error === 'string') return obj.error;\n if (\n typeof obj.error === 'object' &&\n obj.error !== null &&\n typeof (obj.error as Record<string, unknown>).message === 'string'\n ) {\n return (obj.error as Record<string, unknown>).message as string;\n }\n if (typeof obj.message === 'string') return obj.message;\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,mBAAmB;AAqB5B,IAAM,UAAU;AAYhB,eAAsB,aACpB,MACA,OACe;AACf,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAC3C,QAAM,YAAY,YAAY,EAAE,EAAE,SAAS,KAAK;AAEhD,QAAM,QAAQ,kBAAkB,SAAS,MAAM,KAAK;AAEpD,QAAM,WAAW,MAAM,YAAY,aAAa,WAAW;AAE3D,QAAM,UAAU,aAAa;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,cAAc,MAAM,uBAAuB;AAAA,IAC/C,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,eAAe,KAAK;AAAA,IACpB,gBAAgB,KAAK;AAAA,IACrB,WAAW,KAAK;AAAA,EAClB,CAAC,EAAE,OAAO;AAEV,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,UAAM,UAAsB,EAAE,YAAY,SAAS,OAAO;AAC1D,QAAI;AACJ,QAAI,YAAY,KAAK,GAAG;AACtB,YAAM,EAAE,KAAK,IAAI,YAAY;AAC7B,UAAI,SAAS,QAAQ;AACnB,gBAAQ,OAAO,YAAY,MAAM;AACjC,wBAAgB,wBAAwB,YAAY,MAAM,IAAI;AAAA,MAChE,WAAW,SAAS,QAAQ;AAC1B,gBAAQ,OAAO,YAAY,MAAM;AACjC,wBAAgB,YAAY,MAAM;AAAA,MACpC,OAAO;AACL,gBAAQ,WAAW;AAAA,MACrB;AAAA,IACF;AACA,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,iBAAiB,SAAS;AAAA,QACnC,SAAS;AAAA,QACT,OAAO;AAAA,QACP;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;AAGA,QAAM,OACJ,oBAAoB,MAAM,SAAS,SAC/B,oBAAoB,MAAM,OAC1B,oBAAoB,MAAM,SAAS,SACjC,oBAAoB,MAAM,OAC1B,EAAE,MAAM,oBAAoB,MAAM,KAAK;AAG/C,QAAM,WAAW,cACb;AAAA,IACE,UAAU,YAAY;AAAA,IACtB,GAAI,YAAY,QAAQ,EAAE,OAAO,YAAY,MAAM,IAAI,CAAC;AAAA,IACxD,GAAI,YAAY,UAAU,EAAE,SAAS,YAAY,QAAQ,IAAI,CAAC;AAAA,EAChE,IACA;AAEJ,gBAAc,gBAAgB,MAAM,QAAQ,GAAG,KAAK;AACtD;AAMA,SAAS,wBAAwB,MAAsC;AACrE,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,QAAI,OAAO,IAAI,UAAU,SAAU,QAAO,IAAI;AAC9C,QACE,OAAO,IAAI,UAAU,YACrB,IAAI,UAAU,QACd,OAAQ,IAAI,MAAkC,YAAY,UAC1D;AACA,aAAQ,IAAI,MAAkC;AAAA,IAChD;AACA,QAAI,OAAO,IAAI,YAAY,SAAU,QAAO,IAAI;AAAA,EAClD;AACA,SAAO;AACT;","names":[]}
@@ -6,14 +6,15 @@ import "./chunk-G3AVBW3H.js";
6
6
  import {
7
7
  getWalletOrExit,
8
8
  parseRequestInput
9
- } from "./chunk-7QBTMZ6P.js";
9
+ } from "./chunk-OJ7TLSTP.js";
10
10
  import "./chunk-FRPTMW3B.js";
11
11
  import {
12
12
  buildRequest
13
- } from "./chunk-IB75YFBW.js";
13
+ } from "./chunk-IMJKJGRG.js";
14
14
  import "./chunk-4AS5OYMF.js";
15
- import "./chunk-NEJKY3UL.js";
15
+ import "./chunk-KFJDRCNE.js";
16
16
  import "./chunk-7HVLEKUI.js";
17
+ import "./chunk-TTAO2EJK.js";
17
18
  import "./chunk-P3Z6XR5A.js";
18
19
  import "./chunk-M6OXSG34.js";
19
20
  import "./chunk-VDBUUHJF.js";
@@ -82,4 +83,4 @@ async function fetchAuthCommand(args, flags) {
82
83
  export {
83
84
  fetchAuthCommand
84
85
  };
85
- //# sourceMappingURL=fetch-auth-KEO66U6Q.js.map
86
+ //# sourceMappingURL=fetch-auth-R54NXQBZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fetch-auth.ts"],"sourcesContent":["import { randomBytes } from 'crypto';\n\nimport {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { buildRequest } from '@/server/tools/lib/request';\nimport {\n DEFAULT_USER_FETCH_TIMEOUT,\n safeParseResponse,\n} from '@/shared/neverthrow/fetch';\nimport { createFetchWithAuth } from '@/operations/fetch-with-auth';\nimport { getWalletOrExit, parseRequestInput } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\nimport type { Network } from '@agentcash/networks';\n\nconst SURFACE = 'cli:fetch-auth';\n\ninterface FetchAuthArgs {\n url: string;\n method?: string;\n body?: string;\n headers?: string;\n paymentNetwork?: Network;\n}\n\nexport async function fetchAuthCommand(\n args: FetchAuthArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const wallets = await getWalletOrExit(flags);\n const sessionId = randomBytes(16).toString('hex');\n\n const input = parseRequestInput(SURFACE, args, flags);\n\n const result = await createFetchWithAuth({\n surface: SURFACE,\n wallets,\n timeout: input.timeout ?? DEFAULT_USER_FETCH_TIMEOUT,\n paymentNetwork: args.paymentNetwork,\n })(buildRequest({ input, wallets, sessionId }));\n\n if (result.isErr()) {\n return outputAndExit(fromNeverthrowError(result), flags);\n }\n\n const value = result.value;\n\n if (value.outcome === 'no_siwx_extension') {\n return outputAndExit(\n errorResponse({\n code: 'GENERAL_ERROR',\n message:\n 'Endpoint returned 402 but no sign-in-with-x extension found. Use `fetch` for paid endpoints.',\n surface: SURFACE,\n cause: 'no_siwx_extension',\n }),\n flags\n );\n }\n\n const { response } = value;\n\n if (!response.ok) {\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: { statusCode: response.status },\n }),\n flags\n );\n }\n\n const parseResult = await safeParseResponse(SURFACE, response);\n if (parseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResult), flags);\n }\n\n const data =\n parseResult.value.type === 'json'\n ? parseResult.value.data\n : parseResult.value.type === 'text'\n ? parseResult.value.data\n : { type: parseResult.value.type };\n\n outputAndExit(successResponse(data), flags);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,mBAAmB;AAqB5B,IAAM,UAAU;AAUhB,eAAsB,iBACpB,MACA,OACe;AACf,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAC3C,QAAM,YAAY,YAAY,EAAE,EAAE,SAAS,KAAK;AAEhD,QAAM,QAAQ,kBAAkB,SAAS,MAAM,KAAK;AAEpD,QAAM,SAAS,MAAM,oBAAoB;AAAA,IACvC,SAAS;AAAA,IACT;AAAA,IACA,SAAS,MAAM,WAAW;AAAA,IAC1B,gBAAgB,KAAK;AAAA,EACvB,CAAC,EAAE,aAAa,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC;AAE9C,MAAI,OAAO,MAAM,GAAG;AAClB,WAAO,cAAc,oBAAoB,MAAM,GAAG,KAAK;AAAA,EACzD;AAEA,QAAM,QAAQ,OAAO;AAErB,MAAI,MAAM,YAAY,qBAAqB;AACzC,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SACE;AAAA,QACF,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI;AAErB,MAAI,CAAC,SAAS,IAAI;AAChB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,EAAE,YAAY,SAAS,OAAO;AAAA,MACzC,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,OACJ,YAAY,MAAM,SAAS,SACvB,YAAY,MAAM,OAClB,YAAY,MAAM,SAAS,SACzB,YAAY,MAAM,OAClB,EAAE,MAAM,YAAY,MAAM,KAAK;AAEvC,gBAAc,gBAAgB,IAAI,GAAG,KAAK;AAC5C;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/fetch-auth.ts"],"sourcesContent":["import { randomBytes } from 'crypto';\n\nimport {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { buildRequest } from '@/server/tools/lib/request';\nimport {\n DEFAULT_USER_FETCH_TIMEOUT,\n safeParseResponse,\n} from '@/shared/neverthrow/fetch';\nimport { createFetchWithAuth } from '@/operations/fetch-with-auth';\nimport { getWalletOrExit, parseRequestInput } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\nimport type { Network } from '@agentcash/networks';\n\nconst SURFACE = 'cli:fetch-auth';\n\ninterface FetchAuthArgs {\n url: string;\n method?: string;\n body?: string;\n headers?: string;\n paymentNetwork?: Network;\n}\n\nexport async function fetchAuthCommand(\n args: FetchAuthArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const wallets = await getWalletOrExit(flags);\n const sessionId = randomBytes(16).toString('hex');\n\n const input = parseRequestInput(SURFACE, args, flags);\n\n const result = await createFetchWithAuth({\n surface: SURFACE,\n wallets,\n timeout: input.timeout ?? DEFAULT_USER_FETCH_TIMEOUT,\n paymentNetwork: args.paymentNetwork,\n })(buildRequest({ input, wallets, sessionId }));\n\n if (result.isErr()) {\n return outputAndExit(fromNeverthrowError(result), flags);\n }\n\n const value = result.value;\n\n if (value.outcome === 'no_siwx_extension') {\n return outputAndExit(\n errorResponse({\n code: 'GENERAL_ERROR',\n message:\n 'Endpoint returned 402 but no sign-in-with-x extension found. Use `fetch` for paid endpoints.',\n surface: SURFACE,\n cause: 'no_siwx_extension',\n }),\n flags\n );\n }\n\n const { response } = value;\n\n if (!response.ok) {\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: { statusCode: response.status },\n }),\n flags\n );\n }\n\n const parseResult = await safeParseResponse(SURFACE, response);\n if (parseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResult), flags);\n }\n\n const data =\n parseResult.value.type === 'json'\n ? parseResult.value.data\n : parseResult.value.type === 'text'\n ? parseResult.value.data\n : { type: parseResult.value.type };\n\n outputAndExit(successResponse(data), flags);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,mBAAmB;AAqB5B,IAAM,UAAU;AAUhB,eAAsB,iBACpB,MACA,OACe;AACf,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAC3C,QAAM,YAAY,YAAY,EAAE,EAAE,SAAS,KAAK;AAEhD,QAAM,QAAQ,kBAAkB,SAAS,MAAM,KAAK;AAEpD,QAAM,SAAS,MAAM,oBAAoB;AAAA,IACvC,SAAS;AAAA,IACT;AAAA,IACA,SAAS,MAAM,WAAW;AAAA,IAC1B,gBAAgB,KAAK;AAAA,EACvB,CAAC,EAAE,aAAa,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC;AAE9C,MAAI,OAAO,MAAM,GAAG;AAClB,WAAO,cAAc,oBAAoB,MAAM,GAAG,KAAK;AAAA,EACzD;AAEA,QAAM,QAAQ,OAAO;AAErB,MAAI,MAAM,YAAY,qBAAqB;AACzC,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SACE;AAAA,QACF,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI;AAErB,MAAI,CAAC,SAAS,IAAI;AAChB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,EAAE,YAAY,SAAS,OAAO;AAAA,MACzC,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,OACJ,YAAY,MAAM,SAAS,SACvB,YAAY,MAAM,OAClB,YAAY,MAAM,SAAS,SACzB,YAAY,MAAM,OAClB,EAAE,MAAM,YAAY,MAAM,KAAK;AAEvC,gBAAc,gBAAgB,IAAI,GAAG,KAAK;AAC5C;","names":[]}
package/dist/esm/index.js CHANGED
@@ -5,16 +5,17 @@ import {
5
5
  } from "./chunk-O2AS5QAF.js";
6
6
  import {
7
7
  MCP_VERSION
8
- } from "./chunk-M7G7WGN7.js";
8
+ } from "./chunk-CGFED7FU.js";
9
9
  import {
10
10
  isMppEnabled
11
- } from "./chunk-JM7J5ZIS.js";
11
+ } from "./chunk-GQTOWVH6.js";
12
12
  import "./chunk-G3AVBW3H.js";
13
13
  import {
14
14
  DESCRIPTIONS,
15
15
  buildServerInstructions
16
- } from "./chunk-NEJKY3UL.js";
16
+ } from "./chunk-KFJDRCNE.js";
17
17
  import "./chunk-7HVLEKUI.js";
18
+ import "./chunk-TTAO2EJK.js";
18
19
  import "./chunk-VDBUUHJF.js";
19
20
  import "./chunk-C7KWYVS3.js";
20
21
 
@@ -98,7 +99,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
98
99
  description: "Maximum amount (USD) to pay per request. Aborts if the endpoint requests more. Defaults to $5."
99
100
  }).epilogue(DESCRIPTIONS.fetch.epilogue),
100
101
  async (args) => {
101
- const { fetchCommand } = await import("./fetch-VUI7TYUI.js");
102
+ const { fetchCommand } = await import("./fetch-4X4N7TSG.js");
102
103
  await fetchCommand(
103
104
  {
104
105
  ...args,
@@ -135,7 +136,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
135
136
  choices: ["eip155:8453" /* BASE */, "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" /* SOLANA */]
136
137
  }).epilogue(DESCRIPTIONS.fetchWithAuth.epilogue),
137
138
  async (args) => {
138
- const { fetchAuthCommand } = await import("./fetch-auth-KEO66U6Q.js");
139
+ const { fetchAuthCommand } = await import("./fetch-auth-R54NXQBZ.js");
139
140
  await fetchAuthCommand(
140
141
  {
141
142
  url: args.url,
@@ -169,7 +170,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
169
170
  description: "Additional headers as JSON object"
170
171
  }).epilogue(DESCRIPTIONS.checkEndpointSchema.epilogue),
171
172
  async (args) => {
172
- const { checkCommand } = await import("./check-YVZ3KR2P.js");
173
+ const { checkCommand } = await import("./check-DXJXBWT2.js");
173
174
  await checkCommand(
174
175
  {
175
176
  url: args.url,
@@ -189,7 +190,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
189
190
  demandOption: true
190
191
  }),
191
192
  async (args) => {
192
- const { tryCommand } = await import("./try-HRKABFHO.js");
193
+ const { tryCommand } = await import("./try-2XWGGAAP.js");
193
194
  await tryCommand({ url: args.url }, args);
194
195
  }
195
196
  ).command(
@@ -231,7 +232,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
231
232
  demandOption: true
232
233
  }),
233
234
  async (args) => {
234
- const { addSkillCommand } = await import("./add-skill-CPSJHRFF.js");
235
+ const { addSkillCommand } = await import("./add-skill-U34U44YC.js");
235
236
  await addSkillCommand({ url: args.url }, args);
236
237
  }
237
238
  ).command(
@@ -246,7 +247,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
246
247
  demandOption: true
247
248
  }),
248
249
  async (args) => {
249
- const { originsAddCommand } = await import("./origins-EYBTV3GF.js");
250
+ const { originsAddCommand } = await import("./origins-GFGI6TY3.js");
250
251
  await originsAddCommand({ url: args.url }, args);
251
252
  }
252
253
  ).command(
@@ -254,7 +255,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
254
255
  "List all registered origins",
255
256
  (yargs3) => yargs3,
256
257
  async (args) => {
257
- const { originsListCommand } = await import("./origins-EYBTV3GF.js");
258
+ const { originsListCommand } = await import("./origins-GFGI6TY3.js");
258
259
  originsListCommand({}, args);
259
260
  }
260
261
  ).command(
@@ -266,7 +267,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
266
267
  demandOption: true
267
268
  }),
268
269
  async (args) => {
269
- const { originsRemoveCommand } = await import("./origins-EYBTV3GF.js");
270
+ const { originsRemoveCommand } = await import("./origins-GFGI6TY3.js");
270
271
  originsRemoveCommand({ url: args.url }, args);
271
272
  }
272
273
  ).demandCommand(1, "You must specify an origins subcommand").strict(),
@@ -280,7 +281,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
280
281
  description: "The invite code to redeem (optional)"
281
282
  }),
282
283
  async (args) => {
283
- const { onboardCommand } = await import("./onboard-ACBXF5EZ.js");
284
+ const { onboardCommand } = await import("./onboard-IOSC3DTG.js");
284
285
  await onboardCommand({ code: args.code ?? args.invite }, args);
285
286
  }
286
287
  ).command(
@@ -291,7 +292,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
291
292
  DESCRIPTIONS.getWalletInfo.cli,
292
293
  (yargs3) => yargs3,
293
294
  async (args) => {
294
- const { walletInfoCommand } = await import("./wallet-DNW6DBSU.js");
295
+ const { walletInfoCommand } = await import("./wallet-3ZWXDQNE.js");
295
296
  await walletInfoCommand({}, args);
296
297
  }
297
298
  ).command(
@@ -303,7 +304,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
303
304
  demandOption: true
304
305
  }),
305
306
  async (args) => {
306
- const { walletRedeemCommand } = await import("./wallet-DNW6DBSU.js");
307
+ const { walletRedeemCommand } = await import("./wallet-3ZWXDQNE.js");
307
308
  await walletRedeemCommand({ code: args.code }, args);
308
309
  }
309
310
  ).command(
@@ -311,7 +312,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
311
312
  "Get wallet address",
312
313
  (yargs3) => yargs3,
313
314
  async (args) => {
314
- const { walletAddressCommand } = await import("./wallet-DNW6DBSU.js");
315
+ const { walletAddressCommand } = await import("./wallet-3ZWXDQNE.js");
315
316
  await walletAddressCommand({}, args);
316
317
  }
317
318
  ).demandCommand(1, "You must specify a wallet subcommand").strict(),
@@ -325,7 +326,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
325
326
  "Show current settings",
326
327
  (yargs3) => yargs3,
327
328
  async (args) => {
328
- const { settingsGetCommand } = await import("./settings-LUYHCU5T.js");
329
+ const { settingsGetCommand } = await import("./settings-I7MPPOB7.js");
329
330
  settingsGetCommand({}, args);
330
331
  }
331
332
  ).command(
@@ -341,7 +342,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
341
342
  demandOption: true
342
343
  }),
343
344
  async (args) => {
344
- const { settingsSetCommand } = await import("./settings-LUYHCU5T.js");
345
+ const { settingsSetCommand } = await import("./settings-I7MPPOB7.js");
345
346
  settingsSetCommand({ key: args.key, value: args.value }, args);
346
347
  }
347
348
  ).demandCommand(1, "You must specify a settings subcommand").strict(),
@@ -373,7 +374,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
373
374
  description: "Detailed report with context and repro steps"
374
375
  }),
375
376
  async (args) => {
376
- const { reportErrorCommand } = await import("./report-error-4R6Z2DGD.js");
377
+ const { reportErrorCommand } = await import("./report-error-CSI2EPQJ.js");
377
378
  await reportErrorCommand(
378
379
  {
379
380
  tool: args.tool,
@@ -391,7 +392,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
391
392
  "Start the MCP server (default when no command specified)",
392
393
  (yargs2) => yargs2,
393
394
  async (args) => {
394
- const { serverCommand } = await import("./server-ANESRI52.js");
395
+ const { serverCommand } = await import("./server-EM2KLQJY.js");
395
396
  await serverCommand(args);
396
397
  }
397
398
  ).command(
@@ -404,7 +405,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
404
405
  default: isClaudeCode ? "claude-code" /* ClaudeCode */ : void 0
405
406
  }),
406
407
  async (args) => {
407
- const { installMcpServer } = await import("./install-NNR5PKP2.js");
408
+ const { installMcpServer } = await import("./install-GB7Z3Y7Y.js");
408
409
  await installMcpServer(args);
409
410
  }
410
411
  ).command(
@@ -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/commands/install/clients';\nimport { isMppEnabled } from '@/shared/mpp-enabled';\nimport { MCP_VERSION } from '@/shared/version';\nimport { DESCRIPTIONS, buildServerInstructions } from '@/shared/descriptions';\nimport { loadUserOrigins } from '@/shared/user-origins';\nimport type { PaymentProtocol } from './shared/protocols/types';\nimport { Network } from '@agentcash/networks';\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('@/cli/lib/context');\n configureCliContext({ verbose: true });\n }\n })\n // ============================================================\n // Core CLI Commands (for agent/programmatic use)\n // ============================================================\n .command(\n 'fetch <url>',\n DESCRIPTIONS.fetch.cli,\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 })\n .option('payment-network', {\n type: 'string',\n description: 'Payment network to use',\n choices: [Network.BASE, Network.SOLANA],\n })\n .option('max-amount', {\n type: 'number',\n description:\n 'Maximum amount (USD) to pay per request. Aborts if the endpoint requests more. Defaults to $5.',\n })\n .epilogue(DESCRIPTIONS.fetch.epilogue),\n async args => {\n const { fetchCommand } = await import('@/cli/commands/fetch');\n await fetchCommand(\n {\n ...args,\n paymentMethod: args.paymentMethod as PaymentProtocol | undefined,\n paymentNetwork: args.paymentNetwork,\n },\n args\n );\n }\n )\n .command(\n 'fetch-auth <url>',\n DESCRIPTIONS.fetchWithAuth.cli,\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-network', {\n type: 'string',\n description: 'Payment network to use',\n choices: [Network.BASE, Network.SOLANA],\n })\n .epilogue(DESCRIPTIONS.fetchWithAuth.epilogue),\n async args => {\n const { fetchAuthCommand } = await import('@/cli/commands/fetch-auth');\n await fetchAuthCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n paymentNetwork: args.paymentNetwork,\n },\n args\n );\n }\n )\n .command(\n 'check <url>',\n DESCRIPTIONS.checkEndpointSchema.cli,\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 declared in the spec are returned.',\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 .epilogue(DESCRIPTIONS.checkEndpointSchema.epilogue),\n async args => {\n const { checkCommand } = await import('@/cli/commands/check');\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 'try <url>',\n DESCRIPTIONS.try.cli,\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to explore',\n demandOption: true,\n }),\n async args => {\n const { tryCommand } = await import('@/cli/commands/try');\n await tryCommand({ url: args.url }, args);\n }\n )\n .command(\n 'discover <url>',\n DESCRIPTIONS.discoverApiEndpoints.cli,\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The origin URL to discover endpoints from',\n demandOption: true,\n })\n .option('include-guidance', {\n type: 'boolean',\n description:\n 'Guidance override: true=always include, false=never include, omitted=auto by threshold',\n })\n .epilogue(DESCRIPTIONS.discoverApiEndpoints.epilogue),\n async args => {\n const { discoverCommand } = await import('@/cli/commands/discover');\n await discoverCommand(\n { url: args.url, includeGuidance: args.includeGuidance },\n args\n );\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/register');\n await registerCommand({ url: args.url }, args);\n }\n )\n .command(\n 'add <url>',\n 'Add an origin and install its skill to agent clients. The origin is added to the MCP server description.',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The URL of the origin to add',\n demandOption: true,\n }),\n async args => {\n const { addSkillCommand } = await import('@/cli/commands/add-skill');\n await addSkillCommand({ url: args.url }, args);\n }\n )\n .command(\n 'origins',\n 'Manage registered origins',\n yargs =>\n yargs\n .command(\n 'add <url>',\n 'Add an origin to agent clients. The origin is added to the MCP server description.',\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 { originsAddCommand } =\n await import('@/cli/commands/origins');\n await originsAddCommand({ url: args.url }, args);\n }\n )\n .command(\n 'list',\n 'List all registered origins',\n yargs => yargs,\n async args => {\n const { originsListCommand } =\n await import('@/cli/commands/origins');\n originsListCommand({}, args);\n }\n )\n .command(\n 'remove <url>',\n 'Remove a user-added origin',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to remove',\n demandOption: true,\n }),\n async args => {\n const { originsRemoveCommand } =\n await import('@/cli/commands/origins');\n originsRemoveCommand({ url: args.url }, args);\n }\n )\n .demandCommand(1, 'You must specify an origins subcommand')\n .strict(),\n () => {\n // Show help for origins command\n }\n )\n .command(\n 'onboard [code]',\n 'Non-interactive onboarding flow for agentcash wallet + MCP setup',\n yargs =>\n yargs.positional('code', {\n type: 'string',\n description: 'The invite code to redeem (optional)',\n }),\n async args => {\n const { onboardCommand } = await import('@/cli/commands/onboard');\n await onboardCommand({ code: args.code ?? args.invite }, args);\n }\n )\n .command(\n 'wallet',\n 'Wallet management commands',\n yargs =>\n yargs\n .command(\n 'info',\n DESCRIPTIONS.getWalletInfo.cli,\n yargs => yargs,\n async args => {\n const { walletInfoCommand } = await import('@/cli/commands/wallet');\n await walletInfoCommand({}, args);\n }\n )\n .command(\n 'redeem <code>',\n DESCRIPTIONS.redeemInvite.cli,\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 } =\n await import('@/cli/commands/wallet');\n await walletRedeemCommand({ code: args.code }, args);\n }\n )\n .command(\n 'address',\n 'Get wallet address',\n yargs => yargs,\n async args => {\n const { walletAddressCommand } =\n await import('@/cli/commands/wallet');\n await walletAddressCommand({}, 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 'settings',\n 'View and update user settings',\n yargs =>\n yargs\n .command(\n 'get',\n 'Show current settings',\n yargs => yargs,\n async args => {\n const { settingsGetCommand } =\n await import('@/cli/commands/settings');\n settingsGetCommand({}, args);\n }\n )\n .command(\n 'set <key> <value>',\n 'Update a setting (e.g. settings set maxAmount 10)',\n yargs =>\n yargs\n .positional('key', {\n type: 'string',\n description: 'Setting name (e.g. maxAmount)',\n demandOption: true,\n })\n .positional('value', {\n type: 'string',\n description: 'Setting value',\n demandOption: true,\n }),\n async args => {\n const { settingsSetCommand } =\n await import('@/cli/commands/settings');\n settingsSetCommand({ key: args.key, value: args.value }, args);\n }\n )\n .demandCommand(1, 'You must specify a settings subcommand')\n .strict(),\n () => {\n // Show help for settings command\n }\n )\n .command(\n 'report-error',\n DESCRIPTIONS.reportError.cli,\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 } =\n await import('@/cli/commands/report-error');\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/server');\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/commands/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/commands/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(\n '$0 onboard ABC123',\n 'Install onboarding skill, configure MCP, and redeem an invite'\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 .epilogue(buildServerInstructions(loadUserOrigins()))\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"]}
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/commands/install/clients';\nimport { isMppEnabled } from '@/shared/mpp-enabled';\nimport { MCP_VERSION } from '@/shared/version';\nimport { DESCRIPTIONS, buildServerInstructions } from '@/shared/descriptions';\nimport { loadUserOrigins } from '@/shared/user-origins';\nimport type { PaymentProtocol } from './shared/protocols/types';\nimport { Network } from '@agentcash/networks';\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('@/cli/lib/context');\n configureCliContext({ verbose: true });\n }\n })\n // ============================================================\n // Core CLI Commands (for agent/programmatic use)\n // ============================================================\n .command(\n 'fetch <url>',\n DESCRIPTIONS.fetch.cli,\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 })\n .option('payment-network', {\n type: 'string',\n description: 'Payment network to use',\n choices: [Network.BASE, Network.SOLANA],\n })\n .option('max-amount', {\n type: 'number',\n description:\n 'Maximum amount (USD) to pay per request. Aborts if the endpoint requests more. Defaults to $5.',\n })\n .epilogue(DESCRIPTIONS.fetch.epilogue),\n async args => {\n const { fetchCommand } = await import('@/cli/commands/fetch');\n await fetchCommand(\n {\n ...args,\n paymentMethod: args.paymentMethod as PaymentProtocol | undefined,\n paymentNetwork: args.paymentNetwork,\n },\n args\n );\n }\n )\n .command(\n 'fetch-auth <url>',\n DESCRIPTIONS.fetchWithAuth.cli,\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-network', {\n type: 'string',\n description: 'Payment network to use',\n choices: [Network.BASE, Network.SOLANA],\n })\n .epilogue(DESCRIPTIONS.fetchWithAuth.epilogue),\n async args => {\n const { fetchAuthCommand } = await import('@/cli/commands/fetch-auth');\n await fetchAuthCommand(\n {\n url: args.url,\n method: args.method,\n body: args.body,\n headers: args.headers,\n paymentNetwork: args.paymentNetwork,\n },\n args\n );\n }\n )\n .command(\n 'check <url>',\n DESCRIPTIONS.checkEndpointSchema.cli,\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 declared in the spec are returned.',\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 .epilogue(DESCRIPTIONS.checkEndpointSchema.epilogue),\n async args => {\n const { checkCommand } = await import('@/cli/commands/check');\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 'try <url>',\n DESCRIPTIONS.try.cli,\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to explore',\n demandOption: true,\n }),\n async args => {\n const { tryCommand } = await import('@/cli/commands/try');\n await tryCommand({ url: args.url }, args);\n }\n )\n .command(\n 'discover <url>',\n DESCRIPTIONS.discoverApiEndpoints.cli,\n yargs =>\n yargs\n .positional('url', {\n type: 'string',\n description: 'The origin URL to discover endpoints from',\n demandOption: true,\n })\n .option('include-guidance', {\n type: 'boolean',\n description:\n 'Guidance override: true=always include, false=never include, omitted=auto by threshold',\n })\n .epilogue(DESCRIPTIONS.discoverApiEndpoints.epilogue),\n async args => {\n const { discoverCommand } = await import('@/cli/commands/discover');\n await discoverCommand(\n { url: args.url, includeGuidance: args.includeGuidance },\n args\n );\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/register');\n await registerCommand({ url: args.url }, args);\n }\n )\n .command(\n 'add <url>',\n 'Add an origin and install its skill to agent clients. The origin is added to the MCP server description.',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The URL of the origin to add',\n demandOption: true,\n }),\n async args => {\n const { addSkillCommand } = await import('@/cli/commands/add-skill');\n await addSkillCommand({ url: args.url }, args);\n }\n )\n .command(\n 'origins',\n 'Manage registered origins',\n yargs =>\n yargs\n .command(\n 'add <url>',\n 'Add an origin to agent clients. The origin is added to the MCP server description.',\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 { originsAddCommand } =\n await import('@/cli/commands/origins');\n await originsAddCommand({ url: args.url }, args);\n }\n )\n .command(\n 'list',\n 'List all registered origins',\n yargs => yargs,\n async args => {\n const { originsListCommand } =\n await import('@/cli/commands/origins');\n originsListCommand({}, args);\n }\n )\n .command(\n 'remove <url>',\n 'Remove a user-added origin',\n yargs =>\n yargs.positional('url', {\n type: 'string',\n description: 'The origin URL to remove',\n demandOption: true,\n }),\n async args => {\n const { originsRemoveCommand } =\n await import('@/cli/commands/origins');\n originsRemoveCommand({ url: args.url }, args);\n }\n )\n .demandCommand(1, 'You must specify an origins subcommand')\n .strict(),\n () => {\n // Show help for origins command\n }\n )\n .command(\n 'onboard [code]',\n 'Non-interactive onboarding flow for agentcash wallet + MCP setup',\n yargs =>\n yargs.positional('code', {\n type: 'string',\n description: 'The invite code to redeem (optional)',\n }),\n async args => {\n const { onboardCommand } = await import('@/cli/commands/onboard');\n await onboardCommand({ code: args.code ?? args.invite }, args);\n }\n )\n .command(\n 'wallet',\n 'Wallet management commands',\n yargs =>\n yargs\n .command(\n 'info',\n DESCRIPTIONS.getWalletInfo.cli,\n yargs => yargs,\n async args => {\n const { walletInfoCommand } = await import('@/cli/commands/wallet');\n await walletInfoCommand({}, args);\n }\n )\n .command(\n 'redeem <code>',\n DESCRIPTIONS.redeemInvite.cli,\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 } =\n await import('@/cli/commands/wallet');\n await walletRedeemCommand({ code: args.code }, args);\n }\n )\n .command(\n 'address',\n 'Get wallet address',\n yargs => yargs,\n async args => {\n const { walletAddressCommand } =\n await import('@/cli/commands/wallet');\n await walletAddressCommand({}, 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 'settings',\n 'View and update user settings',\n yargs =>\n yargs\n .command(\n 'get',\n 'Show current settings',\n yargs => yargs,\n async args => {\n const { settingsGetCommand } =\n await import('@/cli/commands/settings');\n settingsGetCommand({}, args);\n }\n )\n .command(\n 'set <key> <value>',\n 'Update a setting (e.g. settings set maxAmount 10)',\n yargs =>\n yargs\n .positional('key', {\n type: 'string',\n description: 'Setting name (e.g. maxAmount)',\n demandOption: true,\n })\n .positional('value', {\n type: 'string',\n description: 'Setting value',\n demandOption: true,\n }),\n async args => {\n const { settingsSetCommand } =\n await import('@/cli/commands/settings');\n settingsSetCommand({ key: args.key, value: args.value }, args);\n }\n )\n .demandCommand(1, 'You must specify a settings subcommand')\n .strict(),\n () => {\n // Show help for settings command\n }\n )\n .command(\n 'report-error',\n DESCRIPTIONS.reportError.cli,\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 } =\n await import('@/cli/commands/report-error');\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/server');\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/commands/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/commands/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(\n '$0 onboard ABC123',\n 'Install onboarding skill, configure MCP, and redeem an invite'\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 .epilogue(buildServerInstructions(loadUserOrigins()))\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"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-ST5ITYIM.js";
4
4
  import {
5
5
  addServer
6
- } from "./chunk-YC3QM3JN.js";
6
+ } from "./chunk-6ZASEAWN.js";
7
7
  import {
8
8
  wait
9
9
  } from "./chunk-DZNSJ2BA.js";
@@ -14,7 +14,7 @@ import {
14
14
  Clients,
15
15
  clientMetadata
16
16
  } from "./chunk-RBEVKU3U.js";
17
- import "./chunk-M7G7WGN7.js";
17
+ import "./chunk-CGFED7FU.js";
18
18
  import "./chunk-6XGAIMNK.js";
19
19
  import {
20
20
  getBalance
@@ -189,4 +189,4 @@ var installMcpServer = async (flags) => {
189
189
  export {
190
190
  installMcpServer
191
191
  };
192
- //# sourceMappingURL=install-NNR5PKP2.js.map
192
+ //# sourceMappingURL=install-GB7Z3Y7Y.js.map
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  getPlatformPath,
3
3
  tryAddServer
4
- } from "./chunk-YC3QM3JN.js";
4
+ } from "./chunk-6ZASEAWN.js";
5
5
  import "./chunk-DZNSJ2BA.js";
6
6
  import {
7
7
  redeemInviteCode
8
8
  } from "./chunk-CM6NIM6K.js";
9
9
  import "./chunk-RBEVKU3U.js";
10
- import "./chunk-M7G7WGN7.js";
10
+ import "./chunk-CGFED7FU.js";
11
11
  import {
12
12
  getOnboardingCta,
13
13
  getWalletInfo
14
- } from "./chunk-EW25ERKW.js";
14
+ } from "./chunk-UJO2BWV6.js";
15
15
  import "./chunk-6XGAIMNK.js";
16
16
  import "./chunk-RAFN7MFS.js";
17
17
  import {
18
18
  getBaseUrl,
19
19
  getDepositLink
20
20
  } from "./chunk-OKHBFFZP.js";
21
- import "./chunk-JM7J5ZIS.js";
21
+ import "./chunk-GQTOWVH6.js";
22
22
  import "./chunk-G3AVBW3H.js";
23
23
  import {
24
24
  detect,
@@ -565,4 +565,4 @@ async function onboardCommand(args, flags) {
565
565
  export {
566
566
  onboardCommand
567
567
  };
568
- //# sourceMappingURL=onboard-ACBXF5EZ.js.map
568
+ //# sourceMappingURL=onboard-IOSC3DTG.js.map
@@ -5,15 +5,16 @@ import {
5
5
  } from "./chunk-O2AS5QAF.js";
6
6
  import {
7
7
  resolveOrigin
8
- } from "./chunk-7QBTMZ6P.js";
8
+ } from "./chunk-OJ7TLSTP.js";
9
9
  import "./chunk-FRPTMW3B.js";
10
- import "./chunk-IB75YFBW.js";
10
+ import "./chunk-IMJKJGRG.js";
11
11
  import "./chunk-4AS5OYMF.js";
12
12
  import {
13
13
  ORIGIN_METADATA,
14
14
  PRIMARY_ORIGINS
15
- } from "./chunk-NEJKY3UL.js";
15
+ } from "./chunk-KFJDRCNE.js";
16
16
  import "./chunk-7HVLEKUI.js";
17
+ import "./chunk-TTAO2EJK.js";
17
18
  import "./chunk-P3Z6XR5A.js";
18
19
  import "./chunk-M6OXSG34.js";
19
20
  import "./chunk-VDBUUHJF.js";
@@ -82,4 +83,4 @@ export {
82
83
  originsListCommand,
83
84
  originsRemoveCommand
84
85
  };
85
- //# sourceMappingURL=origins-EYBTV3GF.js.map
86
+ //# sourceMappingURL=origins-GFGI6TY3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/origins.ts"],"sourcesContent":["import {\n successResponse,\n outputAndExit,\n type OutputFlags,\n errorResponse,\n} from '@/cli/output';\nimport {\n loadUserOrigins,\n addUserOrigin,\n removeUserOrigin,\n} from '@/shared/user-origins';\nimport { PRIMARY_ORIGINS, ORIGIN_METADATA } from '@/shared/descriptions';\nimport { resolveOrigin } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\n\nconst SURFACE = 'cli:origins';\n\ninterface OriginsAddArgs {\n url: string;\n}\n\ninterface OriginsRemoveArgs {\n url: string;\n}\n\nexport async function originsAddCommand(\n args: OriginsAddArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const resolved = await resolveOrigin(args.url, SURFACE);\n if (!resolved.ok) return outputAndExit(resolved.error, flags);\n\n const origin = addUserOrigin(resolved.origin);\n\n return outputAndExit(\n successResponse({\n url: origin.url,\n title: origin.title,\n description: origin.description,\n note: 'Restart your MCP server for this origin to appear in the model context.',\n ...(resolved.origin.warnings.length > 0 && {\n warnings: resolved.origin.warnings,\n }),\n }),\n flags\n );\n}\n\nexport function originsListCommand(\n _args: object,\n flags: GlobalFlags<OutputFlags>\n): void {\n const primary = PRIMARY_ORIGINS.flatMap(o => {\n const meta = ORIGIN_METADATA[o];\n return meta\n ? [{ url: o, title: meta.title, description: meta.description }]\n : [];\n });\n const added = loadUserOrigins();\n\n return outputAndExit(successResponse({ primary, added }), flags);\n}\n\nexport function originsRemoveCommand(\n args: OriginsRemoveArgs,\n flags: GlobalFlags<OutputFlags>\n): void {\n const url = /^https?:\\/\\//i.test(args.url) ? args.url : `https://${args.url}`;\n\n const result = removeUserOrigin(url);\n\n if (!result.removed) {\n const isPrimary = PRIMARY_ORIGINS.some(o => String(o) === url);\n return outputAndExit(\n errorResponse(\n isPrimary\n ? {\n code: 'GENERAL_ERROR',\n message: `Cannot remove primary origin: ${url}. Only user-added origins can be removed.`,\n surface: SURFACE,\n cause: 'primary_origin',\n }\n : {\n code: 'GENERAL_ERROR',\n message: `Origin not found: ${url}`,\n surface: SURFACE,\n cause: 'not_found',\n }\n ),\n flags\n );\n }\n\n return outputAndExit(successResponse({ removed: true, url }), flags);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAM,UAAU;AAUhB,eAAsB,kBACpB,MACA,OACe;AACf,QAAM,WAAW,MAAM,cAAc,KAAK,KAAK,OAAO;AACtD,MAAI,CAAC,SAAS,GAAI,QAAO,cAAc,SAAS,OAAO,KAAK;AAE5D,QAAM,SAAS,cAAc,SAAS,MAAM;AAE5C,SAAO;AAAA,IACL,gBAAgB;AAAA,MACd,KAAK,OAAO;AAAA,MACZ,OAAO,OAAO;AAAA,MACd,aAAa,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,GAAI,SAAS,OAAO,SAAS,SAAS,KAAK;AAAA,QACzC,UAAU,SAAS,OAAO;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,IACD;AAAA,EACF;AACF;AAEO,SAAS,mBACd,OACA,OACM;AACN,QAAM,UAAU,gBAAgB,QAAQ,OAAK;AAC3C,UAAM,OAAO,gBAAgB,CAAC;AAC9B,WAAO,OACH,CAAC,EAAE,KAAK,GAAG,OAAO,KAAK,OAAO,aAAa,KAAK,YAAY,CAAC,IAC7D,CAAC;AAAA,EACP,CAAC;AACD,QAAM,QAAQ,gBAAgB;AAE9B,SAAO,cAAc,gBAAgB,EAAE,SAAS,MAAM,CAAC,GAAG,KAAK;AACjE;AAEO,SAAS,qBACd,MACA,OACM;AACN,QAAM,MAAM,gBAAgB,KAAK,KAAK,GAAG,IAAI,KAAK,MAAM,WAAW,KAAK,GAAG;AAE3E,QAAM,SAAS,iBAAiB,GAAG;AAEnC,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,YAAY,gBAAgB,KAAK,OAAK,OAAO,CAAC,MAAM,GAAG;AAC7D,WAAO;AAAA,MACL;AAAA,QACE,YACI;AAAA,UACE,MAAM;AAAA,UACN,SAAS,iCAAiC,GAAG;AAAA,UAC7C,SAAS;AAAA,UACT,OAAO;AAAA,QACT,IACA;AAAA,UACE,MAAM;AAAA,UACN,SAAS,qBAAqB,GAAG;AAAA,UACjC,SAAS;AAAA,UACT,OAAO;AAAA,QACT;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAc,gBAAgB,EAAE,SAAS,MAAM,IAAI,CAAC,GAAG,KAAK;AACrE;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/origins.ts"],"sourcesContent":["import {\n successResponse,\n outputAndExit,\n type OutputFlags,\n errorResponse,\n} from '@/cli/output';\nimport {\n loadUserOrigins,\n addUserOrigin,\n removeUserOrigin,\n} from '@/shared/user-origins';\nimport { PRIMARY_ORIGINS, ORIGIN_METADATA } from '@/shared/descriptions';\nimport { resolveOrigin } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\n\nconst SURFACE = 'cli:origins';\n\ninterface OriginsAddArgs {\n url: string;\n}\n\ninterface OriginsRemoveArgs {\n url: string;\n}\n\nexport async function originsAddCommand(\n args: OriginsAddArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const resolved = await resolveOrigin(args.url, SURFACE);\n if (!resolved.ok) return outputAndExit(resolved.error, flags);\n\n const origin = addUserOrigin(resolved.origin);\n\n return outputAndExit(\n successResponse({\n url: origin.url,\n title: origin.title,\n description: origin.description,\n note: 'Restart your MCP server for this origin to appear in the model context.',\n ...(resolved.origin.warnings.length > 0 && {\n warnings: resolved.origin.warnings,\n }),\n }),\n flags\n );\n}\n\nexport function originsListCommand(\n _args: object,\n flags: GlobalFlags<OutputFlags>\n): void {\n const primary = PRIMARY_ORIGINS.flatMap(o => {\n const meta = ORIGIN_METADATA[o];\n return meta\n ? [{ url: o, title: meta.title, description: meta.description }]\n : [];\n });\n const added = loadUserOrigins();\n\n return outputAndExit(successResponse({ primary, added }), flags);\n}\n\nexport function originsRemoveCommand(\n args: OriginsRemoveArgs,\n flags: GlobalFlags<OutputFlags>\n): void {\n const url = /^https?:\\/\\//i.test(args.url) ? args.url : `https://${args.url}`;\n\n const result = removeUserOrigin(url);\n\n if (!result.removed) {\n const isPrimary = PRIMARY_ORIGINS.some(o => String(o) === url);\n return outputAndExit(\n errorResponse(\n isPrimary\n ? {\n code: 'GENERAL_ERROR',\n message: `Cannot remove primary origin: ${url}. Only user-added origins can be removed.`,\n surface: SURFACE,\n cause: 'primary_origin',\n }\n : {\n code: 'GENERAL_ERROR',\n message: `Origin not found: ${url}`,\n surface: SURFACE,\n cause: 'not_found',\n }\n ),\n flags\n );\n }\n\n return outputAndExit(successResponse({ removed: true, url }), flags);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAM,UAAU;AAUhB,eAAsB,kBACpB,MACA,OACe;AACf,QAAM,WAAW,MAAM,cAAc,KAAK,KAAK,OAAO;AACtD,MAAI,CAAC,SAAS,GAAI,QAAO,cAAc,SAAS,OAAO,KAAK;AAE5D,QAAM,SAAS,cAAc,SAAS,MAAM;AAE5C,SAAO;AAAA,IACL,gBAAgB;AAAA,MACd,KAAK,OAAO;AAAA,MACZ,OAAO,OAAO;AAAA,MACd,aAAa,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,GAAI,SAAS,OAAO,SAAS,SAAS,KAAK;AAAA,QACzC,UAAU,SAAS,OAAO;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,IACD;AAAA,EACF;AACF;AAEO,SAAS,mBACd,OACA,OACM;AACN,QAAM,UAAU,gBAAgB,QAAQ,OAAK;AAC3C,UAAM,OAAO,gBAAgB,CAAC;AAC9B,WAAO,OACH,CAAC,EAAE,KAAK,GAAG,OAAO,KAAK,OAAO,aAAa,KAAK,YAAY,CAAC,IAC7D,CAAC;AAAA,EACP,CAAC;AACD,QAAM,QAAQ,gBAAgB;AAE9B,SAAO,cAAc,gBAAgB,EAAE,SAAS,MAAM,CAAC,GAAG,KAAK;AACjE;AAEO,SAAS,qBACd,MACA,OACM;AACN,QAAM,MAAM,gBAAgB,KAAK,KAAK,GAAG,IAAI,KAAK,MAAM,WAAW,KAAK,GAAG;AAE3E,QAAM,SAAS,iBAAiB,GAAG;AAEnC,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,YAAY,gBAAgB,KAAK,OAAK,OAAO,CAAC,MAAM,GAAG;AAC7D,WAAO;AAAA,MACL;AAAA,QACE,YACI;AAAA,UACE,MAAM;AAAA,UACN,SAAS,iCAAiC,GAAG;AAAA,UAC7C,SAAS;AAAA,UACT,OAAO;AAAA,QACT,IACA;AAAA,UACE,MAAM;AAAA,UACN,SAAS,qBAAqB,GAAG;AAAA,UACjC,SAAS;AAAA,UACT,OAAO;AAAA,QACT;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAc,gBAAgB,EAAE,SAAS,MAAM,IAAI,CAAC,GAAG,KAAK;AACrE;","names":[]}
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  submitErrorReport
3
- } from "./chunk-VC5CLABO.js";
4
- import "./chunk-M7G7WGN7.js";
3
+ } from "./chunk-G5IKWSIV.js";
4
+ import "./chunk-CGFED7FU.js";
5
5
  import "./chunk-OKHBFFZP.js";
6
6
  import {
7
7
  getWalletOrExit
8
- } from "./chunk-7QBTMZ6P.js";
8
+ } from "./chunk-OJ7TLSTP.js";
9
9
  import "./chunk-FRPTMW3B.js";
10
- import "./chunk-IB75YFBW.js";
10
+ import "./chunk-IMJKJGRG.js";
11
11
  import "./chunk-4AS5OYMF.js";
12
- import "./chunk-NEJKY3UL.js";
12
+ import "./chunk-KFJDRCNE.js";
13
13
  import "./chunk-7HVLEKUI.js";
14
+ import "./chunk-TTAO2EJK.js";
14
15
  import "./chunk-P3Z6XR5A.js";
15
16
  import "./chunk-M6OXSG34.js";
16
17
  import "./chunk-VDBUUHJF.js";
@@ -60,4 +61,4 @@ async function reportErrorCommand(args, flags) {
60
61
  export {
61
62
  reportErrorCommand
62
63
  };
63
- //# sourceMappingURL=report-error-4R6Z2DGD.js.map
64
+ //# sourceMappingURL=report-error-CSI2EPQJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/report-error.ts"],"sourcesContent":["import {\n successResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { submitErrorReport } from '@/operations/report-error';\nimport { getWalletOrExit } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\n\nconst SURFACE = 'cli:report-error';\n\ninterface ReportErrorArgs {\n tool: string;\n summary: string;\n errorMessage: string;\n resource?: string;\n stack?: string;\n fullReport?: string;\n}\n\nexport async function reportErrorCommand(\n args: ReportErrorArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const {\n evmAccount: {\n account: { address },\n },\n } = await getWalletOrExit(flags);\n\n const result = await submitErrorReport(\n SURFACE,\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 address,\n flags.dev\n );\n\n if (result.isErr()) {\n return outputAndExit(fromNeverthrowError(result), flags);\n }\n\n return outputAndExit(\n successResponse({\n submitted: result.value.submitted,\n reportId: result.value.reportId,\n message: result.value.message,\n }),\n flags\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,UAAU;AAWhB,eAAsB,mBACpB,MACA,OACe;AACf,QAAM;AAAA,IACJ,YAAY;AAAA,MACV,SAAS,EAAE,QAAQ;AAAA,IACrB;AAAA,EACF,IAAI,MAAM,gBAAgB,KAAK;AAE/B,QAAM,SAAS,MAAM;AAAA,IACnB;AAAA,IACA;AAAA,MACE,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,UAAU,KAAK;AAAA,MACf,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR;AAEA,MAAI,OAAO,MAAM,GAAG;AAClB,WAAO,cAAc,oBAAoB,MAAM,GAAG,KAAK;AAAA,EACzD;AAEA,SAAO;AAAA,IACL,gBAAgB;AAAA,MACd,WAAW,OAAO,MAAM;AAAA,MACxB,UAAU,OAAO,MAAM;AAAA,MACvB,SAAS,OAAO,MAAM;AAAA,IACxB,CAAC;AAAA,IACD;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/report-error.ts"],"sourcesContent":["import {\n successResponse,\n fromNeverthrowError,\n outputAndExit,\n type OutputFlags,\n} from '@/cli/output';\n\nimport { submitErrorReport } from '@/operations/report-error';\nimport { getWalletOrExit } from '../lib';\n\nimport type { GlobalFlags } from '@/types';\n\nconst SURFACE = 'cli:report-error';\n\ninterface ReportErrorArgs {\n tool: string;\n summary: string;\n errorMessage: string;\n resource?: string;\n stack?: string;\n fullReport?: string;\n}\n\nexport async function reportErrorCommand(\n args: ReportErrorArgs,\n flags: GlobalFlags<OutputFlags>\n): Promise<void> {\n const {\n evmAccount: {\n account: { address },\n },\n } = await getWalletOrExit(flags);\n\n const result = await submitErrorReport(\n SURFACE,\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 address,\n flags.dev\n );\n\n if (result.isErr()) {\n return outputAndExit(fromNeverthrowError(result), flags);\n }\n\n return outputAndExit(\n successResponse({\n submitted: result.value.submitted,\n reportId: result.value.reportId,\n message: result.value.message,\n }),\n flags\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,UAAU;AAWhB,eAAsB,mBACpB,MACA,OACe;AACf,QAAM;AAAA,IACJ,YAAY;AAAA,MACV,SAAS,EAAE,QAAQ;AAAA,IACrB;AAAA,EACF,IAAI,MAAM,gBAAgB,KAAK;AAE/B,QAAM,SAAS,MAAM;AAAA,IACnB;AAAA,IACA;AAAA,MACE,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,UAAU,KAAK;AAAA,MACf,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR;AAEA,MAAI,OAAO,MAAM,GAAG;AAClB,WAAO,cAAc,oBAAoB,MAAM,GAAG,KAAK;AAAA,EACzD;AAEA,SAAO;AAAA,IACL,gBAAgB;AAAA,MACd,WAAW,OAAO,MAAM;AAAA,MACxB,UAAU,OAAO,MAAM;AAAA,MACvB,SAAS,OAAO,MAAM;AAAA,IACxB,CAAC;AAAA,IACD;AAAA,EACF;AACF;","names":[]}
@@ -5,10 +5,10 @@ async function serverCommand(flags) {
5
5
  "MCP server started. If you meant to explore the CLI, run: npx agentcash --help\n"
6
6
  );
7
7
  }
8
- const { startServer } = await import("./server-7EZORMAF.js");
8
+ const { startServer } = await import("./server-QT37RZYD.js");
9
9
  await startServer(flags);
10
10
  }
11
11
  export {
12
12
  serverCommand
13
13
  };
14
- //# sourceMappingURL=server-ANESRI52.js.map
14
+ //# sourceMappingURL=server-EM2KLQJY.js.map