{"_id":"@agenticfi/onchain-router-proxy","_rev":"5-8026082d1790f1953c4b4c6b8d03eee3","name":"@agenticfi/onchain-router-proxy","dist-tags":{"alpha":"0.1.2","latest":"0.1.3"},"versions":{"0.1.0":{"name":"@agenticfi/onchain-router-proxy","version":"0.1.0","keywords":["openai","proxy","x402","usdc","base","ai-agents","llm"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router-proxy@0.1.0","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/proxy","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"bin":{"onchain-router-proxy":"dist/index.js"},"dist":{"shasum":"2690d11be6b8eb7319735a739725b0255e68cce5","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router-proxy/-/onchain-router-proxy-0.1.0.tgz","fileCount":6,"integrity":"sha512-eq5czSlPCzAzT76diTpGNnOp4nw3SeIaFke5TRbLD5vtXTGL7ggHmmwG2e/pNznHSjEtHFU8S/llsczgyHhZ2A==","signatures":[{"sig":"MEQCIEXJBWkt3mo4uRaZMGRiF+XgcKdlUsbVX5OwbU9cPe88AiAvb5LVe9aTFVyatVJDZbBdjxxzRl0rjQ3PU0VmcAAfNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router-proxy@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57656},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.0.tgz","engines":{"node":">=20.18.0"},"private":false,"scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean && chmod 755 dist/index.js","clean":"rm -rf dist coverage","test:unit":"vitest run","typecheck":"tsc --noEmit","test:integration":"vitest run --passWithNoTests"},"_npmUser":{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"},"_resolved":"/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.0.tgz","_integrity":"sha512-eq5czSlPCzAzT76diTpGNnOp4nw3SeIaFke5TRbLD5vtXTGL7ggHmmwG2e/pNznHSjEtHFU8S/llsczgyHhZ2A==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"apps/buyer-proxy"},"_npmVersion":"11.5.1","description":"Authenticated local OpenAI-compatible proxy for the Onchain Router Buyer Runtime","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@agenticfi/onchain-router":"0.1.0","@agenticfi/onchain-router-buyer-core":"0.1.0"},"publishConfig":{"tag":"alpha","access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","tsup":"8.5.1","openai":"7.4.0","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router-proxy_0.1.0_1788263658916_0.7006280187084952","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/proxy. Install @onchainrouter/proxy@0.2.0."},"0.1.1":{"name":"@agenticfi/onchain-router-proxy","version":"0.1.1","keywords":["openai","proxy","x402","usdc","base","ai-agents","llm"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router-proxy@0.1.1","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/proxy","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"bin":{"onchain-router-proxy":"dist/index.js"},"dist":{"shasum":"7e321adce5120331e0facb48493c259aa66823b4","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router-proxy/-/onchain-router-proxy-0.1.1.tgz","fileCount":6,"integrity":"sha512-A2YoKN/Sig2igIpiYI7soj8fxyA0J25HX1dgr1gGRdLElBvm7TPrxvyZgMN2br+KwGy29KAHFzzTzfh3mdxyLQ==","signatures":[{"sig":"MEUCIA3M64kIospq7/4p8c0HdUjw3PKyGfXiGQfLqNseQ/YyAiEAzEqcYudmmoqG39P58QgpZADWqLih7Dzm3Prv6LViP/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router-proxy@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57734},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.1.tgz","engines":{"node":">=20.18.0"},"private":false,"scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean && chmod 755 dist/index.js","clean":"rm -rf dist coverage","test:unit":"vitest run","typecheck":"tsc --noEmit","test:integration":"vitest run --passWithNoTests"},"_npmUser":{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"},"_resolved":"/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.1.tgz","_integrity":"sha512-A2YoKN/Sig2igIpiYI7soj8fxyA0J25HX1dgr1gGRdLElBvm7TPrxvyZgMN2br+KwGy29KAHFzzTzfh3mdxyLQ==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"apps/buyer-proxy"},"_npmVersion":"11.5.1","description":"Authenticated local OpenAI-compatible proxy for the Onchain Router Buyer Runtime","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@agenticfi/onchain-router":"0.1.1","@agenticfi/onchain-router-buyer-core":"0.1.1"},"publishConfig":{"tag":"alpha","access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"4.21.0","tsup":"8.5.1","openai":"7.4.0","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router-proxy_0.1.1_1788387701857_0.5198915665919419","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/proxy. Install @onchainrouter/proxy@0.2.0."},"0.1.2":{"name":"@agenticfi/onchain-router-proxy","version":"0.1.2","keywords":["openai","proxy","x402","usdc","base","ai-agents","llm"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router-proxy@0.1.2","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/proxy","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"bin":{"onchain-router-proxy":"dist/index.js"},"dist":{"shasum":"2af2ed150653993f56425b9704c83463fae23b0a","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router-proxy/-/onchain-router-proxy-0.1.2.tgz","fileCount":6,"integrity":"sha512-mZfgGS4FENBWVza6jFvVb+GxLLumJqgCm4ji3LZ4BXcb7HhFuzqy9Lr7fTf1xzGVe35QHnB7/4Zo5EbkMHptvA==","signatures":[{"sig":"MEUCIQDldplbPF/u3hbi17095wOaOIB36A88SMQDiXPul7qmawIgXAWl0fa3m7RZ0cKWHCgk1lUey9tOE5Cly4QAMeBgh1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router-proxy@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57685},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.2.tgz","engines":{"node":">=20.18.0"},"private":false,"scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean && chmod 755 dist/index.js","clean":"rm -rf dist coverage","test:unit":"vitest run","typecheck":"tsc --noEmit","test:integration":"vitest run --passWithNoTests"},"_npmUser":{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"},"_resolved":"/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.2.tgz","_integrity":"sha512-mZfgGS4FENBWVza6jFvVb+GxLLumJqgCm4ji3LZ4BXcb7HhFuzqy9Lr7fTf1xzGVe35QHnB7/4Zo5EbkMHptvA==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"apps/buyer-proxy"},"_npmVersion":"11.5.1","description":"Authenticated local OpenAI-compatible proxy for the Onchain Router Buyer Runtime","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@agenticfi/onchain-router":"0.1.2","@agenticfi/onchain-router-buyer-core":"0.1.2"},"publishConfig":{"tag":"alpha","access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"4.21.0","tsup":"8.5.1","openai":"7.4.0","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router-proxy_0.1.2_1788443502968_0.4146473648366751","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/proxy. Install @onchainrouter/proxy@0.2.0."},"0.1.3":{"name":"@agenticfi/onchain-router-proxy","version":"0.1.3","keywords":["openai","proxy","x402","usdc","base","ai-agents","llm"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router-proxy@0.1.3","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://onchainrouter.dev/docs/proxy","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"bin":{"onchain-router-proxy":"dist/index.js"},"dist":{"shasum":"38c3bb6a6765835652eaf54294991fd9b73c9893","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router-proxy/-/onchain-router-proxy-0.1.3.tgz","fileCount":6,"integrity":"sha512-vECbxHqJrGetIobDnonopqKjqgp0mGguEIjshvapDeVFMHVTw+AixnIqfQWer2D0BQoMF/Z7I6VL3ego59ZnSQ==","signatures":[{"sig":"MEUCICKjKl2lAmKBd1A+sRquYBMSjrpoN9eA99ofJqKmu/nwAiEA0qI83hssxEUwQSLi8v8eawzQQo88afC0CeWAK0+/mzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router-proxy@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57632},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.3.tgz","engines":{"node":">=20.18.0"},"private":false,"scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean && chmod 755 dist/index.js","clean":"rm -rf dist coverage","test:unit":"vitest run","typecheck":"tsc --noEmit","test:integration":"vitest run --passWithNoTests"},"_npmUser":{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"},"_resolved":"/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-proxy-0.1.3.tgz","_integrity":"sha512-vECbxHqJrGetIobDnonopqKjqgp0mGguEIjshvapDeVFMHVTw+AixnIqfQWer2D0BQoMF/Z7I6VL3ego59ZnSQ==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"apps/buyer-proxy"},"_npmVersion":"11.5.1","description":"Authenticated local OpenAI-compatible proxy for the Onchain Router Buyer Runtime","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@agenticfi/onchain-router":"0.1.3","@agenticfi/onchain-router-buyer-core":"0.1.3"},"publishConfig":{"tag":"latest","access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","tsup":"8.5.1","openai":"7.4.0","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router-proxy_0.1.3_1788514392683_0.013208874720500363","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/proxy. Install @onchainrouter/proxy@0.2.0."}},"time":{"created":"2026-09-01T11:54:18.680Z","modified":"2026-09-04T13:30:30.807Z","0.1.0":"2026-09-01T11:54:19.061Z","0.1.1":"2026-09-02T22:21:41.998Z","0.1.2":"2026-09-03T13:51:43.105Z","0.1.3":"2026-09-04T09:33:12.817Z"},"bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"author":{"name":"AgenticFI"},"license":"MIT","homepage":"https://onchainrouter.dev/docs/proxy","keywords":["openai","proxy","x402","usdc","base","ai-agents","llm"],"repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"apps/buyer-proxy"},"description":"Authenticated local OpenAI-compatible proxy for the Onchain Router Buyer Runtime","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"readme":"# Onchain Router Local Proxy\n\n`@agenticfi/onchain-router-proxy` is the loopback OpenAI-compatible adapter for Buyer Runtime. It lets an\nOpenAI-compatible client use paid Onchain Router chat without implementing x402. The proxy exposes:\n\n- `GET /v1/models` — live models intersected with the human-owned local policy;\n- `GET /v1/pricing` and `GET /v1/audio/voices` — free discovery;\n- `POST /v1/chat/completions` — non-streaming paid chat, or session-isolated reuse of a paid answer.\n- `POST /v1/messages`, `/v1/images/generations`, `/v1/audio/speech`, and\n  `/v1/audio/transcriptions` — bounded JSON requests through the same Buyer Runtime.\n\nThe process always binds to `127.0.0.1`, rejects browser/CORS requests and unexpected `Host`\nheaders, and requires a 256-bit non-wallet bearer stored in an owner-only file. It has no wallet,\npolicy, receipt-token, signing, payment-configuration, or arbitrary proxy endpoint.\nSetup, unlock, funding, policy changes, and receipt inspection remain direct CLI/SDK actions.\n\n## Release status\n\nVersion `0.1.3` is the stable npm release for the `onchainrouter.dev` domain cutover. It is not a claim of qualification\nacross every OpenAI-compatible client. Keep it bound to loopback and preserve the bearer, Host,\nbrowser, body, and idempotency controls.\n\n## Requirements\n\n- Node.js 20.18 or newer;\n- macOS or Linux;\n- the matching Onchain Router CLI and Buyer Runtime;\n- an already-created, currently unlocked buyer profile;\n- an OpenAI-compatible client that supports a custom base URL, bearer, non-streaming JSON, and\n  disabled automatic retries.\n\nThis is a single-user local adapter, not a hosted gateway. It must not be exposed through port\nforwarding, a reverse proxy, a tunnel, a container host bind, or a public network interface.\n\nSpeech returns hosted-audio JSON, not the OpenAI SDK's binary audio response. Transcription uses\nMP3 Base64 JSON with `acknowledge_provider_retention: true`, not multipart upload. Those audio\nmethods are therefore not drop-in binary/multipart OpenAI replacements. Images use hosted URLs\nby default; all media bypasses caching. Live catalog limits remain authoritative.\n\n## Installation\n\nInstall the stable release explicitly:\n\n```bash\nnpm install --global @agenticfi/onchain-router-proxy@0.1.3\nonchain-router-proxy --version\n```\n\nTo build the exact published source:\n\n```bash\ncorepack enable\npnpm install --frozen-lockfile\npnpm buyer:deps\npnpm exec turbo run build --filter=@agenticfi/onchain-router-proxy...\n```\n\n## Quick start\n\nBuild the private artifact, complete Buyer Runtime setup/unlock in a human terminal, then start the\nproxy:\n\n```bash\npnpm --filter @agenticfi/onchain-router-proxy build\nonchain-router setup\nonchain-router unlock\nnode apps/buyer-proxy/dist/index.js\n```\n\nThe first start creates `~/.onchain-router/proxy-token` with owner-only permissions. Startup prints\nonly its path, never its value. `--print-config` returns the loopback base URL, token-file path,\nendpoints, streaming rule, and idempotency header without reading or revealing the bearer:\n\n```bash\nnode apps/buyer-proxy/dist/index.js --print-config\n```\n\nNo option can change the listener host. `--port` accepts a local TCP port and defaults to `8402`.\n\n## Official OpenAI TypeScript client\n\nOnly the base URL, API key source, and model differ from an ordinary non-streaming OpenAI call.\nRead the local bearer directly into the client process; do not print it or put it in source control.\nUse a stable `Idempotency-Key` for each logical paid request and reuse that same key only with the\nidentical request.\n\n```ts\nimport { readFileSync } from 'node:fs';\nimport OpenAI from 'openai';\n\nconst client = new OpenAI({\n  baseURL: 'http://127.0.0.1:8402/v1',\n  apiKey: readFileSync(`${process.env.HOME}/.onchain-router/proxy-token`, 'utf8'),\n  defaultHeaders: { 'Idempotency-Key': crypto.randomUUID() },\n  maxRetries: 0,\n});\n\nconst result = await client.chat.completions.create({\n  model: 'gemini-2.5-flash',\n  messages: [{ role: 'user', content: 'Explain this contract.' }],\n  max_tokens: 512,\n  stream: false,\n});\n```\n\nThe official TypeScript SDK contract is covered by repository tests. Other OpenAI-compatible\nclients use the same three settings:\n\n```text\nbase URL:  http://127.0.0.1:8402/v1\nAPI key:   contents of ~/.onchain-router/proxy-token\nmodel:     one ID returned by GET /v1/models\n```\n\nAn omitted idempotency header receives a generated key in\n`x-onchain-router-idempotency-key`, which is enough for a normal completed response. A caller that\nneeds safe lost-response/restart recovery must set and retain its own stable key before sending the\nrequest; a key learned only from a lost response cannot be recovered. The proxy never retries a\npaid request by itself.\n\n## Response caching\n\nEligible identical text requests without a caller-supplied idempotency key reuse verified answers\nfor up to ten minutes in process memory. The cache is isolated by wallet, agent, session, policy,\norigin, and catalog, bounded to 200 entries / 1 MiB per body / 16 MiB serialized data, and cleared\non shutdown. Live discovery and unlocked-broker checks run before hits. No disk cache, prompt log,\ncross-customer reuse, tool/media caching, or additional payment lifecycle is introduced.\n\nUse `Cache-Control: no-cache` to refresh, `Cache-Control: no-store` or JSON `cache: false` /\n`no_cache: true` to bypass, and `--no-cache` to disable the process cache. Explicit idempotency keys\nalways bypass it; the recovery-safe SDK example above intentionally uses that path. Concurrent\nfresh misses are not coalesced. Refresh for a new stochastic sample or time-sensitive information.\n\nA hit retains the original response body and source idempotency key. It reports\n`x-onchain-router-cache: HIT`, `x-onchain-router-outcome: CachedResponse`,\n`x-onchain-router-charge-atomic: 0`, `x-onchain-router-source-receipt-id`, and cache age/expiry\nheaders. There is no new payment or receipt; ordinary payment/receipt headers are omitted, and\nbody usage describes the original inference. Misses report `MISS`; excluded requests report\n`BYPASS`. Responses remain HTTP `Cache-Control: no-store`. See the canonical\n[proxy guide](https://onchainrouter.dev/docs/proxy) for details. Direct SDK, CLI, MCP, public API,\nand provider cached-token pricing are unchanged.\n\n## Result and failure contract\n\nA paid successful response body is the original OpenAI-compatible chat completion. Headers include the\nidempotency key, outcome, receipt ID, Base network, authorized maximum, actual atomic USDC amount,\nand transaction. They never include the receipt capability or payment signature.\n\nErrors use an OpenAI-compatible `error` object plus `onchain_router.outcome` and\n`onchain_router.retry`. Provider-unknown and settlement-unknown outcomes are HTTP `409` with\n`retry: human_review` and `x-should-retry: false`, never a generic retryable `5xx`. Every error\nsuppresses the official OpenAI client's automatic retries. A disconnect before Buyer Runtime\nhandoff is cancelled; a disconnect afterward does not interrupt financial finalization. Recover\nmanually with the same idempotency key and identical body.\n\n## Security\n\n- Use a dedicated low-balance wallet and conservative human-owned policy.\n- Keep the proxy on `127.0.0.1`; do not weaken Host, bearer, browser, CORS, or body checks.\n- Keep the owner-only bearer file out of source control, logs, screenshots, prompts, and shared\n  configuration. It is not the wallet key, but it authorizes local access to an unlocked buyer.\n- Set `maxRetries: 0` in higher-level clients and retain one stable idempotency key per logical paid\n  request.\n- Keep setup, unlock, funding, backup/restore, policy widening, and receipt-capability access outside\n  the proxy.\n- Treat model output and request content as untrusted; neither can change origin, recipient,\n  network, asset, maximum, or wallet authority.\n- Review the [proxy threat model](https://github.com/AgenticFI/onchain-router-clients/blob/main/apps/buyer-proxy/buyer-proxy-threat-model.md) before adding an endpoint or client.\n\nReport security issues using the repository [`SECURITY.md`](https://github.com/AgenticFI/onchain-router-clients/blob/main/SECURITY.md).\n\n## Troubleshooting\n\n- Proxy will not start: run `onchain-router doctor`, confirm the buyer is unlocked, and check that\n  the port is free.\n- HTTP `401`: reread the owner-only token file inside the client process; do not paste or print it.\n- Host/CORS/browser rejection: use a local server-side client. Browser access is intentionally\n  unsupported.\n- Model or media option rejected: refresh `/v1/models`, `/v1/pricing`, and `/v1/audio/voices`.\n- Unexpected additional request: disable client retries and confirm `maxRetries: 0` is effective.\n- Lost or ambiguous response: keep the exact key/body and inspect the local receipt through the CLI\n  or SDK; do not create a new request.\n- Unexpected cache hit: add a caller-owned idempotency key or `Cache-Control: no-store`; use\n  `--no-cache` to disable caching for the whole proxy process.\n\n## Support\n\nDocumentation: <https://onchainrouter.dev/docs/proxy>\n\nIssues: <https://github.com/AgenticFI/onchain-router-clients/issues>\n\nInclude the package version, client/version, OS, Node version, response status, sanitized outcome,\nand redacted `doctor` output. Never attach the bearer, wallet material, request content, payment\nsignatures, receipt capabilities, or hosted media URLs.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}