{"_id":"@agenticfi/onchain-router","_rev":"5-b90d6a15b3d6dcd685cf08accfa9812c","name":"@agenticfi/onchain-router","dist-tags":{"alpha":"0.1.2","latest":"0.1.3"},"versions":{"0.1.0":{"name":"@agenticfi/onchain-router","version":"0.1.0","keywords":["x402","usdc","base","ai","agents","llm","sdk"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router@0.1.0","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/sdk","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"dist":{"shasum":"6786e622402d60184f5b56e3981fbec989546e3c","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router/-/onchain-router-0.1.0.tgz","fileCount":9,"integrity":"sha512-c9en8ivp/kr+i0J58cJHJneSmIOdHFp973LUVfit1LvlsqfJvS+Gnn1UX5AvWfqW71fFOgrPOs0DSQcmZv8mpg==","signatures":[{"sig":"MEUCIEqGzSyIusUtNoc5Hel0UkEtApNTkXzAfRfN7Sp9iqqQAiEA7EiXhZiG/CymgpnQldbi2olD0v0SfGUfBwmhwFTZoy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62928},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./admin":{"types":"./dist/admin.d.ts","import":"./dist/admin.js"}},"private":false,"scripts":{"lint":"eslint src","test":"vitest run","build":"tsup src/index.ts src/admin.ts --format esm --dts --clean","clean":"rm -rf dist","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-0.1.0.tgz","_integrity":"sha512-c9en8ivp/kr+i0J58cJHJneSmIOdHFp973LUVfit1LvlsqfJvS+Gnn1UX5AvWfqW71fFOgrPOs0DSQcmZv8mpg==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"clients/typescript"},"_npmVersion":"11.5.1","description":"TypeScript SDK for Onchain Router discovery, x402 payments, recovery, and receipts","directories":{},"_nodeVersion":"22.14.0","dependencies":{"viem":"2.55.11","@x402/evm":"2.21.0","@x402/core":"2.21.0","@x402/fetch":"2.21.0","@agenticfi/onchain-router-routing":"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","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router_0.1.0_1788263645276_0.6926026002887444","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/client. Install @onchainrouter/client@0.2.0."},"0.1.1":{"name":"@agenticfi/onchain-router","version":"0.1.1","keywords":["x402","usdc","base","ai","agents","llm","sdk"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router@0.1.1","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/sdk","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"dist":{"shasum":"327c1c650d80c9ab2334fa0982b5be8b2439e050","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router/-/onchain-router-0.1.1.tgz","fileCount":9,"integrity":"sha512-AUn1MvzAx3qKaqZw9W6LR2I+R0ihoKTS+StCzNLnCeahnZtgzlJYEJaj0MDx3n0mRm0mL71sp5THYHhxVxBdRw==","signatures":[{"sig":"MEUCIE2wJODJ89bZOoCxU9tDDehilTX+vjRAd9km+zngwF+IAiEAiDaEvzy6gfKcxQfT4ThZtSsOA0ExH4dYsFlfhlQt7a4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64140},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./admin":{"types":"./dist/admin.d.ts","import":"./dist/admin.js"}},"private":false,"scripts":{"lint":"eslint src","test":"vitest run","build":"tsup src/index.ts src/admin.ts --format esm --dts --clean","clean":"rm -rf dist","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-0.1.1.tgz","_integrity":"sha512-AUn1MvzAx3qKaqZw9W6LR2I+R0ihoKTS+StCzNLnCeahnZtgzlJYEJaj0MDx3n0mRm0mL71sp5THYHhxVxBdRw==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"clients/typescript"},"_npmVersion":"11.5.1","description":"TypeScript SDK for Onchain Router discovery, x402 payments, recovery, and receipts","directories":{},"_nodeVersion":"22.14.0","dependencies":{"viem":"2.55.11","@x402/evm":"2.21.0","@x402/core":"2.21.0","@x402/fetch":"2.21.0","@agenticfi/onchain-router-routing":"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","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router_0.1.1_1788387688673_0.9444616570701854","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/client. Install @onchainrouter/client@0.2.0."},"0.1.2":{"name":"@agenticfi/onchain-router","version":"0.1.2","keywords":["x402","usdc","base","ai","agents","llm","sdk"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router@0.1.2","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://llm.agenticfi.wtf/docs/sdk","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"dist":{"shasum":"99b825cd3fded82b7889778cc739ab8327938a3d","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router/-/onchain-router-0.1.2.tgz","fileCount":9,"integrity":"sha512-HulBjZhzckmkpf5H9Vlh5mN9IMfyWo3X3bz/NEWwd66ecd+JH1YwGEk4y0iVeMIXki5kPc9aPpM/6rCmGZK2vw==","signatures":[{"sig":"MEQCIG8kWHSpeKg9JgbA5cTfwvQilvHsk3B7tGYUtYc39VIJAiA6yK5MXdyu7cqomFpxXzOqtkHUlHQG+Q+jDGBIwFqzfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63186},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./admin":{"types":"./dist/admin.d.ts","import":"./dist/admin.js"}},"private":false,"scripts":{"lint":"eslint src","test":"vitest run","build":"tsup src/index.ts src/admin.ts --format esm --dts --clean","clean":"rm -rf dist","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-0.1.2.tgz","_integrity":"sha512-HulBjZhzckmkpf5H9Vlh5mN9IMfyWo3X3bz/NEWwd66ecd+JH1YwGEk4y0iVeMIXki5kPc9aPpM/6rCmGZK2vw==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"clients/typescript"},"_npmVersion":"11.5.1","description":"TypeScript SDK for Onchain Router discovery, x402 payments, recovery, and receipts","directories":{},"_nodeVersion":"22.14.0","dependencies":{"viem":"2.55.11","@x402/evm":"2.21.0","@x402/core":"2.21.0","@x402/fetch":"2.21.0","@agenticfi/onchain-router-routing":"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","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router_0.1.2_1788443490550_0.26100029988144713","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/client. Install @onchainrouter/client@0.2.0."},"0.1.3":{"name":"@agenticfi/onchain-router","version":"0.1.3","keywords":["x402","usdc","base","ai","agents","llm","sdk"],"author":{"name":"AgenticFI"},"license":"MIT","_id":"@agenticfi/onchain-router@0.1.3","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"homepage":"https://onchainrouter.dev/docs/sdk","bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"dist":{"shasum":"49f1722aff2e81b13d34313fbf00c0f8eb6a0982","tarball":"https://registry.npmjs.org/@agenticfi/onchain-router/-/onchain-router-0.1.3.tgz","fileCount":9,"integrity":"sha512-6YNbg/F6Wge66l/4joU/vLyRTpB5ckY5xXZNyahMla6Uu8S3rFAPV3JMvxpo4i4qbmVK+6Ct5hCSEoesQWLmsg==","signatures":[{"sig":"MEUCIAofDYWgijNF8rZcL1evkZ791tklZtpLT+Q88WL/DaQnAiEAvyNoN8jaGWLS00xOv0BKU73qt65sVVdYf1fD0Y9LtYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agenticfi%2fonchain-router@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63133},"type":"module","_from":"file:/home/runner/work/onchain-router-clients/onchain-router-clients/.artifacts/npm/agenticfi-onchain-router-0.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./admin":{"types":"./dist/admin.d.ts","import":"./dist/admin.js"}},"private":false,"scripts":{"lint":"eslint src","test":"vitest run","build":"tsup src/index.ts src/admin.ts --format esm --dts --clean","clean":"rm -rf dist","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-0.1.3.tgz","_integrity":"sha512-6YNbg/F6Wge66l/4joU/vLyRTpB5ckY5xXZNyahMla6Uu8S3rFAPV3JMvxpo4i4qbmVK+6Ct5hCSEoesQWLmsg==","repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"clients/typescript"},"_npmVersion":"11.5.1","description":"TypeScript SDK for Onchain Router discovery, x402 payments, recovery, and receipts","directories":{},"_nodeVersion":"22.14.0","dependencies":{"viem":"2.55.11","@x402/evm":"2.21.0","@x402/core":"2.21.0","@x402/fetch":"2.21.0","@agenticfi/onchain-router-routing":"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","vitest":"4.1.0","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/onchain-router_0.1.3_1788514376797_0.6156916657846778","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @onchainrouter/client. Install @onchainrouter/client@0.2.0."}},"time":{"created":"2026-09-01T11:54:04.851Z","modified":"2026-09-04T13:30:17.577Z","0.1.0":"2026-09-01T11:54:05.414Z","0.1.1":"2026-09-02T22:21:28.824Z","0.1.2":"2026-09-03T13:51:30.705Z","0.1.3":"2026-09-04T09:32:56.946Z"},"bugs":{"url":"https://github.com/AgenticFI/onchain-router-clients/issues"},"author":{"name":"AgenticFI"},"license":"MIT","homepage":"https://onchainrouter.dev/docs/sdk","keywords":["x402","usdc","base","ai","agents","llm","sdk"],"repository":{"url":"git+https://github.com/AgenticFI/onchain-router-clients.git","type":"git","directory":"clients/typescript"},"description":"TypeScript SDK for Onchain Router discovery, x402 payments, recovery, and receipts","maintainers":[{"name":"sarenabg","email":"saren.abgaryan@yahoo.com"}],"readme":"# Onchain Router TypeScript SDK\n\nBuild applications that discover live AI models and make policy-bounded x402 payments in USDC\nwithout putting wallet secrets in application code. The SDK connects to the local Buyer Runtime,\nwhich owns signing, budgets, recovery, and verified receipts.\n\nOne client covers five paid JSON routes:\n\n- OpenAI-compatible chat completions;\n- Anthropic-compatible messages;\n- image generation with hosted output;\n- text-to-speech with hosted MP3 output;\n- speech-to-text from bounded MP3 Base64.\n\nIt also exposes free models, pricing, voices, balance, payment-contract, and quote discovery.\n\n## Release status\n\nVersion `0.1.3` is the stable npm release for the `onchainrouter.dev` domain cutover. Installation does not authorize\nwallet setup, funding, unlock, policy widening, or a paid request.\n\n## Requirements\n\n- Node.js 20.18 or newer;\n- macOS or Linux;\n- the matching `onchain-router` CLI for setup and unlock;\n- a dedicated Base wallet funded with enough USDC for the intended calls.\n\nThe Buyer Runtime supports Base mainnet only. Discover the live network, USDC contract, recipient,\nmodel catalog, capabilities, and pricing at request time; do not hard-code them from an example.\n\n## Installation\n\nInstall the stable release explicitly:\n\n```bash\nnpm install @agenticfi/onchain-router@0.1.3\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...\npnpm --filter @agenticfi/onchain-router test\n```\n\n## One-time wallet setup\n\nRun authority-changing commands directly in a human terminal:\n\n```bash\nonchain-router setup\nonchain-router funding\nonchain-router policy show\nonchain-router unlock\n```\n\nSetup creates or imports an encrypted dedicated wallet and asks the human to approve models and\ninteger USDC limits. Neither `OnchainRouterBuyer.connect()` nor any paid method accepts a private\nkey, seed phrase, passphrase, or broker capability.\n\n## Quick start\n\nRun `onchain-router models` immediately before choosing a model. The illustrative model below must\nstill be present in live discovery and allowed by the local policy.\n\n```ts\nimport { randomUUID } from 'node:crypto';\nimport { OnchainRouterBuyer } from '@agenticfi/onchain-router';\n\nconst buyer = await OnchainRouterBuyer.connect();\nconst requestKey = randomUUID(); // persist this for recovery\n\ntry {\n  const models = await buyer.discovery.models();\n  console.log(models);\n\n  const result = await buyer.chat(\n    {\n      model: 'gemini-3.6-flash',\n      messages: [{ role: 'user', content: 'Explain x402 in two sentences.' }],\n      max_tokens: 256,\n      stream: false,\n    },\n    requestKey,\n  );\n\n  if (!result.ok) {\n    console.error(result.outcome, result.retry, result.reference);\n    // Follow result.retry. Never replace requestKey after an ambiguous handoff.\n  } else {\n    console.log(result.body);\n    console.log({\n      receipt: result.receipt.id,\n      actualAtomic: result.payment.actualAtomic,\n      maximumAtomic: result.payment.authorizedMaximumAtomic,\n      transaction: result.payment.transaction,\n    });\n  }\n} finally {\n  buyer.close();\n}\n```\n\n`close()` releases local resources but does not end the signer session. Use `await buyer.lock()` or\nthe human CLI's `onchain-router lock` when the session should end.\n\nThe SDK exposes one payment path: x402 v2 `exact` EIP-3009 with Base USDC. Legacy profile migration\nis intentionally available only through the human-owned CLI, not application code.\n\n## Discovery\n\n```ts\nconst models = await buyer.discovery.models();\nconst pricing = await buyer.discovery.pricing();\nconst voices = await buyer.discovery.voices();\nconst balance = await buyer.discovery.balance('0xYourBaseAddress');\n```\n\nDiscovery is free. Treat it as authoritative and refresh it instead of assuming a model, voice,\nsize, price, or provider stays enabled. `discovery.quote()` returns the short-lived fixed amount\nbound to one exact request.\n\n## Media examples\n\nImage output is a hosted bearer URL and currently expires after seven days:\n\n```ts\nconst image = await buyer.images(\n  {\n    model: 'gemini-3.1-flash-lite-image',\n    prompt: 'A geometric blue bridge on a white background',\n    image_size: '1K',\n    aspect_ratio: '1:1',\n    response_format: 'url',\n  },\n  randomUUID(),\n);\n```\n\nSpeech output is hosted MP3 JSON and currently expires after 24 hours:\n\n```ts\nconst speech = await buyer.speech(\n  {\n    model: 'elevenlabs/flash-v2.5',\n    input: 'Hello from Onchain Router.',\n    response_format: 'mp3',\n  },\n  randomUUID(),\n);\n```\n\nTranscription accepts canonical MP3 Base64, not a path or URL. Explicit acknowledgement is\nrequired because ElevenLabs can retain uploaded audio and transcripts independently of Onchain\nRouter staging deletion. The acknowledgement is removed before the API request is signed.\n\n```ts\nimport { readFile } from 'node:fs/promises';\n\nconst mp3Bytes = await readFile('speech.mp3');\nconst transcription = await buyer.transcriptions(\n  {\n    model: 'elevenlabs/scribe-v2',\n    audio_base64: mp3Bytes.toString('base64'),\n    response_format: 'json',\n    acknowledge_provider_retention: true,\n  },\n  randomUUID(),\n);\n```\n\nAlways read exact media fields and limits from live discovery. Hosted media URLs are bearer\ncapabilities: download them before expiry and do not log or publish the complete URL.\n\n## Recovery and receipts\n\nCreate one idempotency key before each logical paid request and persist it with the identical\nrequest body. A normal success includes a locally verified durable receipt. If the response is\nlost, inspect `buyer.receipt(requestKey)` and repeat only when the typed retry directive permits the\nsame key and same body.\n\nNever turn `ProviderOutcomeUnknown` or `SettlementOutcomeUnknown` into a fresh payment or an\nautomatic call to another model. Those outcomes require same-key recovery or human review.\n\n## Experimental smart routing\n\n`buyer.routedChat(body, options, idempotencyKey)` can hard-filter models, obtain authoritative\nmaxima, and select one explicit route with integer-only scoring before using the ordinary Buyer\nRuntime. The return value contains a content-free decision, the normal `BuyerResult`, and on\nsuccess a receipt association.\n\nThis feature remains experimental: the current held-out qualification has not passed every quality\nthreshold. Fallback is always disabled, and no cost-saving or quality claim should be inferred.\nExplicit model selection through `buyer.chat()` remains the supported default.\n\n## Security\n\n- Use a dedicated low-balance wallet and conservative per-call/session/hour/day policy.\n- Keep setup, import, unlock, funding guidance, and policy widening in the direct CLI. Keep the\n  lower-level encrypted backup/restore procedure owner-only.\n- Never pass wallet secrets through SDK constructors, source control, environment variables,\n  prompts, logs, issue reports, or telemetry.\n- Never log prompts, completions, payment signatures, receipt capabilities, or complete media URLs.\n- Set a stable idempotency key and disable higher-layer automatic retries around paid methods.\n- Treat `finish_reason: \"length\"` as a paid, truncated success rather than a reason to retry.\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- `WalletLocked`: run `onchain-router unlock` in a human terminal.\n- Model or option rejected: refresh models, pricing, or voices and compare them with local policy.\n- Budget rejected: inspect `onchain-router status` and `onchain-router policy show`; do not widen it\n  inside an agent.\n- Ambiguous result: preserve the original key/body, inspect the local receipt, and follow\n  `result.retry`.\n- `onchain-router` not found: install/build the matching CLI and ensure it is on `PATH`.\n- Media response too large: use supported hosted output instead of an arbitrarily large inline\n  response.\n\n## Support\n\nDocumentation: <https://onchainrouter.dev/docs/sdk>\n\nIssues: <https://github.com/AgenticFI/onchain-router-clients/issues>\n\nInclude the SDK version, Node version, OS, sanitized outcome code, and redacted diagnostics. Never\nattach wallet material, user content, signatures, or receipt capabilities.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}