{"_id":"@curatedmcp/tokenshield-core","_rev":"11-9d8d6e0a86d4fae76e4c32185a239168","name":"@curatedmcp/tokenshield-core","dist-tags":{"latest":"1.4.0"},"versions":{"0.2.0":{"name":"@curatedmcp/tokenshield-core","version":"0.2.0","license":"MIT","_id":"@curatedmcp/tokenshield-core@0.2.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"2a6487fe973dcbb4b2a4cd4fcc516c0e2962d519","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-0.2.0.tgz","fileCount":61,"integrity":"sha512-JTb2UQPrjBdDC+yfyan2o3DMv8asyF1NdT0+idpkqbcKO65TFeiY12dvdYWWeeUlViSn6xnuvvv0YKtqCw4FOg==","signatures":[{"sig":"MEUCIQDYVHTt+Za0PwyDqYTSrql1iQFCAm6n7QElMU1RMZYz+gIgUQBiLX2tlA6mdDRzL2FBgHubtjdSSrQTI9xqiT95pWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170812},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"4423e3753a0b99bdec2f659dcb759efb011b689b","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_0.2.0_1779024294326_0.370990593126058","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@curatedmcp/tokenshield-core","version":"0.2.1","license":"MIT","_id":"@curatedmcp/tokenshield-core@0.2.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"82d49605e1aac14226cd7c1a0889fd194921bb43","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-0.2.1.tgz","fileCount":62,"integrity":"sha512-e8bu9yCulDJqxzX25zJ9IAaOeaOQYgD3EHlBAfaXEuMR9wvtcYrkF4Rm94TGufU95i9yBtJmCFCP+LVoHrpyvA==","signatures":[{"sig":"MEUCIQCgokj+EMcIAxp6zfyC6RMDoCyLLtc47nxwUfsANhhp2QIgITBUB+9kU5j1hJGB+XqLIClL2DPS9sag+nmSlSs7GDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174890},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"5d951d161f6b9a6fee8caaac08d59ed504f802a4","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_0.2.1_1779029522770_0.7741843029258142","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@curatedmcp/tokenshield-core","version":"0.3.0","license":"MIT","_id":"@curatedmcp/tokenshield-core@0.3.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"1203ce1876f960d99ad8b8aefefc5fb47e7a926b","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-0.3.0.tgz","fileCount":66,"integrity":"sha512-RV/DZm5OXpe2lHHZ4zluvdI7GaA4MXBoznPrOXtZJCaDHGwNJt1JunzrFgqruWsFAeD/3xHHO2z0zCkPkNAjjg==","signatures":[{"sig":"MEUCIQD/XN4tcBqp+/pe2EXXe3riRGdATSCTDX5tyLP+APhBBAIgPLPe8oOAKUnDKLMxyYdPshmPciiDwpbcbPLdjgjHbzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":202472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"f0b979efbf297e3e621b29a3f325c7b20a267217","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_0.3.0_1779038492779_0.7646229808617355","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@curatedmcp/tokenshield-core","version":"1.0.0","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.0.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"110ca433e30474c1e20639a05167b9dbb938d796","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.0.0.tgz","fileCount":66,"integrity":"sha512-fJV0YrczLoaa6P4W5mPy3xHHbORMFAgo3xpszzp3yhRwdDa6mp1HaxRYYufthtP1PmFDpiUjeO9AE7KsFhWyLg==","signatures":[{"sig":"MEQCIEZc5E0Ofr0H34n7uBCSKn99uQ/YzskZRmrZn1LuBRt7AiB/1wjOXqQC1pbOtl/Z9KJChWmP9/LTrrYlk1R9+PKAzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212106},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"4cf54335c2593d74f366cda69abc2c5010a35018","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.0.0_1779042241810_0.5051005790364749","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@curatedmcp/tokenshield-core","version":"1.0.1","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.0.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"1282faec2966a7ebc1f023d12b1597f1db28ad89","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.0.1.tgz","fileCount":66,"integrity":"sha512-IMM2uCYoToCAT3n1i/slZ7ZRt2v9xhoSAWeFBfRAJMME5JhZNvJZENMdaEIKYr6kZjBX3oA+BIofN1iegAigcw==","signatures":[{"sig":"MEUCIQDHTgc3FhnqWXciviYciymougGoAwn63/QlT6QeTPgG5AIgSdw3dI6BeUq3HnaXf2q/mqyfPQoEMeJOAz2/ro5NzFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212106},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"9925ad5ff2f7062648c12e1d2a322a6fca72838c","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.0.1_1779053253773_0.7572229050554826","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@curatedmcp/tokenshield-core","version":"1.0.2","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.0.2","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"c4fa838466fad7e21530926a36272ecf1319627a","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.0.2.tgz","fileCount":66,"integrity":"sha512-EleTMl83Mzf/ORPpIWuauFnXbI9THRnz6oz3FslN3yjvGhGIwrL9lS7lBe2NvrVhbYvOBCx1BQt3KYLXWs3g0g==","signatures":[{"sig":"MEUCIEDMq16KOaI8iPzg0PMkgTNF/zGwzuFZrkzvDKEs1cjBAiEAwvEhX4XeSD58M4I7ncqWch6njbYUzpcVwhbND/E/9EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212106},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"9249899fd1ec5d969445590ba96166a69e779da3","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.0.2_1779058545087_0.6614088011451602","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@curatedmcp/tokenshield-core","version":"1.2.0","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.2.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"bcdc527158b086215146b57141de29ea19c77da6","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.2.0.tgz","fileCount":66,"integrity":"sha512-K9O5emFeBtAGmDmNfgb9NAScBF448Hn7H/TQ20B7A4B1/wiUXr/ySBPWUxdUO53sWFrChtiCcHGvUHqC+b3gjw==","signatures":[{"sig":"MEUCIGrlplca37ujTbiTcIWU657SYxJ7S+YQbm1XY6T2t7k/AiEArjbbCdWR5zcA6dArsLtjKxRmg6QHXqMY1tPXYm6qyPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214626},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"3ada32ad04651626b246214faf339b8fde4cb1e6","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.2.0_1779070751929_0.1272470357619757","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@curatedmcp/tokenshield-core","version":"1.3.0","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.3.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"67c25506d7d8f15c2de20c23508d7185d0a555f4","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.3.0.tgz","fileCount":66,"integrity":"sha512-IgWBKC9GdrcC49bfNzGWms5ADHvzQxB/rTRW+3BDJq5I0KRBq1zUgoB2fbROFpNndawXEMWsNdLMphH+3aHVqg==","signatures":[{"sig":"MEQCIDmMlJorKs1Rb9bf5guALV59JLbs3tV5iqJW1KNFiIyiAiBtlArgVPkxCSUuUOHnOMGt2vB1JI9Q0zijdMdBsAqT3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214626},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"a156ca54a84cf247af31e5314ede9461f0f34ea4","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.3.0_1779072366804_0.7904578802658726","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@curatedmcp/tokenshield-core","version":"1.3.1","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.3.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"43da641ddcb790508f325b4dc381445d4e3cea4a","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.3.1.tgz","fileCount":66,"integrity":"sha512-Ow/FcKQEdUKek833MjvucmaCkAUsdgluCquM2Qsa1oCkXCVRHIJFeGbMEkNEJZ3rmKsQm4/U0+soUamk9vMNfA==","signatures":[{"sig":"MEYCIQDtj/mU1BRcy6Y4711V6tRvUswrK+h2wb1LZnKVyF6CdgIhAMsmem+2HZi7ZH+EsPYNjn5q1kYKmk6Zs+ptV/upia6/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214626},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"1276cccdc2e9bd1bd104760aba3ba7720971a339","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.3.1_1779106862699_0.8707574618737968","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@curatedmcp/tokenshield-core","version":"1.3.2","license":"MIT","_id":"@curatedmcp/tokenshield-core@1.3.2","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"dist":{"shasum":"cad18e5437396f0f4e9b655bae4a14af21a85fef","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.3.2.tgz","fileCount":66,"integrity":"sha512-MfLNrSRcxxkeZ7iC9dMe4zMC/HMmmGAX01b9XyHFkfEuJuNN59/7LbmcsuKD6Btlv41QT4WQc3aursD0lsgaMQ==","signatures":[{"sig":"MEYCIQCVWYriAdHZdIynG+FB9P/4AFvxIBQF/vvdirLJ7XpJNwIhAJFBaubTFwhouXmiKPMfC6nahIfuuHq4rcmRx+g41bRU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215838},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./ledger":"./dist/ledger.js","./server":"./dist/server.js","./pricing":"./dist/pricing.js","./pipeline":"./dist/proxy/pipeline.js"},"gitHead":"56e86a26da32d7da2a651a7c49e4f6eff2d97f85","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield-core_1.3.2_1779108424845_0.982087669385818","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@curatedmcp/tokenshield-core","version":"1.4.0","description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./server":"./dist/server.js","./pipeline":"./dist/proxy/pipeline.js","./ledger":"./dist/ledger.js","./pricing":"./dist/pricing.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/oneprofile-dev/tokenshield.git"},"license":"MIT","dependencies":{},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.5.0"},"engines":{"node":">=22.0.0"},"_id":"@curatedmcp/tokenshield-core@1.4.0","gitHead":"78a2471b82c1900b7ca47865ed358515010097e7","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-KLVURw8QsZ/Dlq9eutWM3HPXKoKVXocNmup9IvAB0sR9uXo8YmRsgG6+dfRRJZGxAXE+HMNhjHMrkwBgf5p34g==","shasum":"fad09baf6ddca3710c6a40f0b69f676c8a0d03e9","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield-core/-/tokenshield-core-1.4.0.tgz","fileCount":74,"unpackedSize":263564,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield-core@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAXrYTQy57tZb5fMT0nExOqz3b11NtKrVVztKMmw/7csAiEA2I5hV0xyJIbShUcS2vLExbjkCirXulMCGrLWfi1Vdb8="}]},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"directories":{},"maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tokenshield-core_1.4.0_1784658954306_0.1384412086455018"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-17T13:24:54.196Z","modified":"2026-07-21T18:35:54.807Z","0.2.0":"2026-05-17T13:24:54.564Z","0.2.1":"2026-05-17T14:52:02.935Z","0.3.0":"2026-05-17T17:21:32.929Z","1.0.0":"2026-05-17T18:24:01.951Z","1.0.1":"2026-05-17T21:27:33.933Z","1.0.2":"2026-05-17T22:55:45.216Z","1.2.0":"2026-05-18T02:19:12.084Z","1.3.0":"2026-05-18T02:46:06.989Z","1.3.1":"2026-05-18T12:21:02.897Z","1.3.2":"2026-05-18T12:47:04.980Z","1.4.0":"2026-07-21T18:35:54.446Z"},"bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"license":"MIT","homepage":"https://github.com/oneprofile-dev/tokenshield#readme","repository":{"type":"git","url":"git+https://github.com/oneprofile-dev/tokenshield.git"},"description":"TokenShield proxy engine — Anthropic API-layer middleware with token accounting","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"readme":"# @curatedmcp/tokenshield-core\n\n**The proxy engine behind [TokenShield](https://www.npmjs.com/package/@curatedmcp/tokenshield).** Anthropic/OpenAI API-layer middleware with token accounting, conversation dedup, and response cache.\n\n[![npm version](https://img.shields.io/npm/v/@curatedmcp/tokenshield-core.svg)](https://www.npmjs.com/package/@curatedmcp/tokenshield-core)\n[![license](https://img.shields.io/npm/l/@curatedmcp/tokenshield-core.svg)](https://github.com/oneprofile-dev/tokenshield/blob/main/LICENSE)\n\n> **You probably want [`@curatedmcp/tokenshield`](https://www.npmjs.com/package/@curatedmcp/tokenshield) instead.** That's the CLI. This package is the embeddable engine — use it if you're integrating TokenShield directly into another Node server.\n\n---\n\n## Install\n\n```bash\nnpm install @curatedmcp/tokenshield-core\n```\n\n## What's in the box\n\n- **`Pipeline`** — middleware runner with fail-open semantics and per-processor circuit breakers\n- **`conversationDedup`** — content-hash `tool_result` blocks; replace 2nd+ with deterministic pointer stubs\n- **`responseCache`** — LRU+TTL cache for `temperature === 0 && stream === false` requests\n- **`anthropic`** — provider adapter (URL matching, SSE usage parsing, message conversion)\n- **`openai`** — Responses API and Chat Completions adapter for Codex/OpenAI-compatible traffic\n- **`Ledger`** — SQLite-backed request log using Node 22's built-in `node:sqlite` (zero native deps)\n- **`dollarsFor()`** — pricing math across supported Anthropic and OpenAI models\n\n## Minimal example\n\n```ts\nimport { Pipeline, conversationDedup, anthropic } from \"@curatedmcp/tokenshield-core\";\n\nconst pipeline = new Pipeline({\n  processors: [conversationDedup],\n  enabled: new Set([\"conversation-dedup\"]),\n});\n\nconst conv = anthropic.toConversation(anthropicMessagesRequest);\nconst result = pipeline.run(conv, {\n  providerId: \"anthropic\",\n  conversationFingerprint: \"...\",\n  inboundBytes: 12_345,\n});\n\nconst compressedRequest = anthropic.applyConversation(anthropicMessagesRequest, result.conversation);\n// → send compressedRequest to api.anthropic.com\n```\n\n## Provider adapter interface\n\nIf you want to add Gemini or a custom provider, implement:\n\n```ts\ninterface Provider {\n  id: \"anthropic\" | \"openai\" | \"gemini\" | string;\n  matches(url: URL, headers: Record<string, string>): boolean;\n  parseUsageFromJson(body: unknown): { usage: UsageCounts; model: string | null };\n  parseUsageFromSSE(event: SSEEvent, acc: UsageAccumulator): void;\n  extractModel(requestBody: unknown): string;\n  toConversation(requestBody: unknown): Conversation | null;\n  applyConversation(requestBody: unknown, conv: Conversation): unknown;\n}\n```\n\nOpenAI is included; Gemini or custom providers can follow the same adapter pattern.\n\n## Privacy guarantees\n\n- All work happens in-process. Nothing leaves the host that calls this library.\n- No network I/O except the upstream provider call you make yourself.\n- The optional ledger writes to a SQLite file you control (`~/.tokenshield/ledger.db` by default).\n\n## Architecture & full docs\n\nThis is the engine. For the full CLI, dashboard, integrations, and end-user docs, see:\n\n- **CLI:** [`@curatedmcp/tokenshield`](https://www.npmjs.com/package/@curatedmcp/tokenshield)\n- **Source:** [github.com/oneprofile-dev/tokenshield](https://github.com/oneprofile-dev/tokenshield)\n- **Whitepaper:** [docs/whitepaper.md](https://github.com/oneprofile-dev/tokenshield/blob/main/docs/whitepaper.md)\n- **Website:** [curatedmcp.com/tokenshield](https://curatedmcp.com/tokenshield)\n\n## Part of the CuratedMCP control plane\n\nTokenShield is one of three products at **[curatedmcp.com](https://curatedmcp.com)** — the MCP governance control plane for engineering organizations:\n\n- 🛡️ **TokenShield** — cut your Claude Code bill 40–70%\n- 🔍 **[MCP Auditor](https://curatedmcp.com/auditor)** — static analysis for MCP server security\n- 📊 **[Sentinel](https://curatedmcp.com/sentinel)** — runtime anomaly detection\n\n[Start an enterprise pilot →](https://curatedmcp.com/enterprise/pilot)\n\n## License\n\nMIT — see [LICENSE](https://github.com/oneprofile-dev/tokenshield/blob/main/LICENSE).\n","readmeFilename":"README.md"}