agentcash 0.3.7 → 0.4.1

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 (33) hide show
  1. package/dist/cjs/run-server.cjs +692 -657
  2. package/dist/esm/{chunk-ED4QVIZH.js → chunk-2CFQ7ILC.js} +2 -2
  3. package/dist/esm/chunk-2CFQ7ILC.js.map +1 -0
  4. package/dist/esm/{chunk-7E4JDDBW.js → chunk-7DEM3OEU.js} +109 -61
  5. package/dist/esm/chunk-7DEM3OEU.js.map +1 -0
  6. package/dist/esm/{chunk-SBLBP4FH.js → chunk-7LPATNAW.js} +2 -2
  7. package/dist/esm/{chunk-PCCYUD6X.js → chunk-DCP6SZGV.js} +3 -3
  8. package/dist/esm/{chunk-PJFATGPH.js → chunk-EO4BIJAO.js} +22 -9
  9. package/dist/esm/{chunk-PJFATGPH.js.map → chunk-EO4BIJAO.js.map} +1 -1
  10. package/dist/esm/{chunk-RP5AGYAT.js → chunk-SHAJ42CH.js} +111 -118
  11. package/dist/esm/chunk-SHAJ42CH.js.map +1 -0
  12. package/dist/esm/{chunk-EVE4PTLY.js → chunk-TRGCJSV2.js} +2 -2
  13. package/dist/esm/{commands-JXKV7VMY.js → commands-WXPPIUX3.js} +9 -8
  14. package/dist/esm/{commands-JXKV7VMY.js.map → commands-WXPPIUX3.js.map} +1 -1
  15. package/dist/esm/{fund-IALSHTLH.js → fund-3DJLQ6CN.js} +4 -4
  16. package/dist/esm/index.js +9 -9
  17. package/dist/esm/{install-IP2RBDST.js → install-N5BZ677Y.js} +5 -5
  18. package/dist/esm/lib.d.ts +45 -4
  19. package/dist/esm/lib.js +4 -4
  20. package/dist/esm/{server-BEKXJWYB.js → server-PMG7V6KQ.js} +26 -22
  21. package/dist/esm/server-PMG7V6KQ.js.map +1 -0
  22. package/dist/esm/shared/operations/index.d.ts +1 -1
  23. package/dist/esm/shared/operations/index.js +4 -4
  24. package/package.json +10 -10
  25. package/dist/esm/chunk-7E4JDDBW.js.map +0 -1
  26. package/dist/esm/chunk-ED4QVIZH.js.map +0 -1
  27. package/dist/esm/chunk-RP5AGYAT.js.map +0 -1
  28. package/dist/esm/server-BEKXJWYB.js.map +0 -1
  29. /package/dist/esm/{chunk-SBLBP4FH.js.map → chunk-7LPATNAW.js.map} +0 -0
  30. /package/dist/esm/{chunk-PCCYUD6X.js.map → chunk-DCP6SZGV.js.map} +0 -0
  31. /package/dist/esm/{chunk-EVE4PTLY.js.map → chunk-TRGCJSV2.js.map} +0 -0
  32. /package/dist/esm/{fund-IALSHTLH.js.map → fund-3DJLQ6CN.js.map} +0 -0
  33. /package/dist/esm/{install-IP2RBDST.js.map → install-N5BZ677Y.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/neverthrow/fs/index.ts","../../../../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.es.js","../../../../internal/neverthrow/src/index.ts","../../src/shared/fs.ts","../../src/shared/log.ts","../../src/shared/neverthrow/parse/index.ts","../../src/shared/neverthrow/fetch/index.ts","../../src/shared/utils.ts","../../src/shared/balance.ts"],"sourcesContent":["import { readFile, writeFile, appendFile, chmod } from 'fs/promises';\n\nimport { err, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type { BaseFileSystemError } from './types';\n\nconst errorType = 'fs';\n\nexport const fsErr = (surface: string, error: BaseFileSystemError) =>\n err(errorType, surface, error);\n\nconst fsResultFromPromise = <T>(\n surface: string,\n promise: Promise<T>,\n error: (e: unknown) => BaseFileSystemError\n) => resultFromPromise(errorType, surface, promise, error);\n\nexport const safeReadFile = (surface: string, path: string) =>\n fsResultFromPromise(surface, readFile(path, 'utf-8'), () => ({\n cause: 'file_not_readable',\n message: 'Failed to read file',\n }));\n\nexport const safeWriteFile = (surface: string, path: string, data: string) =>\n fsResultFromPromise(surface, writeFile(path, data), () => ({\n cause: 'file_not_writable',\n message: 'Failed to write file',\n }));\n\nexport const safeAppendFile = (surface: string, path: string, data: string) =>\n fsResultFromPromise(surface, appendFile(path, data), () => ({\n cause: 'file_not_writable',\n message: 'Failed to append file',\n }));\n\nexport const safeChmod = (surface: string, path: string, mode: number) =>\n fsResultFromPromise(surface, chmod(path, mode), () => ({\n cause: 'file_not_chmodable',\n message: 'Failed to chmod file',\n }));\n","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');\nexport const 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\nif (!fs.existsSync(BASE_DIRECTORY)) {\n fs.mkdirSync(BASE_DIRECTORY, { recursive: true });\n}\n\nmigrateFromLegacy();\n\nexport const configFile = (name: `${string}.${string}`) => {\n if (!fs.existsSync(BASE_DIRECTORY)) {\n fs.mkdirSync(BASE_DIRECTORY, { recursive: true });\n }\n const filePath = join(BASE_DIRECTORY, name);\n return filePath;\n};\n","import { safeAppendFile } from '@/shared/neverthrow/fs';\n\nimport { configFile } from './fs';\nimport { isVerbose } from './cli-context';\n\nconst LOG_FILE = configFile('mcp.log');\n\nfunction format(args: unknown[]): string {\n return args\n .map(a =>\n typeof a === 'object' && a !== null ? JSON.stringify(a) : String(a)\n )\n .join(' ');\n}\n\nfunction write(level: string, msg: string, args: unknown[]): void {\n const formatted = args.length ? `${msg} ${format(args)}` : msg;\n const line = `[${new Date().toISOString()}] [${level}] ${formatted}\\n`;\n safeAppendFile('log', LOG_FILE, line);\n if (isVerbose()) {\n console.error(`[agentcash] ${formatted}`);\n }\n}\n\nexport const log = {\n info: (msg: string, ...args: unknown[]) => write('INFO', msg, args),\n error: (msg: string, ...args: unknown[]) => write('ERROR', msg, args),\n debug: (msg: string, ...args: unknown[]) =>\n isVerbose() && write('DEBUG', msg, args),\n path: LOG_FILE,\n};\n","import z from 'zod';\n\nimport { err, ok } from '@agentcash/neverthrow';\n\nimport type { BaseParseError } from './types';\n\nconst type = 'json';\n\nconst parseErr = (surface: string, error: BaseParseError) =>\n err(type, surface, error);\n\nexport const safeParse = <T>(\n surface: string,\n schema: z.ZodSchema<T>,\n value: unknown\n) => {\n const parseResult = schema.safeParse(value);\n if (!parseResult.success) {\n return parseErr(surface, {\n cause: 'invalid_data',\n message: JSON.stringify(z.treeifyError(parseResult.error), null, 2),\n error: parseResult.error,\n });\n }\n return ok(parseResult.data);\n};\n","import contentType from 'content-type';\nimport { err, ok, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type z from 'zod';\n\nimport type { BaseError, Error } from '@agentcash/neverthrow/types';\nimport type { BaseFetchError, FetchError, ParsedResponse } from './types';\nimport type { JsonObject } from '../json/types';\nimport { safeParse } from '../parse';\n\nconst IMAGE_TYPES = new Set([\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/tiff',\n 'image/bmp',\n 'image/ico',\n]);\n\nconst errorType = 'fetch';\n\nexport const fetchErr = (surface: string, error: BaseFetchError) =>\n err(errorType, surface, error);\nexport const fetchOk = <T>(value: T) => ok(value);\n\nexport const fetchHttpErr = (surface: string, response: Response) =>\n fetchErr(surface, {\n cause: 'http' as const,\n statusCode: response.status,\n message: response.statusText,\n response,\n });\n\nexport const safeFetch = (surface: string, request: Request) => {\n return resultFromPromise(\n errorType,\n surface,\n fetch(request),\n error =>\n ({\n cause: 'network',\n message: error instanceof Error ? error.message : 'Network error',\n }) as BaseFetchError\n );\n};\n\nexport const safeFetchJson = <T>(\n surface: string,\n request: Request,\n schema: z.ZodSchema<T>\n) => {\n return safeFetch(surface, request)\n .andThen(response => {\n if (!response.ok) {\n return fetchHttpErr(surface, response);\n }\n\n return resultFromPromise(errorType, surface, response.json(), () => ({\n cause: 'parse' as const,\n message: 'Could not parse JSON from response',\n statusCode: response.status,\n contentType: response.headers.get('content-type') ?? 'Not specified',\n }));\n })\n .andThen(data => safeParse(surface, schema, data));\n};\n\nexport const safeParseResponse = (surface: string, response: Response) => {\n return resultFromPromise(\n errorType,\n surface,\n (async (): Promise<ParsedResponse> => {\n const header = response.headers.get('content-type');\n const { type: mimeType } = header\n ? contentType.parse(header)\n : { type: 'application/octet-stream' };\n\n switch (mimeType) {\n case 'application/json':\n return {\n type: 'json' as const,\n data: (await response.json()) as JsonObject,\n };\n case 'application/pdf':\n return {\n type: 'pdf' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n case 'application/octet-stream':\n return {\n type: 'octet-stream' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n case 'multipart/form-data':\n return { type: 'formData' as const, data: await response.formData() };\n }\n\n if (IMAGE_TYPES.has(mimeType)) {\n return {\n type: 'image' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('audio/')) {\n return {\n type: 'audio' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('video/')) {\n return {\n type: 'video' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('text/')) {\n return { type: 'text' as const, data: await response.text() };\n }\n\n throw new Error(`Unsupported content type: ${header}`);\n })(),\n e => ({\n cause: 'parse' as const,\n message: e instanceof Error ? e.message : 'Could not parse response',\n statusCode: response.status,\n contentType: response.headers.get('content-type') ?? 'Not specified',\n })\n );\n};\n\nexport const isFetchError = (error: Error<BaseError>): error is FetchError => {\n return error.type === errorType;\n};\n","import open from 'open';\n\nimport type { GlobalFlags } from '@/types';\n\nexport const getBaseUrl = (dev: boolean) => {\n return dev ? 'http://localhost:3000' : 'https://x402scan.com';\n};\n\nexport const getDepositLink = (address: string, flags: GlobalFlags) => {\n return `${getBaseUrl(flags.dev)}/mcp/deposit/${address}`;\n};\n\nexport const openDepositLink = async (address: string, flags: GlobalFlags) => {\n const depositLink = getDepositLink(address, flags);\n await open(depositLink);\n};\n","import z from 'zod';\n\nimport { getBaseUrl } from '@/shared/utils';\nimport { safeFetchJson } from '@/shared/neverthrow/fetch';\n\nimport type { Address } from 'viem';\nimport type { GlobalFlags } from '@/types';\n\ninterface GetBalanceProps {\n address: Address;\n flags: GlobalFlags;\n surface: string;\n}\n\nexport const getBalance = async ({\n address,\n flags,\n surface,\n}: GetBalanceProps) => {\n const url = `${getBaseUrl(flags.dev)}/api/rpc/balance/${address}`;\n\n const res = await safeFetchJson(\n surface,\n new Request(url, {\n method: 'GET',\n headers: {\n accept: 'application/json',\n },\n }),\n z.object({\n chain: z.number(),\n balance: z.coerce.number(),\n })\n );\n\n return res;\n};\n"],"mappings":"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","names":["v","ok","err","Result","fromThrowable","ok","err","type","ok","err","type","err","err","ok","errorType","err","ok","z","z"]}
1
+ {"version":3,"sources":["../../src/shared/neverthrow/fs/index.ts","../../../../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.es.js","../../../../internal/neverthrow/src/index.ts","../../src/shared/fs.ts","../../src/shared/log.ts","../../src/shared/neverthrow/parse/index.ts","../../src/shared/neverthrow/fetch/index.ts","../../src/shared/utils.ts","../../src/shared/balance.ts"],"sourcesContent":["import { readFile, writeFile, appendFile, chmod } from 'fs/promises';\n\nimport { err, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type { BaseFileSystemError } from './types';\n\nconst errorType = 'fs';\n\nexport const fsErr = (surface: string, error: BaseFileSystemError) =>\n err(errorType, surface, error);\n\nconst fsResultFromPromise = <T>(\n surface: string,\n promise: Promise<T>,\n error: (e: unknown) => BaseFileSystemError\n) => resultFromPromise(errorType, surface, promise, error);\n\nexport const safeReadFile = (surface: string, path: string) =>\n fsResultFromPromise(surface, readFile(path, 'utf-8'), () => ({\n cause: 'file_not_readable',\n message: 'Failed to read file',\n }));\n\nexport const safeWriteFile = (surface: string, path: string, data: string) =>\n fsResultFromPromise(surface, writeFile(path, data), () => ({\n cause: 'file_not_writable',\n message: 'Failed to write file',\n }));\n\nexport const safeAppendFile = (surface: string, path: string, data: string) =>\n fsResultFromPromise(surface, appendFile(path, data), () => ({\n cause: 'file_not_writable',\n message: 'Failed to append file',\n }));\n\nexport const safeChmod = (surface: string, path: string, mode: number) =>\n fsResultFromPromise(surface, chmod(path, mode), () => ({\n cause: 'file_not_chmodable',\n message: 'Failed to chmod file',\n }));\n","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');\nexport const 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\nif (!fs.existsSync(BASE_DIRECTORY)) {\n fs.mkdirSync(BASE_DIRECTORY, { recursive: true });\n}\n\nmigrateFromLegacy();\n\nexport const configFile = (name: `${string}.${string}`) => {\n if (!fs.existsSync(BASE_DIRECTORY)) {\n fs.mkdirSync(BASE_DIRECTORY, { recursive: true });\n }\n const filePath = join(BASE_DIRECTORY, name);\n return filePath;\n};\n","import { safeAppendFile } from '@/shared/neverthrow/fs';\n\nimport { configFile } from './fs';\nimport { isVerbose } from './cli-context';\n\nconst LOG_FILE = configFile('mcp.log');\n\nfunction format(args: unknown[]): string {\n return args\n .map(a =>\n typeof a === 'object' && a !== null ? JSON.stringify(a) : String(a)\n )\n .join(' ');\n}\n\nfunction write(level: string, msg: string, args: unknown[]): void {\n const formatted = args.length ? `${msg} ${format(args)}` : msg;\n const line = `[${new Date().toISOString()}] [${level}] ${formatted}\\n`;\n safeAppendFile('log', LOG_FILE, line);\n if (isVerbose()) {\n console.error(`[agentcash] ${formatted}`);\n }\n}\n\nexport const log = {\n info: (msg: string, ...args: unknown[]) => write('INFO', msg, args),\n error: (msg: string, ...args: unknown[]) => write('ERROR', msg, args),\n debug: (msg: string, ...args: unknown[]) =>\n isVerbose() && write('DEBUG', msg, args),\n path: LOG_FILE,\n};\n","import z from 'zod';\n\nimport { err, ok } from '@agentcash/neverthrow';\n\nimport type { BaseParseError } from './types';\n\nconst type = 'json';\n\nconst parseErr = (surface: string, error: BaseParseError) =>\n err(type, surface, error);\n\nexport const safeParse = <T>(\n surface: string,\n schema: z.ZodSchema<T>,\n value: unknown\n) => {\n const parseResult = schema.safeParse(value);\n if (!parseResult.success) {\n return parseErr(surface, {\n cause: 'invalid_data',\n message: JSON.stringify(z.treeifyError(parseResult.error), null, 2),\n error: parseResult.error,\n });\n }\n return ok(parseResult.data);\n};\n","import contentType from 'content-type';\nimport { err, ok, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type z from 'zod';\n\nimport type { BaseError, Error } from '@agentcash/neverthrow/types';\nimport type { BaseFetchError, FetchError, ParsedResponse } from './types';\nimport type { JsonObject } from '../json/types';\nimport { safeParse } from '../parse';\n\n/** Default timeout (ms) for infrastructure fetches (discovery, probes, specs). */\nexport const DEFAULT_FETCH_TIMEOUT = 10_000;\n\n/** Default timeout (ms) for external resource fetches where response time is unknown. */\nexport const DEFAULT_USER_FETCH_TIMEOUT = 30_000;\n\nconst IMAGE_TYPES = new Set([\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/tiff',\n 'image/bmp',\n 'image/ico',\n]);\n\nconst errorType = 'fetch';\n\nexport const fetchErr = (surface: string, error: BaseFetchError) =>\n err(errorType, surface, error);\nexport const fetchOk = <T>(value: T) => ok(value);\n\nexport const fetchHttpErr = (surface: string, response: Response) =>\n fetchErr(surface, {\n cause: 'http' as const,\n statusCode: response.status,\n message: response.statusText,\n response,\n });\n\nexport const safeFetch = (\n surface: string,\n request: Request,\n timeout?: number\n) => {\n const signal = timeout ? AbortSignal.timeout(timeout) : undefined;\n\n return resultFromPromise(\n errorType,\n surface,\n fetch(request, ...(signal ? [{ signal }] : [])),\n error => {\n if (\n error instanceof DOMException &&\n (error.name === 'TimeoutError' || error.name === 'AbortError')\n ) {\n return {\n cause: 'timeout',\n message: timeout\n ? `Request timed out after ${timeout}ms. You can increase the timeout by passing a larger value in the 'timeout' parameter.`\n : 'Request was aborted',\n } as BaseFetchError;\n }\n\n return {\n cause: 'network',\n message: error instanceof Error ? error.message : 'Network error',\n } as BaseFetchError;\n }\n );\n};\n\nexport const safeFetchJson = <T>(\n surface: string,\n request: Request,\n schema: z.ZodSchema<T>,\n timeout?: number\n) => {\n return safeFetch(surface, request, timeout)\n .andThen(response => {\n if (!response.ok) {\n return fetchHttpErr(surface, response);\n }\n\n return resultFromPromise(errorType, surface, response.json(), () => ({\n cause: 'parse' as const,\n message: 'Could not parse JSON from response',\n statusCode: response.status,\n contentType: response.headers.get('content-type') ?? 'Not specified',\n }));\n })\n .andThen(data => safeParse(surface, schema, data));\n};\n\nexport const safeParseResponse = (surface: string, response: Response) => {\n return resultFromPromise(\n errorType,\n surface,\n (async (): Promise<ParsedResponse> => {\n const header = response.headers.get('content-type');\n const { type: mimeType } = header\n ? contentType.parse(header)\n : { type: 'application/octet-stream' };\n\n switch (mimeType) {\n case 'application/json':\n return {\n type: 'json' as const,\n data: (await response.json()) as JsonObject,\n };\n case 'application/pdf':\n return {\n type: 'pdf' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n case 'application/octet-stream':\n return {\n type: 'octet-stream' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n case 'multipart/form-data':\n return { type: 'formData' as const, data: await response.formData() };\n }\n\n if (IMAGE_TYPES.has(mimeType)) {\n return {\n type: 'image' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('audio/')) {\n return {\n type: 'audio' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('video/')) {\n return {\n type: 'video' as const,\n mimeType,\n data: await response.arrayBuffer(),\n };\n }\n\n if (mimeType.startsWith('text/')) {\n return { type: 'text' as const, data: await response.text() };\n }\n\n throw new Error(`Unsupported content type: ${header}`);\n })(),\n e => ({\n cause: 'parse' as const,\n message: e instanceof Error ? e.message : 'Could not parse response',\n statusCode: response.status,\n contentType: response.headers.get('content-type') ?? 'Not specified',\n })\n );\n};\n\nexport const isFetchError = (error: Error<BaseError>): error is FetchError => {\n return error.type === errorType;\n};\n","import open from 'open';\n\nimport type { GlobalFlags } from '@/types';\n\nexport const getBaseUrl = (dev: boolean) => {\n return dev ? 'http://localhost:3000' : 'https://x402scan.com';\n};\n\nexport const getDepositLink = (address: string, flags: GlobalFlags) => {\n return `${getBaseUrl(flags.dev)}/mcp/deposit/${address}`;\n};\n\nexport const openDepositLink = async (address: string, flags: GlobalFlags) => {\n const depositLink = getDepositLink(address, flags);\n await open(depositLink);\n};\n","import z from 'zod';\n\nimport { getBaseUrl } from '@/shared/utils';\nimport { safeFetchJson } from '@/shared/neverthrow/fetch';\n\nimport type { Address } from 'viem';\nimport type { GlobalFlags } from '@/types';\n\ninterface GetBalanceProps {\n address: Address;\n flags: GlobalFlags;\n surface: string;\n}\n\nexport const getBalance = async ({\n address,\n flags,\n surface,\n}: GetBalanceProps) => {\n const url = `${getBaseUrl(flags.dev)}/api/rpc/balance/${address}`;\n\n const res = await safeFetchJson(\n surface,\n new Request(url, {\n method: 'GET',\n headers: {\n accept: 'application/json',\n },\n }),\n z.object({\n chain: z.number(),\n balance: z.coerce.number(),\n })\n );\n\n return res;\n};\n"],"mappings":"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","names":["v","ok","err","Result","fromThrowable","ok","err","type","ok","err","type","err","err","ok","errorType","err","ok","z","z"]}
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  MCP_VERSION
3
- } from "./chunk-SBLBP4FH.js";
3
+ } from "./chunk-7LPATNAW.js";
4
4
  import {
5
+ DEFAULT_FETCH_TIMEOUT,
5
6
  err,
6
7
  getBalance,
7
8
  getBaseUrl,
@@ -13,9 +14,10 @@ import {
13
14
  safeFetch,
14
15
  safeFetchJson,
15
16
  safeParseResponse
16
- } from "./chunk-PJFATGPH.js";
17
+ } from "./chunk-EO4BIJAO.js";
17
18
 
18
19
  // src/shared/operations/check-endpoint.ts
20
+ import { Challenge } from "mppx";
19
21
  import { x402Client, x402HTTPClient } from "@x402/core/client";
20
22
 
21
23
  // src/shared/neverthrow/x402/index.ts
@@ -72,44 +74,6 @@ var safeCreateSIWxPayload = (surface, serverInfo, signer) => {
72
74
  );
73
75
  };
74
76
 
75
- // src/shared/neverthrow/mpp/index.ts
76
- import { Challenge, Receipt } from "mppx";
77
- var errorType2 = "mpp";
78
- var mppOk = (value) => ok(value);
79
- var mppErr = (surface, error) => err(errorType2, surface, error);
80
- var mppResultFromPromise = (surface, promise, error) => resultFromPromise(errorType2, surface, promise, error);
81
- var mppResultFromThrowable = (surface, fn, error) => resultFromThrowable(errorType2, surface, fn, error);
82
- var safeGetMppChallenge = (surface, response) => {
83
- return mppResultFromThrowable(
84
- surface,
85
- () => Challenge.fromResponse(response),
86
- (error) => ({
87
- cause: "parse_mpp_challenge",
88
- message: error instanceof Error ? error.message : "Failed to parse MPP challenge from response"
89
- })
90
- );
91
- };
92
- var safeCreateMppCredential = (surface, mppxClient, response) => {
93
- return mppResultFromPromise(
94
- surface,
95
- mppxClient.createCredential(response),
96
- (error) => ({
97
- cause: "create_mpp_credential",
98
- message: error instanceof Error ? error.message : "Failed to create MPP credential"
99
- })
100
- );
101
- };
102
- var safeGetMppReceipt = (surface, response) => {
103
- return mppResultFromThrowable(
104
- surface,
105
- () => Receipt.fromResponse(response),
106
- (error) => ({
107
- cause: "parse_mpp_receipt",
108
- message: error instanceof Error ? error.message : "Failed to parse MPP receipt from response"
109
- })
110
- );
111
- };
112
-
113
77
  // src/shared/protocol.ts
114
78
  function detectPaymentProtocols(response) {
115
79
  const protocols = [];
@@ -134,15 +98,14 @@ async function fetchOpenApiSpec(origin) {
134
98
  if (cached) return cached;
135
99
  const uniqueUrls = [
136
100
  `${origin}/openapi.json`,
137
- `${origin}/.well-known/openapi.json`,
138
- `${origin}/.well-known/x402`,
139
- `${origin}/.well-known/mpp`
101
+ `${origin}/.well-known/openapi.json`
140
102
  ];
141
103
  for (const url of uniqueUrls) {
142
104
  log.debug(`Fetching OpenAPI spec from: ${url}`);
143
105
  const fetchResult = await safeFetch(
144
106
  "fetchOpenApiSpec",
145
- new Request(url, { headers: { Accept: "application/json" } })
107
+ new Request(url, { headers: { Accept: "application/json" } }),
108
+ DEFAULT_FETCH_TIMEOUT
146
109
  );
147
110
  if (fetchResult.isErr()) {
148
111
  log.debug(`Failed to fetch OpenAPI spec from: ${url}`);
@@ -361,6 +324,7 @@ var getSiwxExtension = (extensions) => {
361
324
  };
362
325
 
363
326
  // src/shared/operations/check-endpoint.ts
327
+ var TEMPO_DEFAULT_CHAIN_ID = 4217;
364
328
  var SUPPORTED_METHODS = [
365
329
  "GET",
366
330
  "POST",
@@ -411,37 +375,12 @@ async function probeMethod({
411
375
  headers,
412
376
  includeMethodErrors
413
377
  }) {
414
- const cachedSchemaResult = await resultFromPromise(
415
- "openapi",
378
+ const request = buildProbeRequest(url, method, body, headers);
379
+ const responseResult = await safeFetch(
416
380
  surface,
417
- getEndpointSchema(url, method),
418
- (e) => ({
419
- cause: "cache_lookup",
420
- message: e instanceof Error ? e.message : String(e)
421
- })
381
+ request,
382
+ DEFAULT_FETCH_TIMEOUT
422
383
  );
423
- if (cachedSchemaResult.isOk() && cachedSchemaResult.value) {
424
- const cachedSchema = cachedSchemaResult.value;
425
- const origin = new URL(url).origin;
426
- const path = new URL(url).pathname || "/";
427
- const indexEntry = getIndexEntry(origin, path, method);
428
- return {
429
- method,
430
- source: "openapi",
431
- requiresPayment: true,
432
- schema: cachedSchema,
433
- ...indexEntry?.price ? { estimatedPrice: indexEntry.price } : {},
434
- ...indexEntry?.protocols ? { protocols: indexEntry.protocols } : {},
435
- ...indexEntry?.summary ? { summary: indexEntry.summary } : {}
436
- };
437
- }
438
- if (cachedSchemaResult.isErr()) {
439
- log.debug(
440
- `Cache lookup failed for ${method} ${url}, falling back to 402 probe`
441
- );
442
- }
443
- const request = buildProbeRequest(url, method, body, headers);
444
- const responseResult = await safeFetch(surface, request);
445
384
  if (responseResult.isErr()) {
446
385
  log.debug(`${method} ${url} probe failed`, responseResult.error);
447
386
  return null;
@@ -451,7 +390,6 @@ async function probeMethod({
451
390
  if (includeMethodErrors && (response.status === 404 || response.status === 405)) {
452
391
  return {
453
392
  method,
454
- source: "probe",
455
393
  requiresPayment: false,
456
394
  statusCode: response.status
457
395
  };
@@ -462,46 +400,50 @@ async function probeMethod({
462
400
  if (response.status !== 402) {
463
401
  return {
464
402
  method,
465
- source: "probe",
466
403
  requiresPayment: false,
467
404
  statusCode: response.status
468
405
  };
469
406
  }
470
407
  const protocols = detectPaymentProtocols(response);
471
- const paymentMethods = [];
408
+ const paymentOptions = [];
409
+ let schema;
410
+ const endpointSchemaResult = await resultFromPromise(
411
+ "openapi",
412
+ surface,
413
+ getEndpointSchema(url, method),
414
+ (e) => ({
415
+ cause: "schema_fetch",
416
+ message: e instanceof Error ? e.message : String(e)
417
+ })
418
+ );
419
+ if (endpointSchemaResult.isOk() && endpointSchemaResult.value) {
420
+ schema = endpointSchemaResult.value;
421
+ } else if (endpointSchemaResult.isErr()) {
422
+ log.debug(`Failed to fetch OpenAPI schema for: ${url}`);
423
+ }
472
424
  if (protocols.includes("mpp")) {
473
- const challengeResult = safeGetMppChallenge(surface, response);
474
- if (challengeResult.isOk()) {
475
- const challenge = challengeResult.value;
425
+ for (const challenge of parseMppChallenges(response)) {
476
426
  const currency = challenge.request.currency;
477
427
  const amount = challenge.request.amount;
478
428
  const decimals = challenge.request.decimals ?? 6;
479
- let schema;
480
- const endpointSchemaResult = await resultFromPromise(
481
- "openapi",
482
- surface,
483
- getEndpointSchema(url, method),
484
- (e) => ({
485
- cause: "schema_fetch",
486
- message: e instanceof Error ? e.message : String(e)
487
- })
488
- );
489
- if (endpointSchemaResult.isOk() && endpointSchemaResult.value) {
490
- schema = endpointSchemaResult.value;
491
- } else if (endpointSchemaResult.isErr()) {
492
- log.debug(`Failed to fetch OpenAPI schema for: ${url}`);
429
+ const recipient = challenge.request.recipient;
430
+ const methodDetails = challenge.request.methodDetails;
431
+ const chainId = methodDetails?.chainId ?? TEMPO_DEFAULT_CHAIN_ID;
432
+ const network = `tempo:${String(chainId)}`;
433
+ const description = challenge.description ?? schema?.summary;
434
+ if (amount && currency) {
435
+ paymentOptions.push({
436
+ protocol: "mpp",
437
+ paymentMethod: challenge.method,
438
+ intent: challenge.intent,
439
+ realm: challenge.realm,
440
+ price: tokenStringToNumber(amount, decimals),
441
+ network,
442
+ asset: currency,
443
+ ...recipient ? { recipient } : {},
444
+ ...description ? { description } : {}
445
+ });
493
446
  }
494
- paymentMethods.push({
495
- protocol: "mpp",
496
- method: challenge.method,
497
- intent: challenge.intent,
498
- realm: challenge.realm,
499
- ...challenge.description ? { description: challenge.description } : {},
500
- ...amount ? { price: tokenStringToNumber(amount, decimals) } : {},
501
- ...currency ? { currency } : {},
502
- ...schema ? { schema } : {},
503
- network: `tempo:${challenge.method}`
504
- });
505
447
  }
506
448
  }
507
449
  if (protocols.includes("x402")) {
@@ -513,27 +455,75 @@ async function probeMethod({
513
455
  );
514
456
  if (paymentRequiredResult.isOk()) {
515
457
  const { resource, extensions, accepts } = paymentRequiredResult.value;
458
+ if (!schema) {
459
+ const inputSchema = getInputSchema(extensions);
460
+ if (inputSchema) schema = inputSchema;
461
+ }
516
462
  for (const accept of accepts) {
517
- paymentMethods.push({
463
+ paymentOptions.push({
518
464
  protocol: "x402",
519
- ...resource,
520
- schema: getInputSchema(extensions),
521
465
  price: tokenStringToNumber(accept.amount),
522
466
  network: accept.network,
523
- asset: accept.asset
467
+ asset: accept.asset,
468
+ ...accept.payTo ? { recipient: accept.payTo } : {},
469
+ ...resource.description ? { description: resource.description } : {},
470
+ ...resource.mimeType ? { mimeType: resource.mimeType } : {}
524
471
  });
525
472
  }
526
473
  }
527
474
  }
475
+ let estimatedPrice;
476
+ let summary;
477
+ const indexResult = resultFromThrowable(
478
+ "openapi",
479
+ surface,
480
+ () => {
481
+ const origin = new URL(url).origin;
482
+ const path = new URL(url).pathname || "/";
483
+ return getIndexEntry(origin, path, method);
484
+ },
485
+ (e) => ({
486
+ cause: "index_lookup",
487
+ message: e instanceof Error ? e.message : String(e)
488
+ })
489
+ );
490
+ if (indexResult.isOk() && indexResult.value) {
491
+ if (indexResult.value.price) estimatedPrice = indexResult.value.price;
492
+ if (indexResult.value.summary) summary = indexResult.value.summary;
493
+ }
528
494
  return {
529
495
  method,
530
- source: "probe",
531
496
  requiresPayment: true,
532
497
  statusCode: response.status,
533
498
  protocols,
534
- paymentMethods
499
+ paymentOptions,
500
+ ...schema ? { schema } : {},
501
+ ...estimatedPrice ? { estimatedPrice } : {},
502
+ ...summary ? { summary } : {}
535
503
  };
536
504
  }
505
+ function parseMppChallenges(response) {
506
+ const header = response.headers.get("WWW-Authenticate");
507
+ if (!header) return [];
508
+ const challenges = [];
509
+ for (const segment of header.split(/,\s*(?=Payment\s)/i)) {
510
+ const result = resultFromThrowable(
511
+ "mpp",
512
+ "check-endpoint",
513
+ () => Challenge.deserialize(segment.trim()),
514
+ (e) => ({
515
+ cause: "challenge_parse",
516
+ message: e instanceof Error ? e.message : String(e)
517
+ })
518
+ );
519
+ if (result.isOk()) {
520
+ challenges.push(result.value);
521
+ } else {
522
+ log.debug("Failed to parse MPP challenge segment", result.error.message);
523
+ }
524
+ }
525
+ return challenges;
526
+ }
537
527
  function buildProbeRequest(url, method, body, headers) {
538
528
  const supportsBody = ["POST", "PUT", "PATCH"].includes(method);
539
529
  const requestBody = supportsBody && body ? typeof body === "string" ? body : JSON.stringify(body) : void 0;
@@ -553,7 +543,8 @@ async function fetchLlmsTxt(surface, origin) {
553
543
  log.debug(`Fetching llms.txt from: ${llmsTxtUrl}`);
554
544
  const result = await safeFetch(
555
545
  surface,
556
- new Request(llmsTxtUrl, { headers: { Accept: "text/plain" } })
546
+ new Request(llmsTxtUrl, { headers: { Accept: "text/plain" } }),
547
+ DEFAULT_FETCH_TIMEOUT
557
548
  );
558
549
  if (result.isErr()) return null;
559
550
  if (!result.value.ok) return null;
@@ -570,7 +561,7 @@ async function discoverResources(surface, url) {
570
561
  ]);
571
562
  if (!spec?.paths) {
572
563
  log.debug(
573
- `No OpenAPI spec found for ${origin}. Tried: /openapi.json, /.well-known/openapi.json, /.well-known/x402, /.well-known/mpp`
564
+ `No OpenAPI spec found for ${origin}. Tried: /openapi.json, /.well-known/openapi.json`
574
565
  );
575
566
  return null;
576
567
  }
@@ -580,9 +571,16 @@ async function discoverResources(surface, url) {
580
571
  return null;
581
572
  }
582
573
  log.info(`Found ${endpoints.length} endpoints for: ${origin}`);
574
+ const rawInfo = spec.info;
575
+ const info = rawInfo && typeof rawInfo.title === "string" ? {
576
+ title: rawInfo.title,
577
+ ...typeof rawInfo.version === "string" ? { version: rawInfo.version } : {},
578
+ ...typeof rawInfo.description === "string" ? { description: rawInfo.description } : {}
579
+ } : void 0;
583
580
  return {
584
581
  origin,
585
582
  source: "openapi",
583
+ ...info ? { info } : {},
586
584
  endpoints: endpoints.map(({ path, method, summary, price, protocols }) => ({
587
585
  path,
588
586
  method,
@@ -699,11 +697,6 @@ export {
699
697
  safeCreatePaymentPayload,
700
698
  safeGetPaymentSettlement,
701
699
  safeCreateSIWxPayload,
702
- mppOk,
703
- mppErr,
704
- safeGetMppChallenge,
705
- safeCreateMppCredential,
706
- safeGetMppReceipt,
707
700
  detectPaymentProtocols,
708
701
  tokenStringToNumber,
709
702
  getTempoBalance,
@@ -715,4 +708,4 @@ export {
715
708
  getWalletInfo,
716
709
  submitErrorReport
717
710
  };
718
- //# sourceMappingURL=chunk-RP5AGYAT.js.map
711
+ //# sourceMappingURL=chunk-SHAJ42CH.js.map