{"_id":"headroom-ai","_rev":"18-c651b7dd64854a04b9c5ef20737d8ad0","name":"headroom-ai","dist-tags":{"latest":"0.43.1"},"versions":{"0.1.0":{"name":"headroom-ai","version":"0.1.0","license":"Apache-2.0","_id":"headroom-ai@0.1.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"}],"dist":{"shasum":"72e15e7245abd34aad015f2a6b89cb4df25c4c47","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.1.0.tgz","fileCount":32,"integrity":"sha512-SM5i2kptwsO+KnQqpaLThZVx1ZrmobVw5JRXwF5OvnMvhV/3WbwUI+VvXHTwTCvVq+AAyhkhuVcNXod1piAVuQ==","signatures":[{"sig":"MEQCIE4zsngQkM6auYQf9bJDQ40EddEk/RqJkaNWKpyG5vUVAiAdPDfiUAmz3sGnsyIQKQNmOWr0J8OICd5e/Vk6J3eXCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197154},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"284f6d0a099acc15dcdeb16f2c7892fe3ffd2795","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"_npmVersion":"10.9.1","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.0","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^2.0.0","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.39.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.1.0_1774574293951_0.7568390934365659","host":"s3://npm-registry-packages-npm-production"}},"0.22.4":{"name":"headroom-ai","version":"0.22.4","license":"Apache-2.0","_id":"headroom-ai@0.22.4","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"804aadbc3e8b91a00f912f4d08d417dfe0588db0","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.22.4.tgz","fileCount":38,"integrity":"sha512-9a0rgB/jsWe8gs/ggyUwe6E8DYwKAuBvlUml2ApwlUjb5EfJ611X6X+WG0SiXw3nO6sdyV1/+Ah5uw9P7ecnjw==","signatures":[{"sig":"MEQCIC83p+L5C9BDhhoZQMTVS4X8HHEGBmJt3uBhFS6yu5E1AiBZLqfsv7+8FElZ4lyZSP6Kzgy0kZsNPW3MUtOlZkocOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475830},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"378d77e79d0020ca7fba3de8df7aaf910056ad2a","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devanshivyas","email":"devanshi5993@gmail.com"},"_npmVersion":"11.6.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.0","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.39.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.22.4_1780465676565_0.9159070195390695","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"headroom-ai","version":"0.36.0","license":"Apache-2.0","_id":"headroom-ai@0.36.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"bbe106ff517032db293b4407d7484b8f99b87719","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.0.tgz","fileCount":38,"integrity":"sha512-W6DiCVWM4XKNf6zjRBb8EwXeX4Rr2Zi4CcX/31O7Lp5wJ1AJwzv8UL+c90Rd/zUXFYAG8aWUG40Pea17qgeTLw==","signatures":[{"sig":"MEYCIQCIgcA0+1fQuFQRMogu6MuS3m0fUUwziHvptOGrTmvmvgIhAOG5H5zfNaoApieAHCa6N361I+B1srBxrKW5W0eXI+gp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475521},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"b88b9078d8eda7b91e1543b33fa44d793869afa6","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.0","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.0_1787245697804_0.5475440433042282","host":"s3://npm-registry-packages-npm-production"}},"0.36.1":{"name":"headroom-ai","version":"0.36.1","license":"Apache-2.0","_id":"headroom-ai@0.36.1","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"88c7aff4ba9e1bac80d0b25dc932c1fdae044c1f","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.1.tgz","fileCount":38,"integrity":"sha512-1UZg1pklcmhlC+4TCeiGcLYomIj7K10JL3WPznomlkFiWG8hmjDn0mKj2fZfSHf7SJDiEQdhhYXPGtY/jXLo+g==","signatures":[{"sig":"MEYCIQC6YIALn8J7otTZaCiY+St9JGbX0OC/niNE1URvv/+iKgIhAOtLvhytNUiD8QFHLTBCwB8K1t3JpqAJKdW7ubj51HNZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475521},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"37faf2f24724370483b1819b0921c899791bedc7","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.0","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.1_1787273081157_0.4308619561659299","host":"s3://npm-registry-packages-npm-production"}},"0.36.2":{"name":"headroom-ai","version":"0.36.2","license":"Apache-2.0","_id":"headroom-ai@0.36.2","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"dbac1d550b331c15b1d9dcd4d9c3fd47a186af15","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.2.tgz","fileCount":38,"integrity":"sha512-GRAJg0vSUpfrzM4N+dnQ4XO/dlq4C5wapPlfxbO12Mzz39zQBwTuJ6RDyPm/u1Z1HSuxD3fveTJy6UA1ES2zxA==","signatures":[{"sig":"MEYCIQDNrcZmw15ntlCL4mLpm2iP7ET06dzh3VEH1rMTn0Cq2wIhAJTE9g6Nrk69Ad+Exhjr8ycdE2QEYlNhJKwHrTK6o7U9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475360},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"5e0ce242e99bd4da94a11237846cc5fe5edbc9f6","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.2_1787293055675_0.8550349545656151","host":"s3://npm-registry-packages-npm-production"}},"0.36.3":{"name":"headroom-ai","version":"0.36.3","license":"Apache-2.0","_id":"headroom-ai@0.36.3","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"cffba1f5ccd6a565866d6365ea770fbfc61d0545","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.3.tgz","fileCount":38,"integrity":"sha512-98QHfMhCypElahsxKiN+JIqWPepRcCEuY2N3K0962OI4uHmXYIEuaYuKvzTRmRBAa7ZM8k3q6f/9n5LT0jsMhQ==","signatures":[{"sig":"MEQCIFEl5gmIu/HqWxC8XQzatQGWmjMe/IRimUarKH15pn8LAiBmdpMztCjzu2mi0Q5U4h0gqe3B1wrsuxQZmmmFiI8CBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475360},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"87e71dd10057ff3cbe826bde617682971339e4f8","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.3_1787351067468_0.7878889907628861","host":"s3://npm-registry-packages-npm-production"}},"0.36.4":{"name":"headroom-ai","version":"0.36.4","license":"Apache-2.0","_id":"headroom-ai@0.36.4","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"e6e2e39cf8705830620dcd9f15f52c635602f41e","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.4.tgz","fileCount":38,"integrity":"sha512-HAK8EZRCKO0gkRxi+yBaxGi+Z9pBBePRs+RqEUrx52aCtt4qL03EB7/dldiDpbdEC1quta5VZdom5+YhjjIQ3g==","signatures":[{"sig":"MEUCIQCxHBA16pp1s/2Eq8VLifu4kmD5emXtCalIpANDkzoOcwIgAc/9vgPO60xcWyYBifQZepQHJIxLoLDBRgmRqHHMmQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475360},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"91186b40d886c78e4b126d15837a51bea0a871e3","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.4_1787380801019_0.9153965608304266","host":"s3://npm-registry-packages-npm-production"}},"0.36.5":{"name":"headroom-ai","version":"0.36.5","license":"Apache-2.0","_id":"headroom-ai@0.36.5","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"368b96dbc8f06d195a23da027ab2f19aa9aef6bf","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.36.5.tgz","fileCount":38,"integrity":"sha512-ZV/zZH79tNARgry3oOG42albpFrRWAGGMXx28kddp8+tqzhkAAKjaRpqeUVWFn9i7vLfJtX4gbzcGiv2jpLxYQ==","signatures":[{"sig":"MEYCIQCLoYdKoulNGFO4s1TNvp8AdVJi8AxuFWWyC4rf+39bygIhAOfMuZLa89z9GmojrjEWXUxMoEtwuPgKocpsGszyuEG3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475360},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"34a551756222b24ea4bc064f4250b8e7d169daf1","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.36.5_1787441526371_0.6224896600446084","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"headroom-ai","version":"0.37.0","license":"Apache-2.0","_id":"headroom-ai@0.37.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"c9a2103d757b4e6ce4a1288fded94e5902fe230c","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.37.0.tgz","fileCount":38,"integrity":"sha512-LhhcQyEmcOtH6MNgcaoU2OnI/7QlMyF1CZPYdZwIWyumXjnTM6JXZZpbIufT2LFWD6cYWdUsrk3iXa9LOY3hvw==","signatures":[{"sig":"MEYCIQDaIup69Mo7tvTIzeFdXYHlEttE56AHpHmIi+GgPWc7ZAIhANNIDeFQ9AXoSrDttvPttJODn6eKELoIm8p6t/oy1u9X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475360},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"32d7ca4577d599b8a5f811ada74cf31504302c9d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"10.8.2","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^4.80.0","vitest":"^4.1.5","typescript":"^5.5.0","@ai-sdk/openai":"^3.0.48","@ai-sdk/provider":"^1.0.0","@ai-sdk/anthropic":"^3.0.64","@anthropic-ai/sdk":"^0.111.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.37.0_1787867100867_0.03221053345019209","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"headroom-ai","version":"0.38.0","license":"Apache-2.0","_id":"headroom-ai@0.38.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"3e0a8010929372afb17ad7efbb735d444a21b64e","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.38.0.tgz","fileCount":38,"integrity":"sha512-92HlOWNUillHrPbdge5rOBlcu+fd8TY1T1fMz+hDnK3FI4xiyy4/HtCu0GXjY3yVDArX8bY3YCrMZb/5d2xKBQ==","signatures":[{"sig":"MEUCIHa3HrRJ03stnRxK7BSmTX8dS74ecpkQddb7ywpRwPzGAiEA2Ohm3H854keXChN+HU6JJpbDXPG6kGHDwc1d0GwaWlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBMAMCPtQv/fxK76vKUeu2WZB87c+VNw0c2nmj+N1rewIgH7w7rkKljE+U4yU4zbrZf4tRTcvJZ8zwDSf6EeOM8Eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":476251},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"94206e265203acfd72a3b939e9a964e29175ad50","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^17.3.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.125.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.38.0_1790036134620_0.10746086679885258","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"headroom-ai","version":"0.39.0","license":"Apache-2.0","_id":"headroom-ai@0.39.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"c780388c2c3ac5c9f757e90dc3d8a53664e161bb","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.39.0.tgz","fileCount":38,"integrity":"sha512-wZC0zLmaP90dgIauvr+htmeIisx3nz7uj8q9ZxeuahtOFtEkQ+ol0tO7cPaL2iuSVOytvkOwuaKvQ6m6Y8yIow==","signatures":[{"sig":"MEYCIQCz3VOH/6nKR10uAQq9K2laFEanKMkhBZoe07NBDHuo4wIhALE9I5opkjGFnPTit4gAZHMXiGbnZ9kxh4hNyVFwN6Ld","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF68tvrqLpJAkwBJPaL8D73ewWVL2aL7f0SPhoChYFRRAiEAld6xoLcNU7oTZVQn0L3vqaANc75Ibz8HGe0mUhuzp2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495085},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"66f426171bab32692cf93d2b656a8e4be9004186","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^18.0.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.127.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.39.0_1790364824660_0.002941462304582254","host":"s3://npm-registry-packages-npm-production"}},"0.39.1":{"name":"headroom-ai","version":"0.39.1","license":"Apache-2.0","_id":"headroom-ai@0.39.1","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"d95afe5e25699c7a59c4f3fc2b429e1b42674c5a","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.39.1.tgz","fileCount":38,"integrity":"sha512-jMItSdHA444lCXxibw/XlyhPt9vp09LuLgLNVG6/1Ay0lOZEUhrwlezsMMhr98RMgIe9AejhIQef91cvUgiWgA==","signatures":[{"sig":"MEQCIHSV86DqVYA3Gzx+XoGMnAeTlx1q/ewUkpkLq+RkaJshAiBdHD+hAEbJf0k9289oRZIJZJcYulhZuHYS5T6hRYQHpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGoBKEneKzAwIVMjQk91maIEDWN7u5SfitstOxceQDS3AiEAl7BRFVXFS+/Gw+ZxyiNtmHAE3agpeN+lgZVhKP06jNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495085},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"d13e1966f820220b482a33c30bde1e926743939a","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^18.0.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.127.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.39.1_1790454843046_0.7632285570710993","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"headroom-ai","version":"0.40.0","license":"Apache-2.0","_id":"headroom-ai@0.40.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"e9e6a20fff330e206599f48ee851c9660a9f6199","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.40.0.tgz","fileCount":38,"integrity":"sha512-WbvzoywojL0nO+vyzC8Dxzmvq7y6PeBUaZ7pOe377DW1gw3eYKfuxhEGQzsT4G6OtW+SaLOtWOtFsaEdpnatcQ==","signatures":[{"sig":"MEYCIQC7Mu1N3iOydcGCHLw/MZubp64hSGMG988qrVSu3RzbUwIhAKZzLKm9u5Z3RbuVySdI3UxgmqvibRgZ2S0Plr6wGwUr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFPG2kTpil0/zJBrcufDUGf9KUwLau6z+s6FnM8WUzjZAiEAubTjm4lxVwXuRuaiNTlhiGJdXj23uX4tIY3k4t6GZLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479537},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"855390d6110e0bbb199d9b97025baac16c2f5cf3","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^18.0.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.129.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.40.0_1791256220146_0.6380300493813802","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"headroom-ai","version":"0.41.0","license":"Apache-2.0","_id":"headroom-ai@0.41.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"8666294da99c55b33bd02981c9801ba71560b3f7","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.41.0.tgz","fileCount":38,"integrity":"sha512-PsKvvpPOrLqTWwalvR/xsor0Du9MzRiZitqzmD0xIoAyevgmVkhpLSiuXOkZL5bB9N6k9G7X1D5GoOjqfswjBA==","signatures":[{"sig":"MEQCIBRie/Ce8cKTM1nIDaeQr4vD6UwHP8TnN4VjzTGt3W7QAiAWFqq3gNa5wwma5efoUhHtYnb7TVISILhJ74JoCEDdFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC4GDcCVTqYPjRUcx10PrxrFMzHxbdhYFrJyaYBr878cQIgO7I+wdc1AF2M9XPxVcC5vEpuTnjViaSw1FxsejHuNPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481316},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"76133cff59b71284399bf760c5578dc373c97231","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^18.0.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.129.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.41.0_1792018118976_0.26996687519394236","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"headroom-ai","version":"0.42.0","license":"Apache-2.0","_id":"headroom-ai@0.42.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"dist":{"shasum":"6f2f350d80ef865ac8332b09b4dc71a6a7f9f8fc","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.42.0.tgz","fileCount":38,"integrity":"sha512-tQ5gVAuJKo2Uzza23XyVHfoHdI4T1RaTqB1UiddCijoKG/2vSwauyAUO2A9UN/TBtvvp9pasPmwj66nt+2t2Aw==","signatures":[{"sig":"MEUCIQC6g4+4HFlWVfX0SoaThP5z43cJVKE6GV65VRaPQIl/9gIgRiSqFYvsARFQlIwcKLbd9UiirO0aH6tOgvgWLeDB3Yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEvJH6dpGKeNVlTdLsJ/fY73BsDxiV1i+lRAB8SNk+DBAiEA4fGnvCQFfrd5zt6IRKzTNc3s3X5C7hqgOmnleoqTJtc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551584},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"17d38e5699b7d7c69ac6addcd762f39e42dd7f00","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.19.0","description":"Compress LLM context. Save tokens. Fit more into every request.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.59","tsup":"^8.0.0","dotenv":"^18.0.1","openai":"^7.10.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.5.0","@ai-sdk/openai":"^4.0.60","@ai-sdk/provider":"^4.0.14","@ai-sdk/anthropic":"^4.0.53","@anthropic-ai/sdk":"^0.133.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.42.0_1793056010228_0.9468309712313139","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"headroom-ai","version":"0.43.0","keywords":["llm","openai","anthropic","gemini","vercel-ai-sdk","token-cost","reduce-tokens","input-tokens","context-window","token-budget","tool-output","chat-history","context-compression","prompt-compression","agents","mcp"],"license":"Apache-2.0","_id":"headroom-ai@0.43.0","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"homepage":"https://docs.headroomlabs.ai/docs/quickstart","bugs":{"url":"https://github.com/headroomlabs-ai/headroom/issues"},"dist":{"shasum":"f929bf46617409b5ed6cbca6ff940538c60fa683","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.43.0.tgz","fileCount":38,"integrity":"sha512-Ml1G3MdTechEqS/6gYde+lLDYU/OpZAJ5yEr0g3o/P9WhLnO9JUHf5oNgBbCJxYNpyUAqs+03oCujOn5NVifSA==","signatures":[{"sig":"MEUCIQDiII9mA18j1fa1PujHOQJNZelyBrgHAPonRUzKfoEBlAIgEvt+c3tD90CLbMXmwDfDLhXchQ657xoUs2AfCyWKTkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDG1YHX4rUE2itUlfsazValHagXuVMTt2na61SnjPrJ6AIgdKDKrD7cjgf5CPm9GMHSM8zNHLI3BEfuP626DfQ2mUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":580328},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"81fa4bdda613f6a37f6f430eda9f728e1458f3ce","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/headroomlabs-ai/headroom.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"11.19.1","description":"Compress tool outputs, logs, JSON and chat history before each LLM call. Fewer input tokens, same answers. Adapters for OpenAI, Anthropic, Gemini and the Vercel AI SDK. Runs against the local Headroom proxy (pip install \"headroom-ai[proxy]\").","directories":{},"_nodeVersion":"24.22.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.159","tsup":"^9.0.0","dotenv":"^18.0.1","openai":"^7.46.0","vitest":"^5.0.0","typescript":"^6.0.3","@types/node":"^26.6.6","@ai-sdk/openai":"^4.0.106","@ai-sdk/provider":"^4.0.35","@ai-sdk/anthropic":"^4.0.94","@anthropic-ai/sdk":"^1.3.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headroom-ai_0.43.0_1793904010513_0.40551335976410774","host":"s3://npm-registry-packages-npm-production"}},"0.43.1":{"_id":"headroom-ai@0.43.1","bugs":{"url":"https://github.com/headroomlabs-ai/headroom/issues"},"dist":{"shasum":"4eca2a1c6dba462827ea0fdf17018116e01faaf6","tarball":"https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.43.1.tgz","fileCount":38,"integrity":"sha512-N6dg4fbXffyUT7bI3jyF18lCbjk/ta7RNj8JTr4JB8SYyotz78hdLhnmIt6lXnz04H3nWkQQTRd12s0hhyFdEQ==","signatures":[{"sig":"MEUCIFllimhbYNPac1e8xe8ccx8gEZa4vaEGQ8DZuLdpbfmxAiEAo2FoywaIWnnw49cX4uWivjA46sDV2hAwnRkoRLvoLrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHwEfXqIpZip8NX8ImF0WUgOo/OoEYIY11yV0ID7TRpvAiB/VO2+Ks8ETUxQpzbgMaUiu6Br8L+nGMqcXecn4WTAxA=="}],"unpackedSize":580328},"main":"./dist/index.cjs","name":"headroom-ai","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./gemini":{"import":{"types":"./dist/adapters/gemini.d.ts","default":"./dist/adapters/gemini.js"},"require":{"types":"./dist/adapters/gemini.d.cts","default":"./dist/adapters/gemini.cjs"}},"./openai":{"import":{"types":"./dist/adapters/openai.d.ts","default":"./dist/adapters/openai.js"},"require":{"types":"./dist/adapters/openai.d.cts","default":"./dist/adapters/openai.cjs"}},"./anthropic":{"import":{"types":"./dist/adapters/anthropic.d.ts","default":"./dist/adapters/anthropic.js"},"require":{"types":"./dist/adapters/anthropic.d.cts","default":"./dist/adapters/anthropic.cjs"}},"./vercel-ai":{"import":{"types":"./dist/adapters/vercel-ai.d.ts","default":"./dist/adapters/vercel-ai.js"},"require":{"types":"./dist/adapters/vercel-ai.d.cts","default":"./dist/adapters/vercel-ai.cjs"}}},"gitHead":"2d3ee51846435ef5b320eea4806af14e602b0d8c","license":"Apache-2.0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.43.1","_npmUser":{"name":"chopratejas","email":"chopratejas@gmail.com"},"homepage":"https://docs.headroomlabs.ai/docs/quickstart","keywords":["llm","openai","anthropic","gemini","vercel-ai-sdk","token-cost","reduce-tokens","input-tokens","context-window","token-budget","tool-output","chat-history","context-compression","prompt-compression","agents","mcp"],"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/headroomlabs-ai/headroom.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"11.19.1","description":"Compress tool outputs, logs, JSON and chat history before each LLM call. Fewer input tokens, same answers. Adapters for OpenAI, Anthropic, Gemini and the Vercel AI SDK. Runs against the local Headroom proxy (pip install \"headroom-ai[proxy]\").","directories":{},"maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"_nodeVersion":"24.22.2","_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.159","tsup":"^9.0.0","dotenv":"^18.0.1","openai":"^7.47.0","vitest":"^5.1.0","typescript":"^6.0.3","@types/node":"^26.6.6","@ai-sdk/openai":"^4.0.106","@ai-sdk/provider":"^4.0.35","@ai-sdk/anthropic":"^4.0.94","@anthropic-ai/sdk":"^1.3.0"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=1.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/headroom-ai_0.43.1_1793907476959_0.6689269956623247"}}},"time":{"created":"2026-03-27T01:18:13.892Z","modified":"2026-11-05T19:37:57.209Z","0.1.0":"2026-03-27T01:18:14.089Z","0.22.4":"2026-06-03T05:47:56.752Z","0.36.0":"2026-08-20T17:08:18.055Z","0.36.1":"2026-08-21T00:44:41.368Z","0.36.2":"2026-08-21T06:17:35.811Z","0.36.3":"2026-08-21T22:24:27.623Z","0.36.4":"2026-08-22T06:40:01.173Z","0.36.5":"2026-08-22T23:32:06.508Z","0.37.0":"2026-08-27T21:45:01.024Z","0.38.0":"2026-09-22T00:15:34.706Z","0.39.0":"2026-09-25T19:33:44.755Z","0.39.1":"2026-09-26T20:34:03.124Z","0.40.0":"2026-10-06T03:10:20.233Z","0.41.0":"2026-10-14T22:48:39.051Z","0.42.0":"2026-10-26T23:06:50.338Z","0.43.0":"2026-11-05T18:40:10.608Z","0.43.1":"2026-11-05T19:37:57.059Z"},"bugs":{"url":"https://github.com/headroomlabs-ai/headroom/issues"},"license":"Apache-2.0","homepage":"https://docs.headroomlabs.ai/docs/quickstart","keywords":["llm","openai","anthropic","gemini","vercel-ai-sdk","token-cost","reduce-tokens","input-tokens","context-window","token-budget","tool-output","chat-history","context-compression","prompt-compression","agents","mcp"],"repository":{"url":"git+https://github.com/headroomlabs-ai/headroom.git","type":"git","directory":"sdk/typescript"},"description":"Compress tool outputs, logs, JSON and chat history before each LLM call. Fewer input tokens, same answers. Adapters for OpenAI, Anthropic, Gemini and the Vercel AI SDK. Runs against the local Headroom proxy (pip install \"headroom-ai[proxy]\").","maintainers":[{"name":"chopratejas","email":"chopratejas@gmail.com"},{"name":"devanshivyas","email":"devanshi5993@gmail.com"}],"readme":"# Headroom (`headroom-ai`) for TypeScript\n\nCompress tool outputs, logs, JSON and chat history before each LLM call. Fewer\ninput tokens, same answers.\n\n**Requires the Headroom proxy.** Compression runs in the Python proxy; this\npackage sends messages to it over HTTP (default `http://localhost:8787`). Start\nit first:\n\n```bash\npip install \"headroom-ai[proxy]\"   # or: uv tool install --python 3.13 \"headroom-ai[proxy]\"\nheadroom proxy --port 8787\n```\n\n## Install\n\n```bash\nnpm install headroom-ai\n```\n\n## Quick Start\n\n```typescript\nimport { compress } from 'headroom-ai';\n\nconst result = await compress(messages, { model: 'gpt-4o' });\nconsole.log(`Saved ${result.tokensSaved} tokens (${((1 - result.compressionRatio) * 100).toFixed(0)}%)`);\n\n// Use compressed messages with any LLM client\nconst response = await openai.chat.completions.create({\n  model: 'gpt-4o',\n  messages: result.messages,\n});\n```\n\nPass `baseUrl` if the proxy is not on `http://localhost:8787`.\n\n## Framework Adapters\n\n### Vercel AI SDK\n\n```typescript\nimport { withHeadroom } from 'headroom-ai/vercel-ai';\nimport { openai } from '@ai-sdk/openai';\nimport { generateText } from 'ai';\n\nconst model = withHeadroom(openai('gpt-4o'));\nconst { text } = await generateText({ model, messages });\n```\n\n<details>\n<summary>Advanced: using middleware directly</summary>\n\n```typescript\nimport { headroomMiddleware } from 'headroom-ai/vercel-ai';\nimport { wrapLanguageModel } from 'ai';\n\nconst model = wrapLanguageModel({\n  model: openai('gpt-4o'),\n  middleware: headroomMiddleware({ baseUrl: 'http://localhost:8787' }),\n});\n```\n\n</details>\n\n### OpenAI SDK\n\n```typescript\nimport { withHeadroom } from 'headroom-ai/openai';\nimport OpenAI from 'openai';\n\nconst client = withHeadroom(new OpenAI());\nconst response = await client.chat.completions.create({\n  model: 'gpt-4o',\n  messages: longConversation,\n});\n```\n\n### Anthropic SDK\n\n```typescript\nimport { withHeadroom } from 'headroom-ai/anthropic';\nimport Anthropic from '@anthropic-ai/sdk';\n\nconst client = withHeadroom(new Anthropic());\nconst response = await client.messages.create({\n  model: 'claude-sonnet-4-5-20250929',\n  messages: longConversation,\n  max_tokens: 1024,\n});\n```\n\n### Google Gemini\n\n```typescript\nimport { withHeadroom } from 'headroom-ai/gemini';\nimport { GoogleGenerativeAI } from '@google/generative-ai';\n\nconst genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);\nconst model = withHeadroom(genAI.getGenerativeModel({ model: 'gemini-2.0-flash' }));\n\nconst result = await model.generateContent({\n  contents: longConversation,\n});\n```\n\n## HeadroomClient\n\nThe full client provides direct access to the proxy's OpenAI and Anthropic passthrough endpoints, plus metrics, CCR, and observability.\n\n```typescript\nimport { HeadroomClient } from 'headroom-ai';\n\nconst client = new HeadroomClient({\n  baseUrl: 'http://localhost:8787',\n  providerApiKey: process.env.OPENAI_API_KEY,\n  config: {\n    smartCrusher: { enabled: true, maxItemsAfterCrush: 10 },\n    ccr: { enabled: true },\n  },\n});\n```\n\n### Chat Completions (OpenAI-style)\n\n```typescript\nconst response = await client.chat.completions.create({\n  model: 'gpt-4o',\n  messages: longConversation,\n  headroomMode: 'optimize',\n});\n```\n\n### Messages (Anthropic-style)\n\n```typescript\nconst response = await client.messages.create({\n  model: 'claude-sonnet-4-5-20250929',\n  messages: longConversation,\n  max_tokens: 1024,\n  headroomMode: 'optimize',\n});\n```\n\n### Direct Compression\n\n```typescript\nconst result = await client.compress(messages, { model: 'gpt-4o', tokenBudget: 4000 });\n```\n\n## Simulation (Dry Run)\n\nSee what compression would do without calling the LLM.\n\n```typescript\nimport { simulate } from 'headroom-ai';\n\nconst sim = await simulate(messages, { model: 'gpt-4o' });\nconsole.log(`Would save ${sim.tokensSaved} tokens (${sim.estimatedSavings})`);\nconsole.log('Transforms:', sim.transforms);\nconsole.log('Waste signals:', sim.wasteSignals);\nconsole.log('Cache alignment:', sim.cacheAlignmentScore);\n```\n\nAlso available on the client:\n\n```typescript\nconst sim = await client.chat.completions.simulate({\n  model: 'gpt-4o',\n  messages,\n});\n```\n\n## Compression Hooks\n\nCustomize compression with pre/post hooks — matching the Python `CompressionHooks` API.\n\n```typescript\nimport { compress, CompressionHooks } from 'headroom-ai';\nimport type { CompressContext, CompressEvent } from 'headroom-ai';\n\nclass MyHooks extends CompressionHooks {\n  // Modify messages before compression\n  preCompress(messages: any[], ctx: CompressContext) {\n    return [{ role: 'system', content: 'Always preserve error details.' }, ...messages];\n  }\n\n  // Set per-message importance biases\n  computeBiases(messages: any[], ctx: CompressContext) {\n    return { 0: 2.0 }; // preserve first message\n  }\n\n  // Observe compression results\n  postCompress(event: CompressEvent) {\n    console.log(`Saved ${event.tokensSaved} tokens via ${event.transformsApplied.join(', ')}`);\n  }\n}\n\nconst result = await compress(messages, { model: 'gpt-4o', hooks: new MyHooks() });\n```\n\n## SharedContext (Multi-Agent)\n\nCompressed inter-agent context sharing — matching the Python `SharedContext` API.\n\n```typescript\nimport { SharedContext } from 'headroom-ai';\n\nconst ctx = new SharedContext({ model: 'gpt-4o', ttl: 3600, maxEntries: 100 });\n\n// Agent A stores data (automatically compressed)\nconst entry = await ctx.put('research', bigAgentOutput, { agent: 'researcher' });\nconsole.log(`Compressed: ${entry.savingsPercent.toFixed(0)}% savings`);\n\n// Agent B reads it (~80% smaller)\nconst summary = ctx.get('research');\n\n// Agent B gets original if needed\nconst full = ctx.get('research', { full: true });\n\n// Stats\nconst stats = ctx.stats();\nconsole.log(`${stats.entries} entries, ${stats.totalTokensSaved} tokens saved`);\n```\n\n## CCR Retrieve (Compress-Cache-Retrieve)\n\nRetrieve original content when the LLM needs full details.\n\n```typescript\nconst result = await client.compress(messages, { model: 'gpt-4o' });\n\n// Later, when the LLM calls headroom_retrieve:\nfor (const hash of result.ccrHashes) {\n  const original = await client.retrieve(hash);\n  console.log(`${original.originalTokens} original tokens for ${original.toolName}`);\n}\n\n// Search within compressed content\nconst search = await client.retrieve('abc123', { query: 'error logs' });\n\n// Handle LLM tool calls in an agent loop\nconst toolResult = await client.handleToolCall({\n  toolCall: assistantMessage.tool_calls[0],\n  provider: 'openai',\n});\n```\n\n## Metrics & Observability\n\n```typescript\n// Proxy health\nconst health = await client.health();\n// → { status: 'healthy', version: '0.5.18', config: { optimize: true, ... } }\n\n// Proxy stats\nconst stats = await client.proxyStats();\n// → { requests: { total, cached, failed }, tokens: { saved, savingsPercent }, ... }\n\n// Request metrics\nconst metrics = await client.getMetrics({ model: 'gpt-4o', limit: 10 });\n\n// Summary\nconst summary = await client.getSummary();\n\n// Validate setup\nconst validation = await client.validateSetup();\n\n// Clear cache\nawait client.clearCache();\n\n// Prometheus metrics\nconst prom = await client.prometheusMetrics();\n```\n\n## Telemetry, Feedback & TOIN\n\nAccess the proxy's learning systems.\n\n```typescript\n// Telemetry\nconst telemetry = await client.telemetry.getStats();\nconst tools = await client.telemetry.getTools();\n\n// Feedback — per-tool compression hints\nconst hints = await client.feedback.getHints('list_servers');\n// → { hints: { maxItems: 8, skipCompression: false, preserveFields: ['id', 'status'] } }\n\n// TOIN (Tool Output Intelligence Network)\nconst toinStats = await client.toin.getStats();\nconst patterns = await client.toin.getPatterns(20);\nconst pattern = patterns[0] && await client.toin.getPattern(patterns[0].hash);\n```\n\nEach `hash` is the complete scoped aggregation key, including tenant, auth mode,\nmodel family, and tool signature. Pass it back unchanged for an exact lookup;\nthe client URL-encodes it. Shorter aggregation-key prefixes are accepted only\nwhen they identify one pattern; ambiguous prefixes return HTTP 409 rather than\nan arbitrary pattern.\n\n\n## Configuration Types\n\nFull TypeScript interfaces for every Python config dataclass.\n\n```typescript\nimport type { HeadroomConfig, SmartCrusherConfig, CCRConfig } from 'headroom-ai';\n\nconst config: HeadroomConfig = {\n  defaultMode: 'optimize',\n  smartCrusher: {\n    enabled: true,\n    minItemsToAnalyze: 5,\n    maxItemsAfterCrush: 10,\n    varianceThreshold: 2.0,\n    relevance: { tier: 'hybrid', relevanceThreshold: 0.25 },\n    anchor: { anchorBudgetPct: 0.25 },\n  },\n  ccr: { enabled: true, injectTool: true },\n  cacheOptimizer: { enabled: true, autoDetectProvider: true },\n  intelligentContext: { enabled: true, useImportanceScoring: true },\n};\n\nconst client = new HeadroomClient({ config });\n```\n\n## Error Handling\n\nFull error hierarchy matching the Python SDK.\n\n```typescript\nimport {\n  HeadroomError,\n  HeadroomConnectionError,\n  HeadroomAuthError,\n  HeadroomCompressError,\n  ConfigurationError,\n  ProviderError,\n  StorageError,\n  TokenizationError,\n  CacheError,\n  ValidationError,\n  TransformError,\n} from 'headroom-ai';\n\ntry {\n  await client.compress(messages);\n} catch (err) {\n  if (err instanceof HeadroomAuthError) {\n    console.error('Auth failed — check HEADROOM_API_KEY');\n  } else if (err instanceof HeadroomCompressError) {\n    console.error(`Compression error ${err.statusCode}: ${err.errorType}`);\n  } else if (err instanceof ConfigurationError) {\n    console.error('Bad config:', err.details);\n  }\n}\n```\n\n## Format Detection & Conversion\n\nAuto-detects and converts between OpenAI, Anthropic, Vercel AI SDK, and Gemini formats.\n\n```typescript\nimport { detectFormat, toOpenAI, fromOpenAI } from 'headroom-ai';\n\nconst format = detectFormat(messages); // 'openai' | 'anthropic' | 'vercel' | 'gemini'\nconst openaiMessages = toOpenAI(messages);\nconst back = fromOpenAI(openaiMessages, format);\n```\n\nThe `compress()` function handles this automatically — pass any format and get the same format back.\n\n## Configuration\n\n```typescript\nimport { compress } from 'headroom-ai';\n\nconst result = await compress(messages, {\n  model: 'gpt-4o',\n  baseUrl: 'http://localhost:8787',  // proxy URL\n  apiKey: 'your-api-key',             // optional, for authenticated endpoints\n  timeout: 30000,                     // ms\n  fallback: true,                     // return uncompressed if proxy is down (default)\n  retries: 1,                         // retry on transient failures (default)\n  tokenBudget: 4000,                  // compress to fit this limit\n  hooks: new MyHooks(),               // pre/post compression hooks\n  format: 'vercel',                   // declare the input format; skips autodetection\n});\n```\n\nOr use environment variables:\n- `HEADROOM_BASE_URL` — proxy URL\n- `HEADROOM_API_KEY` — optional API key for authenticated endpoints\n\n## Utilities\n\n```typescript\n// Case conversion for proxy communication\nimport { deepCamelCase, deepSnakeCase } from 'headroom-ai';\n\nconst tsObj = deepCamelCase({ tokens_before: 100 }); // { tokensBefore: 100 }\nconst pyObj = deepSnakeCase({ tokensBefore: 100 });   // { tokens_before: 100 }\n\n// SSE stream parsing\nimport { parseSSE, collectStream } from 'headroom-ai';\n\n// Hook helpers\nimport { extractUserQuery, countTurns, extractToolCalls } from 'headroom-ai';\n```\n\n## Building from source\n\nUse Node 24 LTS at version 24.11 or later for SDK development. The build\ntoolchain also supports Node 22.18 or later in the Node 22 line, and Node 26\nor later. These are the `tsup` 9 build requirements; the SDK and optional\nprovider peers retain their own runtime requirements.\n\n```bash\nnpm ci\nnpm run typecheck\nnpm test\nnpm run build\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}