{"_id":"lynkr","_rev":"96-7765905b6e8838d2604ad62493389242","name":"lynkr","dist-tags":{"latest":"9.14.29"},"versions":{"0.1.0":{"name":"lynkr","version":"0.1.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@0.1.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js"},"dist":{"shasum":"96db4a261a0f3925115cd45db9b771c9237f21d1","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-0.1.0.tgz","fileCount":52,"integrity":"sha512-0Z5TZjAw0a8A6d4hCwoBs3POhcNx+t03/ky76vJ7alrPivtI+xTRtnAAghVLzjCkPl608ipDG5vG+pqsbDjwQw==","signatures":[{"sig":"MEUCICt81GsBPm+umdAnY5BMVcamjlv+TlSWeycz9kGABa5/AiEA83MKNTmXWSK2I+g46Rqv1P/Oani/o0Hshny1kcFrUzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323140},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"c6d88766c937bc82fff69fdbf6bc652a9d782e0a","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"echo \"No automated tests configured\" && exit 0","start":"node index.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_0.1.0_1764813398448_0.5322043438656503","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"lynkr","version":"0.1.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@0.1.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js"},"dist":{"shasum":"95974247cd88b09f2c4592cc6dbd4cdb5c5664bd","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-0.1.1.tgz","fileCount":61,"integrity":"sha512-2qrQE2x4zhz8jvaIkThonPkcVzzT8BMA0AX9rjJ+4vnssjjhEPaPsMDBHrR8EiVyM0ALc/wi5G51fgUdBOyCeA==","signatures":[{"sig":"MEQCIAhkkOyE1Z34r7CdapFyqMPXq5gdIQbsdk7OYh3PDdUjAiA2kvssIatdSxqw5RS7V5HYchN/xbh2AA5wmP7i3fLW6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498252},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"04c4736b20bd5dac5d36d59d138c9497238d0664","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"echo \"No automated tests configured\" && exit 0","start":"node index.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_0.1.1_1764897673114_0.9288696829478353","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"lynkr","version":"0.1.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@0.1.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js"},"dist":{"shasum":"589dbe6475ad12eddd24cb04e0029cd64d81d140","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-0.1.2.tgz","fileCount":78,"integrity":"sha512-pdN02uh2FN/YdQPqSuRJt0h3bPhlBf3BSjGoRiTKdkvBVTER+c9zxRXNA4sODV4qh1TPPzOfxky3mUo1rSrShg==","signatures":[{"sig":"MEUCIQCNyI3TDNFWSx23rMi9maGm0ePLbajSoNoJymbYht9RxgIgf6UscYa28D5Nhebgknc0eMiBVySOPzJfsXlDdVZuuI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697266},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"3fef2712946a222f3f2ddc5a69be0d418be04073","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"echo \"No automated tests configured\" && exit 0","start":"node index.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_0.1.2_1765147986618_0.782985689000451","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"lynkr","version":"0.1.3","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@0.1.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js"},"dist":{"shasum":"1e443a88f757b5c950fd044943842748a9190425","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-0.1.3.tgz","fileCount":78,"integrity":"sha512-eAEHULmv7+obvgP60f0Yvgsu4Ivq3hjyAyYcvFa1/nzStzGR/NYwRL+f78blopCrUKTIpvd1MgZs9ENOE6n60g==","signatures":[{"sig":"MEUCIQCEF0gQMhWlUxFBInws3cvcVKugfHSpb9KBXLY3ewwibwIgFMNRHf2TH21BfSP/00eRk3st4VtWc7cRWTrblUMrTik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697266},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"3fef2712946a222f3f2ddc5a69be0d418be04073","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"echo \"No automated tests configured\" && exit 0","start":"node index.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_0.1.3_1765148077556_0.411033054658279","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"lynkr","version":"0.1.4","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@0.1.4","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"9849d9da120a3a2c36b88bd371004c779efe0f4b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-0.1.4.tgz","fileCount":85,"integrity":"sha512-kXHddM6QZvaa1flTSH6b3jFsdX0X3w9z7VjunSC6vs4LhD+l6mtozYeJcXEdyrjMZG90bZDfUZ78Mfc4kXXXdg==","signatures":[{"sig":"MEYCIQCuIasOwqgQazTlG+LYnmLsNlx0f7N28Ha60pox8HugrgIhAIz93Lv5hGrqnG7lG5rY/Yj6Tvv4Cxg/V0vjx8u6+x/t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":790142},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"5b9e3928d383712110fda982dce2b3d44f073af7","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_0.1.4_1765184618067_0.41789471647053733","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"lynkr","version":"1.0.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@1.0.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"415a287ccd4a4d6205e517394f7bff0ac8794557","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-1.0.0.tgz","fileCount":91,"integrity":"sha512-O9/Pfql+KvifNmJR9Ol2JvYD5I52NHBltwmbosWgibr+s9KEJocTApvEJ7WqDtuLTp+DLw/3kGXvuHR9JoQzyQ==","signatures":[{"sig":"MEQCIAc5fxiz+36pUy2oFXEPB1yPLIEWXQHU3AlZhE5Ldk9hAiAtXmimpTCNK3yKVeHZ6kz75yEeEiQzd+bVRKFqqaAk8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857465},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"5b9e3928d383712110fda982dce2b3d44f073af7","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","undici":"^6.22.0","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_1.0.0_1765411673051_0.5058629023562993","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"lynkr","version":"1.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@1.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"2fcd46189e9671660f2276043b8e74025871bacc","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-1.0.1.tgz","fileCount":103,"integrity":"sha512-f5KTrAB6nqliHAxevU0fMBK5zz2JT50rAK8tm5JbFzsQbpn4b6vhzOYz/xK8BxxB0JGRcVAdG/5J8n9KIeFu4w==","signatures":[{"sig":"MEUCIBB17X3MRGczlYVhN/I0WLqtSG8T0O3QoWsB/H0RRq9WAiEApQKueIJNuQSn2pGi+84QCvNej1rklfT61dy9r3TTCyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1042818},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"ccfbe98a2857df66f3134bebe061b0dca80dcf12","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks and Azure Anthropic adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","undici":"^6.22.0","express":"^5.1.0","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_1.0.1_1765431413362_0.19578175311668944","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"lynkr","version":"2.0.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@2.0.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"700ee585d4f49b147b2cc915bbf26a7295be1cbe","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-2.0.0.tgz","fileCount":120,"integrity":"sha512-luPr6oOB5GIWY0xFW7N/XPCS295T8w4hZW1kl8i5seWDuZgiEMfFIpFpd5Ud1KcucH+qt315y9i4PkthXI5CVQ==","signatures":[{"sig":"MEUCIQD2SAvXnvsc3Wd0ldX4SN7+dCvBa3B1mWm/Vj8/9ka/BwIgfyQ9o+btD18UucfKFF1oTYxEpMpkforSnI/Z1t8rf7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1099572},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"b9822e5e912f910cc1225ba91ee0829d149986ca","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,Azure  adapters, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_2.0.0_1766131153613_0.004137723786061143","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"lynkr","version":"3.0.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"MIT","_id":"lynkr@3.0.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"d115d70968e1f5e540e75cd3cff344ef726293a3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-3.0.0.tgz","fileCount":136,"integrity":"sha512-LRHceufJ8KWEy03tuQD83Wvj5YzVYDHoj97iT5GXCbW+njKtPnmF5P9LhVbR6/0e9FdJo7n0MqnLs1QCYApaZQ==","signatures":[{"sig":"MEUCIQCp3e8Bk/zpV9ZjwSQ5FqlV3x1sn0wgKm9VENmNQ/Zi7QIgAj71Un5Frc+Jk054b/qg//jb2TE1V9iaqehW4kJM1l4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1325949},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"23e7034f8c71f2b8bae3c5f962d480b5f4434437","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,Azure  adapters, openrouter, Ollama,llamacpp, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_3.0.0_1767055363784_0.20104272579348503","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"lynkr","version":"3.1.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@3.1.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"f8e47a8f9891240682d675687a4c267d9f423a08","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-3.1.0.tgz","fileCount":146,"integrity":"sha512-kzBSbG9nu5opqq4vDhxZVThDcAdjfuRIITllGWvdtSNtr7mbQN6YImkdfHSGmWNaiaYK0wVc44frRmautU/MjQ==","signatures":[{"sig":"MEUCIDfHlT4szqroM7AM43Avgbm0UK1B77fmi1gd9488EqYDAiEA3khf9NFzpIPq2GIfuLz/JJp31yTIqaDks+gNiAbSDFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1486838},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d705164558bee54f9dc6ee969c60fc8017c9ba58","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,Azure  adapters, openrouter, Ollama,llamacpp, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_3.1.0_1767081070230_0.7627792443078301","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"lynkr","version":"3.2.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@3.2.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"559dfbcd3de601d28c096a2c991943f5d1d56d38","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-3.2.0.tgz","fileCount":146,"integrity":"sha512-hA+AOCb0whUHWy3xTNy3fSfEHFGswaYq6F3I5T/pHcICSN4MSLMc34coAGWmpgnQX+dMBXyrylVaVoNrw1/7PQ==","signatures":[{"sig":"MEQCIESUcOubY1qSyP03HcMFvVb4Az1q5UwKv8TMmexcVRmmAiBXJJvNvk+LyXvne93OnmdBMCBM6SvKE/dPsrf6Xvz3aA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1501058},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a2346423d9893b23b69356db46a1d1f2972ad0f5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,Azure  adapters, openrouter, Ollama,llamacpp, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_3.2.0_1767402090954_0.05187211504936373","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"lynkr","version":"3.2.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@3.2.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"190e697c1a298cb424524f1cf83c81691d1a8d82","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-3.2.1.tgz","fileCount":147,"integrity":"sha512-a+2qg06o/7xCL0MUhAjXBi9hznNKFIsKOzgnhuih8yq1yCdKxazVBJ1BfZEvjH5jpskRTd7l6d5K8o90V07r5A==","signatures":[{"sig":"MEYCIQCLHd2x8JiMh38oqO+pw5nB4sBehMOwE+GCtUWAbuqDhQIhAJlxS6Nkt9BMaFMaOAc59p+0HHlCyjGUQe3fRBgOo2xl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1499574},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a2346423d9893b23b69356db46a1d1f2972ad0f5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,Azure  adapters, openrouter, Ollama,llamacpp, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_3.2.1_1767409043274_0.031111568465368222","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"lynkr","version":"3.3.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@3.3.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"952be1aca337e969c35c7b4c110e3d5e00f8c90d","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-3.3.1.tgz","fileCount":154,"integrity":"sha512-JDcHkMYL4y358vX6C7AafsP8Jbhao7GSd+MIxcX6ciUxhqx/17wnHOIa6YGv51yJPzCg9P72Y3iTpel8oZ/EGA==","signatures":[{"sig":"MEQCIB4vxxx99IS6Mdq2/gNfsnGlJR7G4UVatgO1o/bytfjuAiB3PBF0JnYBwwaITTDaXXwkbpS4sHEZA9dDZfhHgzYrGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1618837},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d1c150d00181e9ae8b49e525c314630e848e94f6","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_3.3.1_1767809612697_0.47545622643919283","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"lynkr","version":"4.0.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@4.0.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"2059808ca904e29bc1991a01e185297aa9f9ed77","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-4.0.0.tgz","fileCount":159,"integrity":"sha512-ew3Bk+O+txf9a4yp9S+EiqtX2Gp887ho4QxAMI6PZJypVTfQ9uSzsGFW0T2Odhom+czpTn5FnxVXKcAX4+pRQw==","signatures":[{"sig":"MEQCIDRRJF2pDB7a9BpQEqWki8o0GxNZONywpUTSNK3+UUj7AiApxYi+RaWclt1QTHOiVFllZhDWq/d2Et8KPdOqna5sTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1752315},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"bc842a1b59d04ba5a2565fe8562d8e0288c642cb","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_4.0.0_1768180090522_0.9106864056193742","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"lynkr","version":"4.1.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@4.1.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"c791a68865ea8a07ada3121634cff08b465ebde5","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-4.1.0.tgz","fileCount":177,"integrity":"sha512-eIIU/Sp0DSvCF7JSH45uDHsCgREsbcMKqHxiljMYCqhM1me4Vm6qcOKX5JFz4h+Q9Ur2o9AgfBJeWiRSmMhIzw==","signatures":[{"sig":"MEUCIC7KHxhDrKoEBRlrFXo5L6hR5hZT//qyjRQVaxINvbmFAiEA6rwaEPWKa1NRwyImus1P0WdPlBvQAcC5rctKYSOeHDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2015551},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"fcdf2ba8a7a2ee9a61c93b9b07a8dc3dd38979c2","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_4.1.0_1768292214632_0.35661847830583415","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"lynkr","version":"4.2.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@4.2.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"bbbe152253ee82ab113f378d32361adb28329fb3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-4.2.0.tgz","fileCount":177,"integrity":"sha512-7B2M8NmLG5HESg9onp0eAzynX9wkGd5/DpNhSFU+MU3I21HxT0U4AMOgUwkgCvaUna61qxYQMW8ijSbUUz82Ag==","signatures":[{"sig":"MEQCIBZN5dhipbOl6U5vZG+PZTHa0X2vw4ILpDG0S6GW6b6eAiA8ItU5DTmDuLqH76xNiKQrPrQcPD6GRFhCjJe8Zr8rvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1907452},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"9257e333da3a3fdde2384772c9f40004e1c09e74","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_4.2.0_1768638736676_0.42850945778387617","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"lynkr","version":"4.2.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@4.2.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"051a5fc3a8a135b194ec7949578cc8e7660aa3db","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-4.2.1.tgz","fileCount":176,"integrity":"sha512-tGF2946PddlQSCu3u5D92cfDSOpVxEbvCwNnWMboru5I3uesxnqI0DvC0yb21Iw6aabLVvGW2d+onbwvvpiw7A==","signatures":[{"sig":"MEUCIGv90Raqcr5DffpgAMcUYlYlZjCnyqjG5/pOoNS2zoK8AiEAgfKdNaM+v+D/cD/HMGNl3nKWfGRRNoffZjQ+nAtsWCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1724242},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"b82a16c21e4d02b1683ffa812927478947dda2ce","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_4.2.1_1768711511496_0.527690194445849","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"lynkr","version":"4.3.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@4.3.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"775396f4b7ed2e8358cfd48745648d1a5d9a787b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-4.3.1.tgz","fileCount":178,"integrity":"sha512-v0UId6B4Cm797VW9QcVhJ9sX/dlrpZyehtV0E6A90HZnRsER8zo7AXhR5JvnAwPLGyna6wDpDbEvq0++LGXuqw==","signatures":[{"sig":"MEQCIHmBStmdmcPnZzvVUfGVJFMqrTqqWP0kVxTRchQCJroEAiAP65vxPw/e0N1rUrk6PMGzvIL7aBTP9HEtLtIRroChTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1755834},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a2cbffd3499b4599fa2e4eb3b45f693853fbc3d3","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","test":"npm run test:unit && npm run test:performance","start":"node index.js","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_4.3.1_1768983331361_0.3238836652008008","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"lynkr","version":"5.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@5.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"17a496716650c62f454305a9547546e731cbacaf","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-5.0.1.tgz","fileCount":192,"integrity":"sha512-n8IX3u9kbqIEOYjnn4NkpTtqLqMWV+Ds/M+0bUszXI5yIQSR8ALhnoW3iYGg+4Q0ipnqiFRuP7qx8P0OO4wM2A==","signatures":[{"sig":"MEYCIQDI0uFHeLQb3wKlocC2fBHHs/dyLqWQ7KOEGbxFUo6lkwIhAJxYwVXYQhtQk2+Z1KZEvJ3TV/5yXMxTIQi8NasHbbyE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2046041},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"190e188c69587565ee0446b6659eda21865f04e0","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^9.4.0","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_5.0.1_1769396874900_0.4912142005273734","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"lynkr","version":"6.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@6.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"153491d9cf0af8671358aaf42615a9b211da057e","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-6.0.1.tgz","fileCount":201,"integrity":"sha512-nqXF/SkkxrDZEwDPlDL7QMRLGPKfgqGzUaTbBIohKPwOmXo+ArwuedRVmhaQAbkzqQXKcdGcbuBOVyT07i7a5w==","signatures":[{"sig":"MEUCIBdmwabqcEU2MKetlK3eAIGj1NsuqGJHZ58GVhdr55t0AiEA3xSWYcPVgDp3Vd6i3gUC/DPrV+NzSVhAcjI3dXwlhU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2176385},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"edfe4109cbd939cf731a42283d02acd722a0faf5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^12.6.2","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_6.0.1_1769838653090_0.4819805301927653","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"lynkr","version":"7.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"163a98352f0d79fe47b96fe83e7d82d382ed22ae","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.0.1.tgz","fileCount":209,"integrity":"sha512-9YHqRuqhNDkTEBKrtm6ROWyZ9U76wmL2qJL8pTqFJVkr61zref9ArA+YH3S3DFXCrOlNioIs/Xo74LTpyXtWJQ==","signatures":[{"sig":"MEUCIQCyypgf0ptD6F612kQJemKvK8Xst7loGU1ihRKDm+u3gwIgE+yg65roaG1FfpAYWF2G8MEyTpPjtncEtMRonBKkHbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2202664},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"41d9616cdb1bab72cc5611a4db70742fd8021e80","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","tree-sitter":"^0.20.1","@azure/openai":"^2.0.0","better-sqlite3":"^12.6.2","express-rate-limit":"^8.2.1","tree-sitter-python":"^0.20.1","tree-sitter-javascript":"^0.20.3","tree-sitter-typescript":"^0.20.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.0.1_1770299544532_0.5112031367353282","host":"s3://npm-registry-packages-npm-production"}},"7.1.1":{"name":"lynkr","version":"7.1.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.1.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"4a4e943d259b4e1f39abbbe751654c8bbf886912","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.1.1.tgz","fileCount":212,"integrity":"sha512-sdYZh1ZEON+eRVylR2SE0ZnUvMyi7Dj4i7ttbZroYK2SyI6F0JgzDqMBokqiHsg1nHc92PdX2sP6DyZBzsiN4w==","signatures":[{"sig":"MEQCIGGRpqNb5tfGoeYW1zp6OehTByo5bCe6cEMwYRBfrWyRAiB2myUgLw/HqP6Q5iyxIsiUmMjOGQw7KCD3GJlR5czCLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2244066},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a49647dd10a3502baeb1ae6e62c6770ef5a580a6","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.6.2","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.1.1_1770718785107_0.46204763006194893","host":"s3://npm-registry-packages-npm-production"}},"7.2.0":{"name":"lynkr","version":"7.2.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"6c1a7606d7698aea71b70fccec0c4c1d1968fcf3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.0.tgz","fileCount":212,"integrity":"sha512-28mqHajH3JEJ8HJRnlGX7EVDpHO7nSF6KB5gC603zAL2r3rhukgT7N5N5itDSlEd/i2RuXIxXT5PZrkBBTyeog==","signatures":[{"sig":"MEUCIQDgPg3kIns+dr3qfptwaeG8DCYfruNFzVuYwCKzCbMZ6QIgA2h5p/1ZOLpfbaDatiPsT0CdYh/NyhNj73X4gr0ijDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2244338},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"1c55169f0a45d1771796ac11b83da56dd9046e3d","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.6.2","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.0_1770735057131_0.4997944741593652","host":"s3://npm-registry-packages-npm-production"}},"7.2.1":{"name":"lynkr","version":"7.2.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"ae1ef219ac5ce00d18f8ab666d0036a3663e7885","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.1.tgz","fileCount":211,"integrity":"sha512-61oEABtx1qOsrPva0QewSdhRHJqyiAqUcJLe6OyA8cj9pZvXaBSTk8/GUgYdnUh8Y4C+b+Z2q4jhiRc7T2LRTw==","signatures":[{"sig":"MEQCIER2XTZR61+LZpAG7ILhYQpmcUx3pzbBNhzdFb752sPSAiBGupJizSqtULVmh+39UD3BwTjiuQ5SC6BKmzOEXDbSFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2214470},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"85d734fab99662d30448aa793cd4fc20423f488c","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.6.2","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.1_1770737471709_0.707487980612","host":"s3://npm-registry-packages-npm-production"}},"7.2.2":{"name":"lynkr","version":"7.2.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"84d9c8967692676c547cd89e037b7cec8624c560","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.2.tgz","fileCount":211,"integrity":"sha512-t+AX3b/zWTWE2ZmX5hwhj20R/yIoQt0NZkVprmC8vSdyAmRC0RP6InmwrsQfKkSfs/ONJ7gKk4uwF/PGinrsVg==","signatures":[{"sig":"MEUCIQDjWPc0Nx3o6uxHDEaap0nvBH5gaxellhnCJUuy1yqDawIgKzYItZdpzf9NKutaOtGL+MEBQhiNZUR8LuunC3RLk+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2218737},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"ecd24d26be065eea3c2c32f9bb971264ceb5d7be","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.2_1770747397722_0.5089528579877267","host":"s3://npm-registry-packages-npm-production"}},"7.2.3":{"name":"lynkr","version":"7.2.3","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"2350ba060ffe24a8b38fd2ef93161f17c0f9f273","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.3.tgz","fileCount":212,"integrity":"sha512-b6e4+aQZS0p6SFedEBwBTRX0doks6Ex8RgIDDiogJg2halg642wS3GrXx2XvPf2Y65oF0146A20iFicgCAsTOQ==","signatures":[{"sig":"MEQCIFYmp1pxzs/yk4ZdG9FwOY7DIBTUXfIanddkdhwGXUTsAiAySnaGhLFR1v1cvvEjBmdBlUolS//K14/2d8kOsgCq3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2229734},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"ecd24d26be065eea3c2c32f9bb971264ceb5d7be","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"docker compose --profile headroom down","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom container not started (Docker may not be running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.3_1770749183830_0.623570447317346","host":"s3://npm-registry-packages-npm-production"}},"7.2.4":{"name":"lynkr","version":"7.2.4","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.4","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"d07b3d66cd339e8b7d6b139c3377507fbe7abbe2","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.4.tgz","fileCount":212,"integrity":"sha512-ZV/UvAdp/1mrBm0qZdxW51v52eOPpwJpI+CjteniyEudoPg1KLjkrNzwsFYB+2mRk8tHJXBrpps1h5t7DaImbA==","signatures":[{"sig":"MEUCIQCCpblvx7BS8CMSzOAIjSdGu+AyjLMi9pVQLn7Vms7RpgIgYUItPb4FbKmlRgkOWi30J3VToK1s1vNwzr4W/s4pahc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2231482},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"57764158dd6a94f15c2b96eb80ee52654eba17e8","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","dockerode":"^4.0.2","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.4_1770804091688_0.7069882003663106","host":"s3://npm-registry-packages-npm-production"}},"7.2.5":{"name":"lynkr","version":"7.2.5","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@7.2.5","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"5ed9073794e50b06ba5441fcc7ea888e38efb31e","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-7.2.5.tgz","fileCount":213,"integrity":"sha512-PIJwDzlOw8aBi2kxc/AFj5S1LxCtfjzV/50WE2nuo+vQEsm3CpT9mKj1qesnTqZFHx61i5NM+YJyE1+tV5Ucgg==","signatures":[{"sig":"MEYCIQDGJ62iD/X02V1s0jLYcamh0HHalc3s5OU4orXrqZv+LwIhANw4Ob6M/wh1MiyJHSmiSAXxyKj27kkAtbkfRy3AFqRB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2250671},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d056bb655d4f17a30c3c3deef9349128606c9295","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_7.2.5_1770805094047_0.33091192155260507","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"lynkr","version":"8.0.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@8.0.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"7bd4fff4c53312bb1ed11b133f1fbf8502fbcf40","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-8.0.0.tgz","fileCount":220,"integrity":"sha512-e7+6VF8gwQPrS/9FSt0Up6pdL9Zin7G5V8lH5gSXk2go7ewfrj3dBmzhJv6ltAu8BfW6WBwMAbTeNV/loNrQwA==","signatures":[{"sig":"MEYCIQDmv83P/vSggVZEsxWZjd8wx3ZOQP+lImXd5z4pzCQxWgIhANwTCYOyaoKQR7TwFr7M9dDZnHns7CO6dPp+V0O/iaL6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2774248},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"f9d88341c71dfe1e7e4addb77a463004806b69de","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_8.0.0_1771776350883_0.1669925252240474","host":"s3://npm-registry-packages-npm-production"}},"8.0.1":{"name":"lynkr","version":"8.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@8.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"122e591fed9488341a14a753402076ea953b6050","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-8.0.1.tgz","fileCount":130,"integrity":"sha512-hqIQsu3sKs+fv1e2h0k64q/Iri6ak8MqmHSGyu7dd1Yop81zpOqDvQPJtcsgOOQGzTyV8eWeuVofSzKIZflo7w==","signatures":[{"sig":"MEQCIGIfe3vZhfcYrBB72gmRoshDV/SV+xpT2nedrIpo6FWFAiByKucw/5/8Gml59QYT8tO6fNuwM8uNlihRvuw9pxarpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306924},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d0863a21b43bbe42c069fe6cbc43b82c7747d784","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_8.0.1_1774122501055_0.6865709618067051","host":"s3://npm-registry-packages-npm-production"}},"9.0.1":{"name":"lynkr","version":"9.0.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.0.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"33a340bd8ecb06c92c1aafb659ff250c622f864c","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.0.1.tgz","fileCount":145,"integrity":"sha512-zWg8RjXdvD/p/CjtbqisH9cTmc6JMTH1bReaAEm/GR07lF+KqzTBhwUrmCdBGh71pqmouyG0q/iMROxeq/fz3g==","signatures":[{"sig":"MEUCIQCI7O74MKPcYQEMf/1hrlF4BKA3icw/C1i/fjd4Ahm6IQIgc5Laee8JdDf6RxZG1oE9irkqbRvOUpU4W0iw6sc3A3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2088421},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"4898cb3d14f9521a1555a2dbc896931fc5042a7b","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.0.1_1776298664810_0.49640153919895225","host":"s3://npm-registry-packages-npm-production"}},"9.0.2":{"name":"lynkr","version":"9.0.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.0.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"2e692fad87edbee959dd31d6cae557de7bf2328c","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.0.2.tgz","fileCount":155,"integrity":"sha512-PKH1aiIO1ujczMrd2naP/wAah/ll27TXrMi94Joz3HjKbZNvr22lRgIv0CuS2pT6w5sz+zjifkfUfUYnlWSECA==","signatures":[{"sig":"MEUCIBf5032hBqosPJSAnHQPqte4bKYUyod/vOGJVUzjBLTXAiEAj5EnYsxrbIm2frjOmcGBEYLYCiS3UuS2QpuDWQ0sC0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3228933},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"b4dffb3c04370649ffbb51873205caba85dbcda4","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.0.2_1777501501772_0.8105551500417671","host":"s3://npm-registry-packages-npm-production"}},"9.1.2":{"name":"lynkr","version":"9.1.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"779feb23c3bfae7321dc3dedf1a10237f5d87d21","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.2.tgz","fileCount":167,"integrity":"sha512-be1KTUllJ+tSMGm1j/Hj023yJeJ3ejd1Il0WugYSZVsx5UJ/bnpoG6H0fe5ttyWpRolntG5oOTGFH9FJX6eYUA==","signatures":[{"sig":"MEUCIQCbXXF7iO6rHesZU1koOLa4gMJwE6IeUHX/H+TXOVXDVgIgfZJmIeGjDDckp0GCO5Q8NPVYp+oNj8aujUlB1KNEvE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3334428},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"9c6d9d38f3f431c53a327080c7b1e18700e1fa65","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.2_1779319453004_0.6457713972504282","host":"s3://npm-registry-packages-npm-production"}},"9.1.3":{"name":"lynkr","version":"9.1.3","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"a5e36a36df063bf3f17cbafc644733be47ed8d70","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.3.tgz","fileCount":193,"integrity":"sha512-spnaypqHnA9xByTIEh3ZiAgX2DwSgwUUu8MJDKMcCUCUUKxxXfxPFm4QVIOHHkJ4jhDE4UeCczEme78ATq6w8A==","signatures":[{"sig":"MEUCIDZJm9ybju93KAxPt1DEOqgUWODmH/IbjJKBbtEK1KcFAiEAmzjilAQYb5cpy6ZLDi2KghTDLT9yke0z+C8bduPCJA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3457955},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"8501d979bf7113c3318db8bc107432d3fe35768e","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.3_1780095610156_0.0028914330210387806","host":"s3://npm-registry-packages-npm-production"}},"9.1.4":{"name":"lynkr","version":"9.1.4","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.4","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"c9c3ed7885a6c5272b50a1b5e65e79f82fd044ab","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.4.tgz","fileCount":193,"integrity":"sha512-qp7zSnYjHFRhK0NSdAZ7fRpRUlci6GkimSQzPmXoFc1rMzj8PjP8S4FYw1ez5/dNNwyc46degyAvYAQCLfWmFA==","signatures":[{"sig":"MEUCIBYfeeE8QjtMNWTjrSjOyfbsNLvXnDKFVy2P0yuAtF1FAiEArtEktJ8fldu7AyAKtQ9ZR3RqXBPzAyaCi1m4YMQ/rKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3458579},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"8501d979bf7113c3318db8bc107432d3fe35768e","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.4_1780098004556_0.384936373789857","host":"s3://npm-registry-packages-npm-production"}},"9.1.5":{"name":"lynkr","version":"9.1.5","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.5","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"a65ad330ca343ad1c49d10eb9e1ea746cdfeb579","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.5.tgz","fileCount":193,"integrity":"sha512-0mvc+mCo4SCmANwz6CwWCq6GTvqMsum3a/oRIyCAnMB4wimKtmN6mKN4wWt79jwCGk1SAeKoLAwsaX/wtQaCrw==","signatures":[{"sig":"MEUCIQDdSuLhNAI5ClSSzT78EPhDx8szTEXF80RTEeFLkHhXkAIgUShLk5OxT9l8takQLJ/+N+2+QC+10SMoahUbp0DHKc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3459232},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"8501d979bf7113c3318db8bc107432d3fe35768e","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.5_1780099485316_0.5689919051562382","host":"s3://npm-registry-packages-npm-production"}},"9.1.6":{"name":"lynkr","version":"9.1.6","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.6","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"349987c2a92ba1b71477a0aaabb4a0e4bb54ecb4","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.6.tgz","fileCount":193,"integrity":"sha512-J4/yQx6QYiic/6pLj4rlVDNIxSeW3JebIDKqvSXHAzQFbHJG2brLkKWWzeShsdzJOlO83589J2siyMNy3qPUbA==","signatures":[{"sig":"MEYCIQCMHH/hXaU5PX9KYnx/HOcZ2mkJ95HgVDXktDl0dRn83AIhAPAJ16sUkykFJ4n4r0+lmP/dkI+VNZqsZfTeYyHsO20B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3459232},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"360492c6439b05248019a42d97dd8d09f2c3286b","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.6_1780100900228_0.18865572210923687","host":"s3://npm-registry-packages-npm-production"}},"9.1.7":{"name":"lynkr","version":"9.1.7","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.7","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"50a560db1fa3443096ca604a0db8109d0545830b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.7.tgz","fileCount":193,"integrity":"sha512-SgZ3TVkMGbHmfxme5hdnqgLfW4pDwRgk6Ef9RQaYm5xqn1NQ8kmtrdIieSIhjRvJ7oNcaOQu6x9FI/O7D8rJOA==","signatures":[{"sig":"MEUCIQDbWih3awXTJ4MEm+TL6fBAG+6O2azM4ejT3hwa6FjhGwIgQsX+JGNIHj2nzi+c2qFDq8g6nrs3qA/WrfGo2QTuZHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3444648},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"4d512dd70a4922511a9655e2cf07151f7a57f960","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.7_1780101126492_0.03915643955198833","host":"s3://npm-registry-packages-npm-production"}},"9.1.8":{"name":"lynkr","version":"9.1.8","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.8","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"a204289b0d1dbd773a6a83483168b7962c3903b4","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.8.tgz","fileCount":193,"integrity":"sha512-qmUsyW+XiLuybxoxX6j6YWgo8lKcaGQmeJ6raHYEBLhAQc91ZLg+hK4YO4psCXBhYnoTSQHu3arYsmUfVkpsRQ==","signatures":[{"sig":"MEQCIDDzg+5iAnHgaxMb2bF+eXc4vhlIeQPLZJMbxvutNCh3AiBsVTJvxDH9z+RnfR8QVwdtY3xgsIjgaPQYZ8rHqbfx/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3445272},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"09426190930db13efe7867d5941ccb392532b431","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.8_1780101520769_0.5895528467632796","host":"s3://npm-registry-packages-npm-production"}},"9.1.9":{"name":"lynkr","version":"9.1.9","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.1.9","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"59a9bb3e4e09cedf926414d6377d12d276fceaec","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.1.9.tgz","fileCount":193,"integrity":"sha512-hcHNWGxJOdjx0nI/3fPffXUySbcyGZYhifVCF+Cr/2WhCWKCi3YQY/fwaKizRCyP81JEM/tvmJroBQUkDtR9rw==","signatures":[{"sig":"MEUCIFkp6fSEdO86EWespVYj2zhzSdwhLqt+yzTqVPduBR3hAiEA/66AfrAFjiywvY6y6Un9oSMeueMJpkhl+G4/qMKE8Jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3445271},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"133f273d2ac7c257d537b4aeed106cac3f72076c","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.1.9_1780102532692_0.9652654993171828","host":"s3://npm-registry-packages-npm-production"}},"9.2.0":{"name":"lynkr","version":"9.2.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.2.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"7e3dbcdf7fe70abd57cef85caf52ede26ce99f72","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.2.0.tgz","fileCount":193,"integrity":"sha512-x8EHm15K66osyivlnwPrNaOFXQgLcJZiq64Y6RnP9RNFWIly/5Zn3xrlFXv5K2Db5B7bemhBo4dmUMGEfFdTgw==","signatures":[{"sig":"MEUCIFyggznhv8Y/f2OlMfchfucPW+tCEUiybg4JJ3NA6JY7AiEA4jACQEz3bP+Xyp4tO+4hXxiuGdZBwj9vIfCaCMugV3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3441118},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"08d3bacf13f89ab0031936df06f2bc259d8f13d5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.2.0_1780102803449_0.7360001422927156","host":"s3://npm-registry-packages-npm-production"}},"9.2.1":{"name":"lynkr","version":"9.2.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.2.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"43c840b400b4f9aeb366ab2c4e71ee568f97e3c7","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.2.1.tgz","fileCount":193,"integrity":"sha512-fC7oOfxctfeXqXukwcPp8jCKFVXCRfjTGgWrptFjhlfamt1nwS4b1fSfrOZRiW4PDSlIFCY76Zw2DB+6cUTG2g==","signatures":[{"sig":"MEQCIEkRyNiKJMeEW1KXXXN7boPteGYN9tCaBqYENnbyq4f8AiBIfBiNI2lvF05vnZCx2NMfxatYGy4GmyzSOVl39BD87g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3447270},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"7f0f114cf774156870f43aa5096da9d62f7b3674","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.2.1_1780102923704_0.53002987123195","host":"s3://npm-registry-packages-npm-production"}},"9.2.2":{"name":"lynkr","version":"9.2.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.2.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"15eef1e98ff7afe7c7c76c5ec70416c3cf26aeb9","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.2.2.tgz","fileCount":193,"integrity":"sha512-VVvzEe3idJUZcux2LEBR/P9kLzWGJCC9ghK0pbtbe334R8udCER1XaUelgQ/2KRo30yd7i2NJS0xOmMP4w2zQQ==","signatures":[{"sig":"MEUCIQCQi2XKlKyMSumtIfE8cUdUsnINljmaukfAIAYtGjEdKwIgFvM5ZInBCDulv7nAz/g3VfDQlCgBELwdUMy2K98ciTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3447526},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"0aac20122ccf1568d1cb5d8cfc27d3d0c9af705c","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.2.2_1780102981419_0.25826058102473315","host":"s3://npm-registry-packages-npm-production"}},"9.2.3":{"name":"lynkr","version":"9.2.3","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.2.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"3b6fa76bb6c418d927db80565419c0d4268cbaf5","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.2.3.tgz","fileCount":193,"integrity":"sha512-AQDeMUWYFbO/H1UPSEkAtu1m+US6Vc666N0URncBw+ZJ+Sk0dl4ycOWtzgm/430oaqcIXORUP1oWcds4jk26qA==","signatures":[{"sig":"MEYCIQDsRZ1TEFZyakMFxt3jkpt7AToXDUTVmRrdtTJl9RXNvQIhAL2eNIxIS3Jl1Sm+1LDZvbtijomG3srUZVD8X7sHEanp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3447645},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"f61583985df8f81f91288723c1ec6ec638e947af","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.2.3_1780104509365_0.8974092917054006","host":"s3://npm-registry-packages-npm-production"}},"9.3.0":{"name":"lynkr","version":"9.3.0","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.3.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"49133beadcb845140355ab6f7fa832dd8e0d3387","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.3.0.tgz","fileCount":193,"integrity":"sha512-yg3NMDJa7NDGhLUTRg87U+VSe8JX4M4QHlzIzbcYnPULQGlwcFgLhbjzNNu2BNCxCq67NjhWSTu7kIzVshuKaQ==","signatures":[{"sig":"MEUCIBmuVAaVnbWVpkXr7iZ0yVsqfeCbIIxBd6jZS+C+h1KpAiEAgcWhHMel2map+m52l4TbWtVf8YxbAjmEjZX7tqS5hYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3447892},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"fe6d820aa6b6354f0c5f95abab0ea2d6a91b8daf","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.3.0_1780104800654_0.622438944733192","host":"s3://npm-registry-packages-npm-production"}},"9.3.1":{"name":"lynkr","version":"9.3.1","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.3.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"ffcdcf3ac37f0e3990c321871f71c3680ee964db","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.3.1.tgz","fileCount":193,"integrity":"sha512-o6hee+tjAy1O1utGUAr4+8Qa1XRUrE8sqkGr2+aI+HNZ/A/vaqMCZDQJ9kQArWmUiEgCdLUwkCJw5fQxTjVA1Q==","signatures":[{"sig":"MEUCIQCFoPCi3+fBYZV4fmWMSo+v2x8LiRCe4Cw5O7fne3lDHgIgeNiLBS+D5o1ZOugACE0Ya4DyabTRXFTLRj2bsDBQJYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448837},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d9e6186311f5297106bf50f6c6b7077a81bd30ad","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.3.1_1780105375267_0.3632883434018972","host":"s3://npm-registry-packages-npm-production"}},"9.3.2":{"name":"lynkr","version":"9.3.2","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.3.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"84e920b5f1edeea0fae644c0fa46f391493a39df","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.3.2.tgz","fileCount":193,"integrity":"sha512-tVAi855YQAZbCS4rafMYiLMxqJCLKhuFzubOovEF6GESFNVDplequK5c5NcMaXovCqB4vKygiMn4q8jCxilrLg==","signatures":[{"sig":"MEQCIBKN3MHLaGgE9FfoFElxuoKwmIhlhZ/C1dKqpvQV9/TxAiAeSjkBSPgzlUbAfm7Unt0Wnbqlzno6ixXr+HmgAFnwfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448956},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"8ba817f6db2b13359f2f28c9248a9c98462814ab","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.3.2_1780105432109_0.4674434764120434","host":"s3://npm-registry-packages-npm-production"}},"9.3.3":{"name":"lynkr","version":"9.3.3","keywords":["claude","anthropic","proxy","databricks","azure","mcp"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.3.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://github.com/vishalveerareddy123/Lynkr#readme","bugs":{"url":"https://github.com/vishalveerareddy123/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"da06113ad240be8f3a6f27e4b0dd4f6b4970f0bb","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.3.3.tgz","fileCount":193,"integrity":"sha512-HByW9oGL/bLfWxByw+g3anpaUtW0I6yK+RHqQOscR9jqbuAq7tVSBSVPVO9pzvG/JHr55EXENzk19ypFkbvQtQ==","signatures":[{"sig":"MEQCIGr0rPTSuwxyTD4VLl7Pcqv6wOyeP0nDJSkVpA0O8qLuAiAqWtxkeurjVdXWts2m6wRwEs6u15OlDiWJfZG7Byosow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3451856},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"f323059c737cc9d5a5da0604149419870e05b76a","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/vishalveerareddy123/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted Claude Code & Cursor proxy with Databricks,AWS BedRock,Azure  adapters, openrouter, Ollama,llamacpp,LM Studio, workspace tooling, and MCP integration.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.3.3_1780106311045_0.7803882578808401","host":"s3://npm-registry-packages-npm-production"}},"9.4.0":{"name":"lynkr","version":"9.4.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"92192e39b8a98138cc640401c8d92fc88aec13c0","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.0.tgz","fileCount":199,"integrity":"sha512-IlLDCnBGNfJajslgqcJzy7yl285ajQ/fdKzhA62gIqW46hqqrqAIim4NWvYVYXCjdWBhnt7jaG6cBwyRxr+tgA==","signatures":[{"sig":"MEUCIHeRv2Tj3R85VW48WHYG8PWCuAOOqWJ+M9yyaexu4Z7qAiEAtolkRoshtHruHHZMaJyseQ3UHIR0fDYBNIf7lXPkZ8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3486945},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"28888cc7d6dc58ec86501a559df23d21faf1b508","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.0_1780864988043_0.6663432046678655","host":"s3://npm-registry-packages-npm-production"}},"9.4.1":{"name":"lynkr","version":"9.4.1","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"971afd5d7f812640a7a77e6070d32a8250a8a829","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.1.tgz","fileCount":199,"integrity":"sha512-xKVJWaqLvVT0Mf89w4/Oz9tol2MliDQsm8Yu+694Y2n8VJOtWtsurSBrr/vDY+3lF7jlXY01Z1Kp05xZC0dZBw==","signatures":[{"sig":"MEUCIQCe0C38MaJV2q8EDO7gDpaKI4iHyLgeGMKdCQSDHuGg+gIgFrdclw5tRfbTg2Ce3GAhyqS4z0VbJO2VbgVirn3X6Ag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3483371},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"813117f5b3a785689da7edeec1c4383d044c0875","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.1_1780902314827_0.16126174347891875","host":"s3://npm-registry-packages-npm-production"}},"9.4.2":{"name":"lynkr","version":"9.4.2","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"46983d045f43d5fd8db7db9549747331692f159c","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.2.tgz","fileCount":199,"integrity":"sha512-az5Sa7kFcuhvxGhVvdPV+TJdrPL7LpSj6WToMY7nSTZT7D7nb4xzMyviHV3orVy4LD+F9Icthc7/CLgRoMov1Q==","signatures":[{"sig":"MEYCIQC7i8yyEAcYuL1TqBr6rATlfp5KvE6bs8XPgfsR2TjBVQIhAOfICY0hx4CBkXdD7h7yF+gxRCaPFg9mohrZvZR2POJN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3483583},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"f4b5f9ad855041255de1f3dbd26cfa1f43f5c9cc","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.2_1780902539624_0.9133943317280762","host":"s3://npm-registry-packages-npm-production"}},"9.4.3":{"name":"lynkr","version":"9.4.3","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"b891ad03109622a98514938dde49b2cd0117e932","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.3.tgz","fileCount":199,"integrity":"sha512-+Sh/yHPjyH5z+TwQoqVMFsIEAjHg+2G5xUQAhSKsG8ag3rtdOFMJTkIkPdpjkdx9KVG43gjEPZiqdkGyYb5pmQ==","signatures":[{"sig":"MEUCICxJoVYf5aqmRdmAjGpGqlBEeAm4Ybu75iX5v9QzK/S1AiEAvVEYEWWBxoaKvg5r//L7m9OTa1CMOKypnBmmjDUDB70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3483583},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"f4b5f9ad855041255de1f3dbd26cfa1f43f5c9cc","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.3_1780902861470_0.5507668074473671","host":"s3://npm-registry-packages-npm-production"}},"9.4.4":{"name":"lynkr","version":"9.4.4","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.4","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"c9deb2b88659cecfeb5003a56a155b7b767ad8a1","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.4.tgz","fileCount":199,"integrity":"sha512-1i7yMVV4u/pcDg75hmi6NxT0Sl0YFm6vBTXuooFeRIWHsF5GlUzL5SSJw5OkBwpOp/j+KNfwmaFxW+eE1SDa7g==","signatures":[{"sig":"MEUCIQComtKJe7a7J8TiP2hCSMMIUOnXrdr/kVTFPwo/N/5SkAIgS8YlX6RVbJSZsn9VLAR3WbNdzDJ+dgjJNRUSWvwofDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3484135},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"edb22148464f68be418cfb8e1c19cff07e0d4cbe","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.4_1780903130214_0.6610516227739287","host":"s3://npm-registry-packages-npm-production"}},"9.4.5":{"name":"lynkr","version":"9.4.5","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.5","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"e50dc0ceba9a29df4ef70ffc7820bf9d24c5172b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.5.tgz","fileCount":199,"integrity":"sha512-sqliu5X9Nhf5nev7JaqgiB0/PeaG+wkuO998i/+QD3NbLA3Ob+M/yap9M/p+aCoRHcFkHPYPs1eUBJSkqjC/JQ==","signatures":[{"sig":"MEUCIQCC6mWYToHcNSCp0LxIIAjlafeY26JYXZ2ZXKl8BVm8ygIgVK0uu+rso7RKaW7nOmF4YRKIOB2BaX728jSJhAFVWDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3484428},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a0a37b85954d73b7d9f56bcb2504121296a46a31","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.5_1780903505494_0.3717814745594019","host":"s3://npm-registry-packages-npm-production"}},"9.4.6":{"name":"lynkr","version":"9.4.6","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.4.6","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"82ae3e2604133e7be880b3884d4b2b413020e2f5","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.4.6.tgz","fileCount":199,"integrity":"sha512-edLeAVjdYE/xqoIq7Z4b1TF1GzAVdq7zNRkpsRO3EnderAShbty51g6zMKqY8avliUhI1xA2ztohTenL+1OzcA==","signatures":[{"sig":"MEYCIQDA0mE/c/2JkjJiT2NwhsiZzowow3sZ0nA3H027e6g8QgIhAJ9wLLFD6V5Us3opJbf3Y+rdZcrcCv7q3xV2qTC0+GRF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3484649},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"82684d866475a8d1268982dfe4563478a942a9d9","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"10.9.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.4.6_1780903977628_0.10945430235851439","host":"s3://npm-registry-packages-npm-production"}},"9.5.0":{"name":"lynkr","version":"9.5.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.5.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"81ba708a05636e8e52bfed65a9817bda8236651c","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.5.0.tgz","fileCount":203,"integrity":"sha512-DIdTf1cNuqA2PZzo/TtQSMYZsJ1ro5H+yFh0BEEuFzd3J4ulP5Rh8GswteBdr/L/WEYqmGd7SmTW7jd8cXynPw==","signatures":[{"sig":"MEYCIQDLF437dlSZYKNNgSY+sj5HLRzV0QJhXeow+3gJHIwU0wIhAJgUJjjDlxBFv/1NjRuRYi68MBa4S32NYNv86SzEx6rf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3522344},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"7e2b28e32c9b8f26bd2a91c4e66229901560d59d","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.5.0_1781201211084_0.008839650928119447","host":"s3://npm-registry-packages-npm-production"}},"9.6.0":{"name":"lynkr","version":"9.6.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.6.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"d6c48e8be00ee34958228c6d1191986f5f8fc228","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.6.0.tgz","fileCount":214,"integrity":"sha512-zyXIKupeunmSlrccCHln53JblUz9fQPeKBXMry2X4J1AQaNFahnaDoHlDuvUiosZDuwMIIOOJhCKk9CyoJGozQ==","signatures":[{"sig":"MEUCIQD9bhLm0bFaYDiq0jC7mBErf9P8zKRmLAZ1o8mC3/BBbQIgIYDxLWUQ9ILP8W3DItMab+8EPtiGuO+lQhwoijy+fAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3576093},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"07444adeb4032842896f46b27c908e236568ecb4","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.6.2","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.6.0_1782204530065_0.88464051590595","host":"s3://npm-registry-packages-npm-production"}},"9.7.0":{"name":"lynkr","version":"9.7.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.7.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"a85dd760b94b3cf59bcca6983b925a094adc8716","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.7.0.tgz","fileCount":217,"integrity":"sha512-4eq2ZlBnE84OMP1bp52h2UQtmpZJAZn/+0vFeYMj2xc9MXl2h2ck9EZpplk6dv1hKrFJLV/mWUVdmvoZBbkRtg==","signatures":[{"sig":"MEQCIA0kYKX9P1KRiVkiSDBJJDO9ASwjwdv6y7d2Ym+ATlkJAiAo8VsdHnAVUmEBupvDJ+hWKCnRymOWdzyuvu4UrqaXqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3664820},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"13851fe98804ec5775ba881109d279ec3774b33b","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.7.0_1782844409588_0.37360302490247776","host":"s3://npm-registry-packages-npm-production"}},"9.7.1":{"name":"lynkr","version":"9.7.1","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.7.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"0a27512b13d8d94fd62a7e93b24c1ca1bb3e1348","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.7.1.tgz","fileCount":218,"integrity":"sha512-5R1nfLCCzhvA/MO1DcTA9UPmm3auURDYD6cmU9M1Y8oxseCMlrCXFSXKqP8hYCFiTFsuDuXSLpYpSMMEUoDhaA==","signatures":[{"sig":"MEUCIBcKBMgMozPIYbtBhquCS11owOi+luJpHXzXirdz6o3cAiEA3fePJplsqsLDPejKWtM48feMo2NK3vC30QKyg909+vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3685596},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"71ba15aff9f629e8a664b8cd102f7a6925df3f3e","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.7.1_1782848767025_0.39869466298781076","host":"s3://npm-registry-packages-npm-production"}},"9.7.2":{"name":"lynkr","version":"9.7.2","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.7.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"5637e3f79c3e0173b5b2c369b3d5040bfa3bfe57","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.7.2.tgz","fileCount":218,"integrity":"sha512-YnR8Gq8g6m+n1aIdd7BssjWwlcoD+LOHPuBXeXjcIXjEGbUxkaZqnSAKglXiRvbhChzCVQs3XqnlzlS/Bvkgnw==","signatures":[{"sig":"MEYCIQDahaYkuls7RX9jY8whFIIYqdULbYDeT7fxabMXwjePMQIhALUJ2Vanyni/++q7Navpw+1eUyj6GeI3lPtwkMiDEPNf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3686084},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"522b736ca1daaba80d44de89831fa088b838bb59","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.7.2_1782849265463_0.4929199465886851","host":"s3://npm-registry-packages-npm-production"}},"9.7.3":{"name":"lynkr","version":"9.7.3","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.7.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"d141a188e2a63da9f6b6cbd26862fa15faa64d1e","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.7.3.tgz","fileCount":218,"integrity":"sha512-ZNNx6D0vwtn6LTZemAurNfsmaNevGIyDhjBqaUylNJYXzo8pP5De/OF92VuaJqbcrT75GgXqmeTJ5LCBqQXF1w==","signatures":[{"sig":"MEUCIQCWwaG5NAucv+gxar34xSWX4DsVTuOAzZpGmeOhMNziYwIgXZlOnwP3NYWQhdb0eya0j6Wct4P+wlXsa3jBAALzLDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3693608},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"30899e664129d31c160481808e54efb26f42bd6f","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/agent-learning.test.js test/tool-call-response-metadata.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.7.3_1782956654100_0.2862128801372661","host":"s3://npm-registry-packages-npm-production"}},"9.9.0":{"name":"lynkr","version":"9.9.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.9.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"022e6bec9d6b6c35a30c1c6781a37cb652b13c90","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.9.0.tgz","fileCount":224,"integrity":"sha512-KDpR/F8w1iX6IAwGiq6Q15BUcfGyKeFvAh90TYWsV2XOAEALT8GnKV+1OsZe0lKncnhArd2Cen+tdXj+abmhVA==","signatures":[{"sig":"MEYCIQDl5nms1S4Fu5n5SsP+Sdf9bffiSnX1O/KRsqSsGLzSsgIhAIFX4zTYAIc2L5TbQYrU1h5Cd5wFTZSxSJSZ5EMFxddt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3867759},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"5bcd747d7e23b4800dea0958c75c51ab75b9dff2","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/agent-learning.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/usage-stats.test.js test/loop-guard.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.9.0_1784264701506_0.34199516409194675","host":"s3://npm-registry-packages-npm-production"}},"9.9.1":{"name":"lynkr","version":"9.9.1","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.9.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"e202611b7246c1c03a5485860b31b4d43fd48442","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.9.1.tgz","fileCount":230,"integrity":"sha512-pZQzYG9tIJE+NKIfY8zfgjuoeQzDzmkG62nhXPYx0frbrXk6rys3elFn3srPFRWCYQEXy2R+AinjeWDAVLS7Og==","signatures":[{"sig":"MEUCIDoCpZzlFOWM3E5cQihF/STkpN13ugJOhT7XxE7SjAioAiEA9X4rzuTE+CbLU6joylpXijTLbDNDXx6IyuZGcB3nLVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3978087},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"3831e9377b84adc40e91765f4251a609bbbd6a37","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/web-tools.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/code-mode.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/task-decomposition.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/agent-learning.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.9.1_1784503120139_0.3415124329224888","host":"s3://npm-registry-packages-npm-production"}},"9.10.0":{"name":"lynkr","version":"9.10.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.10.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"21346709d4b21b83ebd354a8452fb250539e6668","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.10.0.tgz","fileCount":188,"integrity":"sha512-YgUHpaQbfN9m0mhv1CJbv2FV9cBNRJU9nJPG96CuntutPAmEe1CeHsSlXRinz2y4+FJj5qLVAS1AQrKyL/Vmhw==","signatures":[{"sig":"MEUCIEA2k0WrNyUg5gi6ecsy9lissCoUafYjcLUcCFbXCo8JAiEAjXI9cYSaA2NEwKISAdbQwhZ+i4xCfwK5Qlq+Lglyc08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3643523},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"bb8d498b7fc49a9da03305b4b2bf94c0ab2623fb","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.10.0_1784708343969_0.7884755265740724","host":"s3://npm-registry-packages-npm-production"}},"9.11.0":{"name":"lynkr","version":"9.11.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.11.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js"},"dist":{"shasum":"a1f6af674f13dec2e1a3176796e05a867b69c0c4","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.11.0.tgz","fileCount":195,"integrity":"sha512-YRKnIp3g1xEyhkdv1S10UOHZx19HA2RzCWIPcEK7GYFn2/Gv/LcWzqCy0YikcPbjOr9+rQVmXoHBU0XsMlUMFg==","signatures":[{"sig":"MEUCIQCg5Te0EtkIh1KB7QLhyOB3Hpq8/BfIPtK/N5u97M3XOQIgJjKmEf59BmXRdi6Ysv3Io2+jrFxLoLnX9yVv1ivwfPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3746453},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"cbda7897adf5664e187e22755242fa1988046621","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.11.0_1786322724508_0.2622657270275226","host":"s3://npm-registry-packages-npm-production"}},"9.12.0":{"name":"lynkr","version":"9.12.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.12.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"8745dea42b992e984c0d31e43e33f64a3d3c022f","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.12.0.tgz","fileCount":202,"integrity":"sha512-o+BNqOJWUgj+PuOY4DN+BCJwAAoFXNvSo/BDNZJ5EVzW1TPAznWFeU2L6zgW5TeS/edaGOrF1ktygJNadh1Z1g==","signatures":[{"sig":"MEQCIAaLWMKZfN7WgLmevkMihYa0bEu9sGmpA0t8qCAyG9uRAiAnNALIntA2zSYvWDPavH6dhuJwGmh4zZ1ay9PKLhQVTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3807705},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"0b1cd6e8db76707cb62c3a5d49f7f133cf459192","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"@tencentdb-agent-memory/memory-tencentdb@1.0.1":true},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0","@tencentdb-agent-memory/memory-tencentdb":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.12.0_1786334770685_0.6955482411879548","host":"s3://npm-registry-packages-npm-production"}},"9.13.0":{"name":"lynkr","version":"9.13.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.13.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"0d71627c15af36bf8ba9f5067b5f9b372f15a065","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.13.0.tgz","fileCount":201,"integrity":"sha512-heWMjDa6kBHat+uHbbfnb3dP/mEaCSs/TWCwDZlTL1dbC2cvYMi69SZuxUmT7M/2rIfcHlED3uSQRbZF2DECEQ==","signatures":[{"sig":"MEYCIQCuvLmzKLzY6wm/56Lcgqs9u41+SYUYFJHhLsDb8Tr7tAIhAPHz4fpB+Ug1MwfZVSwIitc1XcvQaHOKowWaTm9q7Roc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3821585},"main":"index.js","engines":{"node":">=20.0.0"},"scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"@tencentdb-agent-memory/memory-tencentdb@1.0.1":true},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0","@tencentdb-agent-memory/memory-tencentdb":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.13.0_1787094828381_0.465914337506264","host":"s3://npm-registry-packages-npm-production"}},"9.14.0":{"name":"lynkr","version":"9.14.0","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.0","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"6983d149084e110d041b65b9d2550af77535b217","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.0.tgz","fileCount":202,"integrity":"sha512-9g80XapGH72CddyK5oBRqBgLfvC+lPMtqBLBv+H2L15un0+HYPqZGvoFbwJAe2uHYSWVIVDXUF1KswBf9WAylg==","signatures":[{"sig":"MEUCIG6uXfGSu7V7J31j3mkclwLm6aiVOkpBFdxhYEF/rKTeAiEA4+5/RYmR9hUtVeyjx1SsfXHBgErE0bQX2zJLQJxtF0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3838659},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"bb4b77751cb7bf82af6e8f474510deeb867580a9","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"@tencentdb-agent-memory/memory-tencentdb@1.0.1":true},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0","@tencentdb-agent-memory/memory-tencentdb":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.0_1787210113419_0.730435811228924","host":"s3://npm-registry-packages-npm-production"}},"9.14.1":{"name":"lynkr","version":"9.14.1","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.1","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"be0db4ede38257a8aa64d6052f09dc07a608eee4","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.1.tgz","fileCount":202,"integrity":"sha512-ggvW8Hbq+CJMPY/CDW3r7xX2wmhhFF3RlBXFzYRDbdMPEmjWjWeFatq+y4I14lyvIefcECiJOzKCBmiFR592GA==","signatures":[{"sig":"MEUCIF0oZ83h+vMTw+LnMGosu7KIn+KboB21emWQlNCbxUsLAiEA1QrFQOaNq+87Vz3yYefXRSlI2CmJjL937qhNV9r82D4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3840661},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"ae3da156b61271ec85a5a14b63494cc7246e6282","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js","test:quick":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"@tencentdb-agent-memory/memory-tencentdb@1.0.1":true},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","openai":"^6.14.0","undici":"^6.22.0","express":"^5.1.0","js-yaml":"^4.1.1","graphify":"^1.0.0","cockatiel":"^3.2.1","fast-glob":"^3.3.2","pino-http":"^8.6.0","pino-roll":"^4.0.0","compression":"^1.7.4","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@azure/openai":"^2.0.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0","@tencentdb-agent-memory/memory-tencentdb":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^4.0.2","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.1_1787351249384_0.17477011316756763","host":"s3://npm-registry-packages-npm-production"}},"9.14.2":{"name":"lynkr","version":"9.14.2","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.2","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"744103d0a19e20fd59da6fcd194ec473ad3165ff","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.2.tgz","fileCount":199,"integrity":"sha512-NcFQz3cSpBfUD9bYlXostR715xdKa7gckn/8XooAKuipA8gNdbnf88fYOBgTjxEhNbK1rbAG9CzEsDDCGzvo2g==","signatures":[{"sig":"MEUCIFxkimEcRRnCYsd9iyaojz9U2FDcV9NtxSV999bgjSvEAiEA/zowoPgBsr3vyz8D/a+wBwsIYtuaOKCsDFj0R20SwhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3840521},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d925e0565c307ed4b7f54af4c3cadb6d1fd87f16","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b786374c-fe82-4722-8d49-f5c0d6d01460"}},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.17.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.19.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.2_1787551452304_0.37488130191472857","host":"s3://npm-registry-packages-npm-production"}},"9.14.3":{"name":"lynkr","version":"9.14.3","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.3","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"1e479bd6bf850fa20450c6e8815c0fddd44e09aa","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.3.tgz","fileCount":230,"integrity":"sha512-jEdllg1pZQJ+Bp+cuIAuBBagoTFZxSZGYTEAMdRZbd81VUBoV/wMYZX9IT580v4/JYQcRr57c2b3hakP0WuW3w==","signatures":[{"sig":"MEUCIA0HHjZ17vNEFXWbg9NGipAHIp0s6Ff/vPOV9/PMnpODAiEAmGXzmht+f/2NtQd8NLsMwfp7LpVss8m4jkGjiEB3PL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4070471},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"608561b0c909d69c61883d7c7f5e10093e771ec5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b786374c-fe82-4722-8d49-f5c0d6d01460"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.3_1788935617102_0.2338157188865515","host":"s3://npm-registry-packages-npm-production"}},"9.14.7":{"name":"lynkr","version":"9.14.7","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.7","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"37844f1aa3401e8e6d56d16dfb32ad66988018f3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.7.tgz","fileCount":230,"integrity":"sha512-+Oo8epaPHlDds4I+u7wkeTCIww92FcIpEhhjJ48k8QvRfwgYRqfYCvaSxvYEZ1ukwJbLeEgylQqq/nInMRAVYA==","signatures":[{"sig":"MEUCIQDMT5TdLGDIdBNscwkPE7nRYTJ3czngmpJKvTOl30yW/QIgAM07Vs6Ycn0pA/YmvWuydQIjrRS8URwaBjz/ZQTNWxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4070471},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"e8b92ddb4d890aac4e2562cd7c9ef2cd39e62e0d","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.7_1788938649351_0.5749280279934426","host":"s3://npm-registry-packages-npm-production"}},"9.14.8":{"name":"lynkr","version":"9.14.8","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.8","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"4d1b30cd3aada5129de8035e7e9a8cd4d32ea95b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.8.tgz","fileCount":230,"integrity":"sha512-nUA7rWPazG77NwM+QU0PyxgwJ0J/nEzj7Co2CM7QrD5y3dlny3LpT/amm32rSGGQzYAIj2KcM+FyDLE9++U76A==","signatures":[{"sig":"MEUCIDqMnBgnaWIqvg7tJBNwoWce4JsJiX6dC5EZIvRyRtzyAiEA3uFnZ4eikPRFEOMxOal/jk2qnozKsuyipiqXDmH5jIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCtBMc8CG3Cso6FEobOMhidMKPBVd7FDLTdfU8TKI+eCwIhAKOHDr1B4w8lASYLwXkCfp7bicrRNR/4uZW926qzBlBc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4070471},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"8e5cd11bd27091cae8f1a20273ba29cf332e7468","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.8_1789364374763_0.43440339464731936","host":"s3://npm-registry-packages-npm-production"}},"9.14.9":{"name":"lynkr","version":"9.14.9","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.9","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"3b1d916e613640b135a6c7e96c230f208e385dfd","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.9.tgz","fileCount":230,"integrity":"sha512-R3dIpt3gQETn0KElMQWotyusQ5T7Dke8k+3OhXI6ny3q69vlTnPtyrKWp7azwO745DXFBmsTX/AcpWt2MjqPzw==","signatures":[{"sig":"MEUCIQDSGSdOd5qHWt+PQVfYdytIahPz14f09aXIKZXOf22KwwIgDMQSeeSORzLDCjbt2Pd3GSk92Bh2m38IhzEH4bxcm7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDzqAvcghVZdlt3OrmV4eFabc6+FxXjaMalfV9w0eoewQIhANElwlUnKFl8lpGwIntBbWTQssZAXqWV+RmDJZ9RBLDO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4070471},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"016a56e0f8f4bb49ae2e3bd0f0486b6ff31d7695","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.9_1789584764982_0.4237313768024433","host":"s3://npm-registry-packages-npm-production"}},"9.14.10":{"name":"lynkr","version":"9.14.10","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.10","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"efbbded8ca06d9f84e544e69c8cd5b291a75c141","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.10.tgz","fileCount":230,"integrity":"sha512-uO3y6d4AUPJrIQ+rsQTySweBXoMDuc9DSJzJSk+y0bdwHWE3IGWKGl6t/0AP9sWCi0NYTrf8eZXs/ViXeEP1iQ==","signatures":[{"sig":"MEUCIGPHTx38HQpsv8vtoa57BACAJrDmx90wZBxyXTNvZc0vAiEAtp+ZLs70lRoTQFl+SgfI2iEOPg6eBm5+eFihVKPRTe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAdo6/nyBZOWXlIV6i2ys1RrYflqIN66PJJhj6taNRTAAiEAs6mKyr8ifH6VFTAoic4MwbcZGoV+REmaw1g7fkBkci8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4070472},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"582c2a84d266f634cf956e6d048621daf4e45fd2","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.10_1789586242844_0.19863066563703735","host":"s3://npm-registry-packages-npm-production"}},"9.14.11":{"name":"lynkr","version":"9.14.11","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.11","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"aef3c7eeacad5bc6f4385686bfd6d5e8124cb9d8","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.11.tgz","fileCount":231,"integrity":"sha512-V15or5ND7zqBn1ZBD5CQvGzLJ/g5dgweWBT6uxPbCWM/Rje/XjehMC1mKhq7v4GSj7ziWzXiqiSjvrS5CuLguw==","signatures":[{"sig":"MEQCIBJqyJLOMSXNwZgTUOOVpVJj2oPkUFd0Jm6+Y+hg12RQAiAZi+8tyziU54GXk69RWA7o/jW5/EwDswfxn1wp2q7APw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBWO/v0d0TTEutI1E7NGU+Kls6lGjpEO5D0pLz5sUfGgIgP1hVcNKDEVLkcu0uC00gGgsBUI2xxyLXAZaP5ZTIwKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4103357},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"7ae9d76a41b0caead30e8797c4d3204d0dc38cbb","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.11_1789586598627_0.5806875219579497","host":"s3://npm-registry-packages-npm-production"}},"9.14.12":{"name":"lynkr","version":"9.14.12","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.12","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"d946c8d675e098d25487b6e90e1c86de199e93aa","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.12.tgz","fileCount":234,"integrity":"sha512-4Hiz5DL3Da4DJU8z33IzUz4SgISusr1EPb5QP0DyDc9z3JTmCsV8G1TYbT4USKDUa8aadn+u16/LyU2zSodyGQ==","signatures":[{"sig":"MEYCIQCCN3by7BjIbO5GD7GUeAYdBAmNltKN9BIYwjajGAMUkAIhAN4Yz55CRszBzdO6bm0dVUODIlkRwFNhos3y8DH0yB9R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+zk3x4QToMsFyUvlHrXvp8ExIdI0v6y8V9v+yEr8Q7AIhAOvOVttU+op3vt3z7zDVHfgBWWvSnc1gqMf7o/TCUxu7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4153697},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"23cc328c1838451b931309593a55fc6379d8ff24","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.0"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.12_1789586846479_0.8401992855277713","host":"s3://npm-registry-packages-npm-production"}},"9.14.13":{"name":"lynkr","version":"9.14.13","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.13","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"07788638a19bf2a10727f45adec6478d9bcfbe66","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.13.tgz","fileCount":237,"integrity":"sha512-717/wjeHsdMQmdhG3CyoFT7jiBiauivOUg7IXrgWOQxe/oZ+PSHdaXG1dtB2wJ2ahvWlCguH0XCqBxtq046QXg==","signatures":[{"sig":"MEUCIGUblq6D18NGsDEbZ2WNN8M0nJnee8PV2NBXTeALrUwtAiEAihaKMBXUVIH3+4Fc18+LvU8OCxBqLWrdUqPZ+76sDro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGgCD/hjwJ+w65zhlyGz7T/aIcgw9nlGUiGg5viJaVDdAiEAnQF6BLzsH6U1sSZ2Ep5QeK8ieUFN/Az9aOx64tZT4HE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4226230},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"3635a07f938bde721dd6f9a917859253ec4ddd55","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.13_1790060459612_0.8705157549134137","host":"s3://npm-registry-packages-npm-production"}},"9.14.14":{"name":"lynkr","version":"9.14.14","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.14","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"706756b1c32b36c739cc56e0b60d112704c9ff10","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.14.tgz","fileCount":237,"integrity":"sha512-PtXdu3zIMscWNvnD3AipC5388hQGWX0yKNZ+vGsfd22REy68KG+IVMmzmQfd1Cvv5KlYbchfuk6oyoIigQY0Dw==","signatures":[{"sig":"MEUCIDQNncISNcwNDTwimLSwlZyRggwcIw3Hx5vS/ynBXhstAiEAoisVkyNLka/rrutMAHDkIdKIFYOyepmWgMVxQLau2Rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDwSfiC+Ps3irz2k4+q8BlhiK1HLXL2XQv662ly4WVgKwIgLzX9eoKflhLF07OeXdRL0IW2Kfil95TysYlDiCNvf+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4226705},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"e16afad16ec4087ca1820d1070c386545cc8fb7f","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.14_1790060887630_0.7469011842934521","host":"s3://npm-registry-packages-npm-production"}},"9.14.15":{"name":"lynkr","version":"9.14.15","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.15","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"01381c203a84b356a85947e1d4e99b92b83ae3ff","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.15.tgz","fileCount":239,"integrity":"sha512-h98x8Xa9UUFlMbrd1fCuV7CM1sUuKxTR05zrogCsnfFa0s74voiDOX8ORsr3HQQoK8YAjPqSjgGtKYrdlyr/tg==","signatures":[{"sig":"MEUCIQCsQusGivlSaP700dUnOKS3iMhlO2//6dcyzNUzKOMXwAIgNXfOcSNEuSc+OpU8/qdEgDs9CTbt5pJryM8URGmBrn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDaUpYTCpnNq0Mt7sexCJu8l9SmIEXe8wuz6y3/suoc1AIgdOYM0tE+GwPIN8RQsMQgm/duwD29DGg3U+6giLfzGfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4273902},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"24f5c602fe6813fe85d66277d18d0b5479bd2af3","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.20.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.15_1790144559085_0.4425739362745895","host":"s3://npm-registry-packages-npm-production"}},"9.14.16":{"name":"lynkr","version":"9.14.16","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.16","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"a8242651309c586d05814797148b3a0cf023964f","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.16.tgz","fileCount":241,"integrity":"sha512-KZzBh9+ECx6srRMxN0e2Xtq3C2eix0MSXR1pnHwr7FKCJktdMxyihwyKmRaARk+BbumdCIV9Yp0dfvf6PM6J9g==","signatures":[{"sig":"MEUCIF+quBO77LZYTMAgDq30j5n0VV2k86tvpKon5kHIAzmzAiEAq0iiAdyzRed+6dLtxUWmV5gyZmbKatj0ohNZ1AVekQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCc7awlW4yiAUtb4z9nuzTMnVp9LbqiH7iE0w9IQA5TQwIgA1lNkmRRVkU/wJA0S/uH2zd2ECwEQGTSZbvY8EEkw1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4328567},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"ebc8f7c884dbb79e8bf859911c8080013e948a3b","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.16_1790660618765_0.1853709112179105","host":"s3://npm-registry-packages-npm-production"}},"9.14.17":{"name":"lynkr","version":"9.14.17","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.17","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"537b156e567a42a0cf88142f641d92bc97bd7ea4","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.17.tgz","fileCount":241,"integrity":"sha512-/A4FrBudU0DQ5RstXyU91lTX0sMyeGYK/ZJZpejSS93Nkm40m04i2fkiHttjsb04ye2SGnLXDe3BkiNzRDG3SQ==","signatures":[{"sig":"MEYCIQCwXtc402tjgIm2vDY0hzb4++QJjSOd1X1RzHrT1ybzvQIhALF5D3Jcc0XlGWL/m7s/8Srm6nJY2d0T3oHqTMwMNI+U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF4XPGbFz+4E86gbQ6I0x2ed/GH2hh/H7jcNGtuFRlJnAiEA3i7Io240mOGP/avFvSPbGosTEVCylXilKR7hPIdChzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4329070},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"1243a4632292e66ba8caa12babdfbab22ae14a98","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.17_1790720724995_0.31249832099035735","host":"s3://npm-registry-packages-npm-production"}},"9.14.18":{"name":"lynkr","version":"9.14.18","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.18","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"14f7f08e85018a04cc78d2bbc4c4bd5b450d0792","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.18.tgz","fileCount":258,"integrity":"sha512-1iDbFPB4CdcPiqyMeYB4mWOTx1C+Ly7nubJBa6kGWVA2hJIB4Dp6QN7lseM+F1I3G7P3ScTsV0N8QuPXNezLDw==","signatures":[{"sig":"MEYCIQCvDw+GZPW2tdssPr1XyiKmAAywRfdIKm8guyf85jkdhQIhANxQCpzOHdF6cXyuiJaY5hm0W7ye4H+2DnHMYE6ZeX0d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC46NHf4TJw+RXhs652ehlqfCvDd/VeW6ubVOkue0dnjAIgIlHOlBj4ZtvIPP6AFFd7xx4tpNS+EmozZ3i0Io7J3TU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4602105},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"7bde6eee49762d596305c13d49823b18f70ea606","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.18_1791933911213_0.21076219251225758","host":"s3://npm-registry-packages-npm-production"}},"9.14.19":{"name":"lynkr","version":"9.14.19","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.19","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"2aeff33542a2233830234aa01caa2df2ddd1c853","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.19.tgz","fileCount":258,"integrity":"sha512-2vCi0oiBFr7Op4MiyWZHCdLpMIBbfl7n3M5FMoS+f3Sr0KFgc5IYjUTmhkgo4J00wCvIkQLbEg+eebWBRuFaHw==","signatures":[{"sig":"MEQCICWn2YUxRAFe0beSLRgeWJHut14ZAQw55kh4Q9cmq4fNAiB+9VKguTmGQkIPqBN6p1+LXcRiPD1I/YEu6HbVub3qUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDPYEa9WMBrTPHEVlv/th50MhDIPAykZWoNQWKXwIN1pAiEA4DPdYt5aALNoYyL3nq2bX0JX4qocE1zCgi10KnPECHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4602105},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"d40d19155a7df371bdf1ed70783758d62c5615d5","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.19_1791935495463_0.25626100380164996","host":"s3://npm-registry-packages-npm-production"}},"9.14.20":{"name":"lynkr","version":"9.14.20","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.20","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"feeec3f16be44466d1c5b4d31649231c74a430d5","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.20.tgz","fileCount":258,"integrity":"sha512-Rl2I4F4oBo+qzv8HOn3paYqdPimXWG+4CjpVQtid8HIonadePaovKXFhU+rng0gw5L+TpmzgzXvBisefvWU2gw==","signatures":[{"sig":"MEUCIDymwx8h6Y5S+ownQYjhWsbxOr+cRWhTfdFVG1xB+DgGAiEA8tpRJm60lv0qoJPK2/4dCd3R3QIilBurlbGtxSqiiss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBCHDE+yo6T5mRFod2L1/canzk80s5X/cF195YdXqshvAiEAmSRGgeFkjF2rI610wTKpKJnbGWmKDsauwX3sSLaE/+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4602464},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"e4d8b28a35abfdba3de9f881021a35d6ad4ce474","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.20_1791935563679_0.9444259381761833","host":"s3://npm-registry-packages-npm-production"}},"9.14.21":{"name":"lynkr","version":"9.14.21","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.21","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"81a8a83b0cbddb27cae4d222bef4a4787be46451","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.21.tgz","fileCount":258,"integrity":"sha512-4F3IEdHudtQ8wVWKvtyVyrSSDJkA7Ig38GdYuA2ILF4DxgEoaPnt/b2fMFrgVOkP6s9leb6zkeT5EtFsS9KhaA==","signatures":[{"sig":"MEUCIEtArFROT/WPB61nQGp6j1xIdcWc6xPTtzA7KviNpQxaAiEArseXsqd9/vnO1pIbybx4iF9iPqucv4zHulkX6wWKdeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBoOusx3ze/8csVirn9nIiMQrcV73srAez3YvRaeM9EOAiEA9Fq993nmYRs4Zhi3mIofYpo/yXpDS1vSSQBmcpzhb2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4613919},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"5a3de13850d91ebee4ab09994f6387c607874c34","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.22.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.21_1792563085264_0.3475368566127668","host":"s3://npm-registry-packages-npm-production"}},"9.14.22":{"name":"lynkr","version":"9.14.22","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.22","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"62d166876a9063777877eaaf1a0fdce5d50c63f3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.22.tgz","fileCount":258,"integrity":"sha512-E8+u3i6jqxQcnnHSxANgKFWiQ1QXT6/h90RzpQpwGE9E1MaX2x57NiIof7BNMaYwA7ksb1bD0MLPYfq9w9DZWA==","signatures":[{"sig":"MEYCIQCRzcvPPvSNtIx/gajMwpbMc27WmPcb4WIX53xGMABUxAIhAIARoTr1FA0gMD3xsxCW+TrgJZGav8vUShTVTNqZ8aoY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDvd/Zo6rxhWsom0g9nFwSYwyjEtig63i/UgQXveAq7XAiBSpFPKGPB5sug1S4DYtZd3zMKhqHIlPapbUZBlUMQ7IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4615322},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"4d3742a4dbd40d440b7151b7224b0b1f8d7f688a","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.22.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.22_1792564082581_0.16801672083582253","host":"s3://npm-registry-packages-npm-production"}},"9.14.23":{"name":"lynkr","version":"9.14.23","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.23","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"fe6432159a250bc413fca52addea5a0c3ca2cdff","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.23.tgz","fileCount":258,"integrity":"sha512-V37dc4tWrbNyFuxjd/+c/PZH8v7+j++ENrNASrk2AmCMhC9HNfl+KPMsVla8JpOC4/dqw8azgpec8lBQJrFflw==","signatures":[{"sig":"MEUCIQDbDaiW3LhczwoWvOtr5RODG5oSFGpdxfsYVMD9ZOJONgIgIKwl42F1MggGtVN+WqO6oBbJDf8dVsb7CrdzLl7zBMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGzEMePCocJ2LuF7h0lUYh3DaxSqORmDuAUdO5vHe9ZvAiBlBtiX0IuNfCXRvECN7UElAp6+CLL3ZM9DrSIoC6e8bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4620684},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"5af364f9327de1c338e3762b3e83df025d2e37f4","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.23_1792886526424_0.14726298916373848","host":"s3://npm-registry-packages-npm-production"}},"9.14.24":{"name":"lynkr","version":"9.14.24","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.24","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"5deb25cd55acf67b48bab9b95242df76d11ca677","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.24.tgz","fileCount":258,"integrity":"sha512-aP5+/7/rgef9+Dcv43rv37SZdx5XBIP5V+LDpkG2gztvumHXgwfH9tlwftVF1XXXEn9o2XbHLprAVNtu/LHfMQ==","signatures":[{"sig":"MEUCIQDtZSsn+fM5Atzyu4HQMbL95OdeFq7bwCs0xp5bAXmNswIge2rh06aV/TTJde8RZ0M1vFFEYPMnMlo4SHn+uKMRzEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICzATEHrOvS++wIXjBLqCkheoe1U8f9z8RdYZP+sqHy+AiEAhr0rT8Gsvpx3k/diaXw15JjUejqKNbCAfXTX5Xkv2es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4630777},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"130071c68e32216c466df050e1c56a1b458c9a4e","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/embeddings-provider-selection.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.24_1793075113132_0.024941920468571577","host":"s3://npm-registry-packages-npm-production"}},"9.14.25":{"name":"lynkr","version":"9.14.25","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.25","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"73c78b21b4027d35274a31397af0a7362a942936","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.25.tgz","fileCount":258,"integrity":"sha512-nYHn3bFA5VL9M1a8IKF3uJ1gdmF98Speu92rZy27/J+iI5gbiDvNbr5w0tgRAHUIgWFk4XGhcSqMFvfOUdgSxw==","signatures":[{"sig":"MEUCIQCRKohI16Hu+YjslOyyGtaZCDPpawL91BvwnoFbnCP75QIgZhWz9KBFgO8IBb0sVLwwpiYDR2m8ElryGsKB9nuJnVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAcyG4oVQ0jGz+sQz+Waod5Nt/ou962SlXGLoj0nB9xNAiEAmh2CnufIS+SyVsfcxs+eN4eLRcG1Sb7QLXkStW65tb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4635629},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"a899f23103c268089109a095586866f589fe4796","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/atmorouter-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.21.0","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.25_1793147106674_0.6049933671271172","host":"s3://npm-registry-packages-npm-production"}},"9.14.26":{"name":"lynkr","version":"9.14.26","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.26","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"db0279f7d7f3c1f28c47cda1c9f84b5895c54b67","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.26.tgz","fileCount":258,"integrity":"sha512-hZAz3IKAPT3ncSU9odtR9mRA2IU3Zrli85friqBijBQ4sz+oAviUC48Z43hOCvR5qI4d9rrNBmGwq33Aao9fqQ==","signatures":[{"sig":"MEUCIQC3diV9AOTSVjwNSTYlEpvI1UTW/J89ho2Q/KuL8R7B4QIgXJSRZCCfm2DPNfXtMFT32QLwkWL4T0EYIIX44nuQC2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDzLlDe/D6guXuadQspy3AyIlzhjcdD0GmVdVsEFHKG0gIgVzvWAZlqp5MLsjG13PJllFhKIu0VfVZ8BGrggUqTjx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4640418},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"dd73bbfc79fbb21f362f4ce27886497b93370cce","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/atmorouter-integration.test.js test/runcrate-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.22.1","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.26_1793672081005_0.6627739325504068","host":"s3://npm-registry-packages-npm-production"}},"9.14.27":{"name":"lynkr","version":"9.14.27","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.27","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"1fd65826a4e4053ffeb4094c6f1bcdc4a037122b","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.27.tgz","fileCount":258,"integrity":"sha512-uNbC9Hm8uNIhBBwiWfSzhgMRhwbJQzeD1kIXnrAE49O/zITnW/+Y7/LRCcLm5yxjWPyjyVfrDcUbLhhhU9c4pQ==","signatures":[{"sig":"MEYCIQCZyiBLtnEm001FxPiucZ1xEsqeCKvmelB4CBFkMFwWrAIhAOm9Icl+vVAnfP+YX1mR54aPpmBE888HrfIO68ws+liG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHXYfyYcVSbdC9N12wjGdTUe1eh+qIYyYQFSPNQLjk+zAiEAi/gxFEzaumIkRu+g8m8NqL3KFk/jIpiBzIkE0DX4E3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4644890},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"c5ff6fe38dbe311799612718f91c17fcce787c90","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/atmorouter-integration.test.js test/runcrate-integration.test.js test/openscale-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.22.2","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.27_1793920477247_0.5178442585949753","host":"s3://npm-registry-packages-npm-production"}},"9.14.28":{"name":"lynkr","version":"9.14.28","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","_id":"lynkr@9.14.28","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"homepage":"https://fast-editor.github.io/Lynkr/","bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"dist":{"shasum":"abb878afcb96c1d1769220059fa530658f3278c3","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.28.tgz","fileCount":258,"integrity":"sha512-+PVCcvEEbAmlWFQWhpQ4irGAIKHYSIYIyXKPR7qPmZCF3aSc4yFkka4f5O1HHDk6SXNb80a7imo/Enx30YBHsQ==","signatures":[{"sig":"MEQCIBVKr0/dmyh9YCGLu6qE1F10eg+q32GZTOHobc0nSUX7AiBzeQ1KxOYWBophtp/eNVLk1B3/WGs2nduGHq6biWL8pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3RC3ugLmvZtQ2N47iGoThb8rCFmda8zKfZnfJWxSRWgIhAKJsNnjDgdOftn+sdFW0roYmk7UNBlW+dEZXoJCKKvvM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4645559},"main":"index.js","engines":{"node":">=20.0.0"},"gitHead":"c45dd685cb4dd5ead07e00e2fbd0bb024fb6a040","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/atmorouter-integration.test.js test/runcrate-integration.test.js test/openscale-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/tool-strict-preservation.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"_nodeVersion":"24.22.2","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/lynkr_9.14.28_1794724798285_0.14408817301057775","host":"s3://npm-registry-packages-npm-production"}},"9.14.29":{"_id":"lynkr@9.14.29","bin":{"lynkr":"bin/cli.js","lynkr-setup":"scripts/setup.js","lynkr-statusline":"bin/statusline.js"},"bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"dist":{"shasum":"467f6baff9d401bfe59b4bcc01c567291913a9a6","tarball":"https://registry.npmjs.org/lynkr/-/lynkr-9.14.29.tgz","fileCount":258,"integrity":"sha512-nsbP2Spy02/rPlaovxx8kdG5FSsw7J8gYFLhvE6VsJIFY3WUlTsoZ+eO976VrgF2bbPZ9ItNVJKH0e/E2lAPGA==","signatures":[{"sig":"MEQCIG/Zpte6Ch9b8XOX48vSXahA4iOobMxbfbZqmak4H1CxAiAIWswxGWtlVpMXxI21B6cQ7fIZTBIE3qu5hO/YDDwf4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHlpfOutyKHFLJiCh7+doKRTtmkOQXGTBiDDuy/5jX2QAiAlGLDW2rIxAABmTuM+eeE0pALxWqYEvKv46iOFtbphlw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lynkr@9.14.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4650522},"main":"index.js","name":"lynkr","author":{"name":"Vishal Veera Reddy"},"engines":{"node":">=20.0.0"},"gitHead":"328074a842e0df2df58d5a549f3993302df49f97","license":"Apache-2.0","scripts":{"dev":"nodemon index.js","lint":"eslint src index.js","stop":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom down || echo 'Headroom skipped (disabled or Docker not running)'","test":"npm run test:unit && npm run test:performance","start":"node index.js 2>&1 | npx pino-pretty --sync","prestart":"node -e \"if(process.env.HEADROOM_ENABLED==='true'&&process.env.HEADROOM_DOCKER_ENABLED!=='false'){process.exit(0)}else{process.exit(1)}\" && docker compose --profile headroom up -d --build headroom 2>/dev/null || echo 'Headroom skipped (disabled or Docker not running)'","test:all":"npm run test:unit && npm run test:performance && npm run test:benchmark","test:unit":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com LOG_FILE_ENABLED=false node --test test/routing.test.js test/hybrid-routing-integration.test.js test/retry-logic.test.js test/sse-transformer.test.js test/passthrough-stream.test.js test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js test/azure-openai-config.test.js test/azure-openai-format-conversion.test.js test/azure-openai-routing.test.js test/azure-openai-streaming.test.js test/azure-openai-error-resilience.test.js test/azure-openai-integration.test.js test/openai-integration.test.js test/atlas-integration.test.js test/cheaperinference-integration.test.js test/atmorouter-integration.test.js test/runcrate-integration.test.js test/openscale-integration.test.js test/standardcompute-integration.test.js test/toon-compression.test.js test/gcf-compression.test.js test/llamacpp-integration.test.js test/resilience.test.js test/telemetry-routing.test.js test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js test/distill.test.js test/large-payload.test.js test/prompt-cache-injection.test.js test/risk-analyzer.test.js test/interaction-block.test.js test/preflight.test.js test/token-reduction.test.js test/session-affinity.test.js test/cache-state.test.js test/cache-switch-cost.test.js test/lens-recommendations.test.js test/model-registry-cost.test.js test/output-format-guard.test.js test/tier-fallback.test.js test/wrap.test.js test/init.test.js test/tool-call-response-metadata.test.js test/degradation.test.js test/routing-telemetry-columns.test.js test/sticky-routing.test.js test/knn-ambiguous-escalate.test.js test/deescalator.test.js test/client-profiles.test.js test/openai-ingress-tool-injection.test.js test/tool-result-compression-gate.test.js test/strip-internal-fields.test.js test/complexity-tool-subtraction.test.js test/bandit.test.js test/routing-propensity.test.js test/reward-pipeline.test.js test/knn-cold-start.test.js test/calibration.test.js test/feedback-loop.test.js test/session-fingerprint.test.js test/side-request-guards.test.js test/verifier.test.js test/intent-score.test.js test/difficulty-classifier.test.js test/classifier-setup.test.js test/usage-stats.test.js test/loop-guard.test.js test/moonshot-model-mapping.test.js test/baidu-model-mapping.test.js test/tenant-policy-ingress-parity.test.js test/decide.test.js test/embeddings-degradation.test.js test/health-probe.test.js test/stuck-detector.test.js test/onnx-embedder.test.js test/ope.test.js test/hierarchical-budget.test.js test/token-rate-limit.test.js test/otel-export.test.js test/mcp-broker.test.js test/compression-budget.test.js test/gpt-utils.test.js test/dedup-observe-only.test.js test/context-window-header.test.js test/token-budget-auto.test.js test/opencode-setup.test.js test/auth-mode-first-party.test.js test/harness-envelope.test.js test/task-ledger.test.js test/jev-router.test.js test/jev-routing.test.js test/force-patterns.test.js test/upstream-fidelity.test.js test/tool-schema-compression.test.js test/passthrough-route.test.js test/quota-ledger.test.js test/shortfall-semantic.test.js test/routing-decisions.test.js test/routing-corpus.test.js test/switch-gate-grounding.test.js","test:quick":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/routing.test.js","postinstall":"node scripts/check-native.js","test:memory":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/memory/store.test.js test/memory/surprise.test.js test/memory/extractor.test.js test/memory/search.test.js test/memory/retriever.test.js test/memory/distiller.test.js test/memory/distiller-freeze.test.js test/memory/wiki.test.js test/memory/skills-cache.test.js test/memory/tencentdb-launcher.test.js","rebuild-native":"node scripts/check-native.js","test:benchmark":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-benchmark.js","start:supervised":"while true; do node index.js 2>&1 | npx pino-pretty --sync; code=$?; echo \"[supervisor] lynkr exited ($code) — restarting in 3s\"; sleep 3; done","test:performance":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/hybrid-routing-performance.test.js && DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node test/performance-tests.js","seed:capabilities":"node scripts/seed-capabilities.js --refresh","test:new-features":"LYNKR_KNN_DIR=/tmp/lynkr-test-knn DATABRICKS_API_KEY=test-key DATABRICKS_API_BASE=http://test.com node --test test/passthrough-mode.test.js test/openrouter-error-resilience.test.js test/format-conversion.test.js"},"version":"9.14.29","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8dce88dd-41bc-4602-9af1-8099271ba1d4"}},"homepage":"https://fast-editor.github.io/Lynkr/","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"overrides":{"sharp":"^0.35.4","adm-zip":"^0.6.1"},"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","directories":{},"maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"_nodeVersion":"24.22.2","allowScripts":{},"dependencies":{"diff":"^5.2.0","pino":"^8.17.2","dotenv":"^16.4.5","express":"^5.1.0","cockatiel":"^3.2.1","pino-http":"^8.6.0","pino-roll":"^4.0.0","js-tiktoken":"^1.0.20","hnswlib-node":"^3.0.0","@toon-format/toon":"^2.1.0","express-rate-limit":"^8.2.1","@blackwell-systems/gcf":"2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","nodemon":"^3.1.0","pino-pretty":"^10.2.0","@napi-rs/cli":"^3.6.2"},"optionalDependencies":{"dockerode":"^5.0.1","tree-sitter":"^0.21.1","better-sqlite3":"^12.11.1","tree-sitter-python":"^0.21.0","tree-sitter-javascript":"^0.21.0","tree-sitter-typescript":"^0.21.0","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lynkr_9.14.29_1794724942939_0.7972055431686881"}}},"time":{"created":"2025-12-04T01:56:38.447Z","modified":"2026-11-15T06:42:23.354Z","0.1.0":"2025-12-04T01:56:38.668Z","0.1.1":"2025-12-05T01:21:13.316Z","0.1.2":"2025-12-07T22:53:06.819Z","0.1.3":"2025-12-07T22:54:37.758Z","0.1.4":"2025-12-08T09:03:38.218Z","1.0.0":"2025-12-11T00:07:53.238Z","1.0.1":"2025-12-11T05:36:53.594Z","2.0.0":"2025-12-19T07:59:13.823Z","3.0.0":"2025-12-30T00:42:43.968Z","3.1.0":"2025-12-30T07:51:10.464Z","3.2.0":"2026-01-03T01:01:31.140Z","3.2.1":"2026-01-03T02:57:23.454Z","3.3.1":"2026-01-07T18:13:32.850Z","4.0.0":"2026-01-12T01:08:10.740Z","4.1.0":"2026-01-13T08:16:54.902Z","4.2.0":"2026-01-17T08:32:16.904Z","4.2.1":"2026-01-18T04:45:11.740Z","4.3.1":"2026-01-21T08:15:31.622Z","5.0.1":"2026-01-26T03:07:55.096Z","6.0.1":"2026-01-31T05:50:53.264Z","7.0.1":"2026-02-05T13:52:24.709Z","7.1.1":"2026-02-10T10:19:45.268Z","7.2.0":"2026-02-10T14:50:57.314Z","7.2.1":"2026-02-10T15:31:11.917Z","7.2.2":"2026-02-10T18:16:37.954Z","7.2.3":"2026-02-10T18:46:23.973Z","7.2.4":"2026-02-11T10:01:31.986Z","7.2.5":"2026-02-11T10:18:14.276Z","8.0.0":"2026-02-22T16:05:51.141Z","8.0.1":"2026-03-21T19:48:21.256Z","9.0.1":"2026-04-16T00:17:45.069Z","9.0.2":"2026-04-29T22:25:02.021Z","9.1.2":"2026-05-20T23:24:13.173Z","9.1.3":"2026-05-29T23:00:10.366Z","9.1.4":"2026-05-29T23:40:04.754Z","9.1.5":"2026-05-30T00:04:45.513Z","9.1.6":"2026-05-30T00:28:20.478Z","9.1.7":"2026-05-30T00:32:06.707Z","9.1.8":"2026-05-30T00:38:41.015Z","9.1.9":"2026-05-30T00:55:32.886Z","9.2.0":"2026-05-30T01:00:03.694Z","9.2.1":"2026-05-30T01:02:04.044Z","9.2.2":"2026-05-30T01:03:01.625Z","9.2.3":"2026-05-30T01:28:29.573Z","9.3.0":"2026-05-30T01:33:20.863Z","9.3.1":"2026-05-30T01:42:55.476Z","9.3.2":"2026-05-30T01:43:52.355Z","9.3.3":"2026-05-30T01:58:31.286Z","9.4.0":"2026-06-07T20:43:08.236Z","9.4.1":"2026-06-08T07:05:15.006Z","9.4.2":"2026-06-08T07:08:59.892Z","9.4.3":"2026-06-08T07:14:21.637Z","9.4.4":"2026-06-08T07:18:50.383Z","9.4.5":"2026-06-08T07:25:05.689Z","9.4.6":"2026-06-08T07:32:57.842Z","9.5.0":"2026-06-11T18:06:51.259Z","9.6.0":"2026-06-23T08:48:50.321Z","9.7.0":"2026-06-30T18:33:29.753Z","9.7.1":"2026-06-30T19:46:07.216Z","9.7.2":"2026-06-30T19:54:25.637Z","9.7.3":"2026-07-02T01:44:14.271Z","9.8.0":"2026-07-11T23:56:12.708Z","9.9.0":"2026-07-17T05:05:01.788Z","9.9.1":"2026-07-19T23:18:40.421Z","9.10.0":"2026-07-22T08:19:04.162Z","9.11.0":"2026-08-10T00:45:24.680Z","9.12.0":"2026-08-10T04:06:10.866Z","9.13.0":"2026-08-18T23:13:48.562Z","9.14.0":"2026-08-20T07:15:13.626Z","9.14.1":"2026-08-21T22:27:29.647Z","9.14.2":"2026-08-24T06:04:12.491Z","9.14.3":"2026-09-09T06:33:37.246Z","9.14.7":"2026-09-09T07:24:09.527Z","9.14.8":"2026-09-14T05:39:34.890Z","9.14.9":"2026-09-16T18:52:45.170Z","9.14.10":"2026-09-16T19:17:23.006Z","9.14.11":"2026-09-16T19:23:18.764Z","9.14.12":"2026-09-16T19:27:26.635Z","9.14.13":"2026-09-22T07:00:59.710Z","9.14.14":"2026-09-22T07:08:07.733Z","9.14.15":"2026-09-23T06:22:39.212Z","9.14.16":"2026-09-29T05:43:38.929Z","9.14.17":"2026-09-29T22:25:25.135Z","9.14.18":"2026-10-13T23:25:11.399Z","9.14.19":"2026-10-13T23:51:35.606Z","9.14.20":"2026-10-13T23:52:43.803Z","9.14.21":"2026-10-21T06:11:25.376Z","9.14.22":"2026-10-21T06:28:02.815Z","9.14.23":"2026-10-25T00:02:06.549Z","9.14.24":"2026-10-27T04:25:13.251Z","9.14.25":"2026-10-28T00:25:06.808Z","9.14.26":"2026-11-03T02:14:41.203Z","9.14.27":"2026-11-05T23:14:37.380Z","9.14.28":"2026-11-15T06:39:58.401Z","9.14.29":"2026-11-15T06:42:23.046Z"},"bugs":{"url":"https://github.com/Fast-Editor/Lynkr/issues"},"author":{"name":"Vishal Veera Reddy"},"license":"Apache-2.0","homepage":"https://fast-editor.github.io/Lynkr/","keywords":["llm","llm-gateway","llm-proxy","llm-router","ai-gateway","tier-routing","claude","claude-code","anthropic","cursor","codex","openai","openrouter","ollama","llamacpp","lm-studio","bedrock","aws-bedrock","azure-openai","databricks","gemini","mcp","model-context-protocol","prompt-cache","self-hosted","litellm-alternative","portkey-alternative","copilot-alternative"],"repository":{"url":"git+https://github.com/Fast-Editor/Lynkr.git","type":"git"},"description":"Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.","maintainers":[{"name":"veerareddyvishal56","email":"veerareddyvishal56@gmail.com"}],"readme":"# Lynkr\n\n### An LLM Gateway which optimises your token usage.\n\n**84% fewer tokens on JSON tool results. 53% fewer tokens on tool-heavy requests. Sub-300ms semantic cache hits. Zero code changes.**\n\n[![npm version](https://img.shields.io/npm/v/lynkr.svg)](https://www.npmjs.com/package/lynkr)\n[![Tests](https://img.shields.io/badge/tests-1249%20passing-brightgreen)](https://github.com/Fast-Editor/Lynkr)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Node.js](https://img.shields.io/badge/node-20%2B-green)](https://nodejs.org)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Fast-Editor/Lynkr)\n\n<table>\n<tr>\n<td align=\"center\"><strong>84%</strong><br/>JSON Compression</td>\n<td align=\"center\"><strong>53%</strong><br/>Tool Token Reduction</td>\n<td align=\"center\"><strong>&lt;300ms</strong><br/>Semantic Cache Hits</td>\n<td align=\"center\"><strong>14+</strong><br/>LLM Providers</td>\n<td align=\"center\"><strong>0</strong><br/>Code Changes Required</td>\n</tr>\n</table>\n\n> Numbers from the bundled benchmark against LiteLLM on identical free local backends — run it yourself: `node benchmark-tier-routing.js`. It doubles as a 19-scenario routing regression harness (currently 12/12 correctness checks), and `MODE=routing` runs a routing-only head-to-head that judges **both** proxies on the same acceptable-tier sets — including LiteLLM's Auto Router v2. [How it works →](docs/benchmarking.md)\n\n> **Agentic benchmark (Terminal-Bench core, 80 tasks, Oct 2026):** Lynkr **42/80 for $1.54** vs openrouter/auto **44/80 for $4.72** on the same VM and evening — tied on accuracy within single-run noise (Lynkr's three runs: 39, 39, 42) at ~30% of the cost; vLLM Semantic Router on the same models/hosts: 25/80 (34 agent timeouts from unbounded upstream stalls and per-turn CPU classification). [Full comparison, fairness notes and what it changed in Lynkr →](docs/terminal-bench-router-comparison.md)\n\n> **Third-party benchmark:** on [RouterArena](https://github.com/RouteWorks/RouterArena) (ICLR 2026, 8,400 queries) Lynkr's routing scores **67.65 arena / 68.41% accuracy at $0.29 per 1K queries with 92.38 robustness** — above GPT-5's built-in router and NotDiamond at a fraction of their cost. [Methodology & caveats →](docs/routerarena-benchmark.md)\n\n---\n\n## 🚀 New: Wrap Mode for AI Coding Tools\n\n**Use Lynkr's routing with your AI coding assistant — maximize your subscription value:**\n\n```bash\nnpm install -g lynkr\n\n\n# Claude Code Pro/Max\nlynkr wrap claude\n\n\n```\n\n**Wrapping gives you:**\n- ✅ Tier routing (send simple tasks to free Ollama, complex to your subscription/API)\n- ✅ Sticky sessions: one routing decision per conversation via content fingerprinting, with automatic escalation when the task outgrows the model\n- ✅ TOON/RTK compression (84% token reduction on large JSON tool outputs)\n- ✅ Semantic caching (sub-300ms cache hits, 0 tokens billed)\n- ✅ **Your subscription is used only where it counts** — simple requests route to your own local/API models, so subscription capacity goes to the work that needs it\n- ✅ Works with OAuth (Claude, Copilot, Cursor) or API keys (Aider, Codex)\n\n[Full wrap guide →](docs/wrap-guide.md)\n\n---\n\n## Quick Start (2 Minutes)\n\n### 1. Install Lynkr\n\n```bash\nnpm install -g lynkr\n```\n\n### 2. Configure Lynkr\n\nThe fastest path is the interactive wizard:\n\n```bash\nlynkr init\n```\n\nIt asks four questions — usage mode (Claude Pro/Max via wrap, or direct API keys), tier picks for SIMPLE/MEDIUM/COMPLEX/REASONING across the 14 supported providers, credentials for what you chose, and a few routing-intelligence knobs — then writes a fully-populated `.env` with sensible production defaults for everything else (caching, compression, policy budgets, MCP sandbox, rate limiting).\n\nUseful flags:\n\n```bash\nlynkr init --force                # overwrite an existing .env\n```\n\nSee [`docs/init.md`](docs/init.md) for the full wizard reference.\n\nIf you'd rather configure by hand, the manual options below still work — copy `.env.example` to `.env` and edit it directly:\n\n**Option A: Free & Local (Ollama) - Recommended for Testing**\n\n```bash\n# Install Ollama first: https://ollama.com\nollama pull qwen2.5-coder:latest\n```\n\n\nThen start Lynkr:\n\n```bash\nlynkr start\n```\n\n### 3. Connect Your Tool\n\n\n**Cursor IDE**\n- Settings → Models → Override Base URL\n- Set to: `http://localhost:8081/v1`\n- API Key: `any-value`\n\n**Codex CLI**\n\nEdit `~/.codex/config.toml`:\n```toml\nmodel_provider = \"lynkr\"\n\n[model_providers.lynkr]\nbase_url = \"http://localhost:8081/v1\"\nwire_api = \"responses\"\n```\n\n✅ **Done!** Your AI tool now uses your chosen provider.\n\n---\n\n## Common Startup Errors\n\n### Error: `unable to determine transport target for \"pino-pretty\"`\n\n**Problem:** You're running an older version (< 9.3.0).\n\n**Solution:** Update to the latest version:\n```bash\nnpm install -g lynkr@latest\n```\n\nIf you must use an older version, set `NODE_ENV=production` before starting.\n\n### Warning: `Missing tier configuration: TIER_SIMPLE, TIER_MEDIUM...`\n\n**This is just a warning - you can ignore it.** Tier routing is optional.\n\nTo remove the warning, add to `.env`:\n```bash\nTIER_SIMPLE=ollama:qwen2.5-coder:latest\nTIER_MEDIUM=ollama:qwen2.5-coder:latest\nTIER_COMPLEX=ollama:qwen2.5-coder:latest\nTIER_REASONING=ollama:qwen2.5-coder:latest\n```\n\n### Warning: `FALLBACK_PROVIDER='databricks' is enabled but missing credentials`\n\n**Solution:** Add to `.env`:\n```bash\nFALLBACK_ENABLED=false\n```\n\n### Error: `connect ECONNREFUSED ::1:11434` (Ollama)\n\n**Problem:** Ollama is not running.\n\n**Solution:**\n```bash\nollama serve\n```\n\nKeep this terminal open, and start Lynkr in a new terminal.\n\n### Error: `Connection refused` or `404 Not Found`\n\n**Problem:** Lynkr is not running or wrong port.\n\n**Solution:** Check Lynkr is running on the correct port:\n```bash\ncurl http://localhost:8081/\n```\n\nShould return: `{\"service\":\"Lynkr\",\"version\":\"9.x.x\",\"status\":\"running\"}`\n\n---\n\n## Why Lynkr?\n\nAI coding tools lock you into one provider and send every token raw. Lynkr breaks both locks.\n\n```\nClaude Code / Cursor / Codex / Cline / Continue\n                    ↓\n                  Lynkr\n          ┌─────────────────────┐\n          │  Strip unused tools  │  ← 53% fewer tokens on tool calls\n          │  Compress JSON blobs │  ← 84% on large tool results\n          │  Semantic cache      │  ← <300ms hits, 0 tokens billed\n          │  Route by complexity │  ← cheap model for simple, cloud for hard\n          │  Learn from outcomes │  ← kNN + bandit + auto-calibration\n          └─────────────────────┘\n                    ↓\n    Ollama | Bedrock | Azure | Moonshot | OpenRouter | OpenAI\n```\n\n**What you get:**\n- ✅ **53% fewer tokens** on tool-heavy requests (Claude Code, Cursor sessions)\n- ✅ **84% compression** on large JSON tool results (grep, file reads, test output)\n- ✅ **Semantic cache** serves repeated queries in under 300ms with 0 tokens billed\n- ✅ **Automatic tier routing** — simple questions go to cheap models, complex ones escalate; sessions stick to one model until the task genuinely outgrows it\n- ✅ **A closed learning loop** — every outcome trains a kNN router and bandit, and tier thresholds re-calibrate nightly from your own traffic\n- ✅ Route through **your company's infrastructure** (Databricks, Azure, Bedrock)\n- ✅ **Zero code changes** — just change one environment variable\n\n---\n\n## Supported Providers\n\n| Provider | Type | Example Models | Cost |\n|----------|------|---------------|------|\n| **Ollama** | Local | qwen2.5-coder, deepseek-coder, llama3 | **Free** |\n| **llama.cpp** | Local | Any GGUF model | **Free** |\n| **LM Studio** | Local | Local models with GUI | **Free** |\n| **OpenRouter** | Cloud | GPT-4o, Claude 3.5, Llama 3, Gemini | $ |\n| **OrcaRouter** | Cloud | Chat, reasoning, image, video (one endpoint, live catalog) | $ (zero-markup) |\n| **AWS Bedrock** | Cloud | Claude, Llama, Mistral, Titan | $$ |\n| **Databricks** | Cloud | Claude Sonnet 4.5, Opus 4.6 | $$$ |\n| **Azure OpenAI** | Cloud | GPT-4o, o1, o3 | $$$ |\n| **Azure Anthropic** | Cloud | Claude Sonnet, Opus | $$$ |\n| **OpenAI** | Cloud | GPT-4o, o3-mini | $$$ |\n| **Atlas Cloud** | Cloud | Qwen, DeepSeek, and other OpenAI-compatible models | $-$$$ |\n| **Cheaper Inference** | Cloud | GPT, Claude, Gemini, DeepSeek, and other OpenAI-compatible models | $-$$$ |\n| **AtmoRouter** | Cloud | Claude, GPT, Gemini, GLM, Kimi, Qwen, DeepSeek, and other OpenAI-compatible models | $-$$ |\n| **Runcrate** | Cloud | DeepSeek, GLM, Kimi, Qwen, gpt-oss, and other open-weight models | $-$$ |\n| **OpenScale** | Cloud | DeepSeek V4.1 Flash, GLM 5.3 Flash | $ |\n| **Standard Compute** | Cloud | Routed `StandardCompute` model plus pinned Claude, GPT, Gemini, DeepSeek, GLM, Kimi, Qwen and other models | $-$$$ |\n| **DeepSeek** | Cloud | DeepSeek R1, Reasoner | $ |\n| **Z.ai** | Cloud | GLM-4.7, GLM-4.5-Air | $ |\n| **Moonshot AI** | Cloud | Kimi K2.6, Kimi K3 | $ |\n| **Baidu Qianfan** | Cloud | ERNIE 4.5 Turbo, ERNIE X1.1 | $ (unverified — not yet probed against a live key) |\n| **Fireworks AI** | Cloud | Kimi K2, GLM-5, DeepSeek V3 (serverless) | $ (unverified — not yet probed against a live key) |\n\n**4 local providers** for 100% offline, free usage. **14+ cloud providers** for scale.\n\n<div align=\"center\">\n  <a href=\"https://www.atlascloud.ai/?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=lynkr\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://www.atlascloud.ai/logo-white.svg\">\n      <img src=\"https://www.atlascloud.ai/logo.svg\" alt=\"Atlas Cloud\" width=\"196\">\n    </picture>\n  </a>\n  <br>\n  <sub>Use Lynkr with Atlas Cloud's OpenAI-compatible API and route across its live model catalog with one optional provider configuration. <a href=\"https://www.atlascloud.ai/?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=lynkr\">Explore Atlas Cloud</a>.</sub>\n</div>\n\n---\n\n## Advanced: Tier Routing (Save Even More)\n\nRoute different request types to different models automatically:\n\n```bash\n# .env file\nMODEL_PROVIDER=ollama\nFALLBACK_ENABLED=false\n\n# Use small/fast models for simple tasks\nTIER_SIMPLE=ollama:qwen2.5:3b\n\n# Use medium models for normal coding\nTIER_MEDIUM=ollama:qwen2.5:7b\n\n# Use powerful models for complex architecture\nTIER_COMPLEX=ollama:deepseek-r1:14b\nTIER_REASONING=ollama:deepseek-r1:14b\n\n# Optional: Limits (remove for unlimited) for long conversations\nPOLICY_MAX_STEPS=50\nPOLICY_MAX_TOOL_CALLS=100\n```\n\nLynkr analyzes each request and routes it to the appropriate tier. Simple questions use fast models. Complex refactoring uses powerful models. The scorer combines anchor-embedding classification (WS7, payload-invariant) with the Jev routing judge (an optional typed second opinion over the four tiers, enabled by `TYPESAFE_API_KEY`; it replaced the earlier local qwen2.5:3b classifier, so no local Ollama is required) that catches topic-vs-difficulty confounding — `list the exports from this file` correctly routes to MEDIUM instead of getting boosted to REASONING by \"technical vocabulary\" alone.\n\n**Result:** 70-90% of requests use cheaper/faster models. Only hard problems hit expensive models. **15× reduction in expensive-tier over-routing** vs the anchor-only baseline on the 381-prompt eval set (0.6% vs ~15%).\n\nTier configuration is strictly authoritative — bandit exploration is constrained to the models you've listed in `TIER_*`, and multi-turn conversations score with a recency-weighted sliding window so context isn't lost on short follow-ups. Conversations get a content-fingerprint session id (clients like Claude Code send none), the decision pins for the session, and a guarded escape ladder (risk keywords, force phrases, score drift, context overflow) re-escalates the moment a task outgrows its model. Full pipeline: [`docs/routing-intelligence.md`](docs/routing-intelligence.md) · intent scorer: [`docs/intent-window-routing.md`](docs/intent-window-routing.md) · verify any change: [`docs/benchmarking.md`](docs/benchmarking.md).\n\n---\n\n\n## Common Issues & Fixes\n\n| Issue | Solution |\n|-------|----------|\n| **\"Service temporarily overloaded\"** | Ollama model too large for RAM. Use smaller model or increase `--max-old-space-size` |\n| **\"Route not found: HEAD /\"** | Ignore - harmless health check from Claude Code |\n| **\"Hallucinated tool calls\"** | Normal - Lynkr automatically filters invalid tools |\n| **\"Safe Command DSL blocked\"** | Add `POLICY_SAFE_COMMANDS_ENABLED=false` to `.env` |\n| **\"spawn graphify ENOENT\"** | Optional feature. Set `CODE_GRAPH_ENABLED=false` in `.env` (see Advanced Features section for installation) |\n| **Slow first request (20+ sec)** | Ollama loading model into memory. Add `OLLAMA_KEEP_ALIVE=30m` in Ollama config |\n| **No response after N turns** | Remove `POLICY_MAX_STEPS` and `POLICY_MAX_TOOL_CALLS` from `.env` (unlimited by default in v9.3.0+) |\n\n---\n\n## Advanced Features\n\n### Real-time SSE streaming (all tiers)\n\nResponses stream token-by-token instead of arriving all at once — including\nthrough the tier router. Two mechanisms, both on by default:\n\n- **Native passthrough**: when the upstream already speaks Anthropic SSE\n  (Anthropic endpoints, Z.AI, Ollama v0.14+), Lynkr pipes the bytes straight\n  through with backpressure. Kill switch: `LYNKR_NATIVE_PASSTHROUGH=false`.\n- **Cross-format transform**: OpenAI-format upstreams (OpenAI, Azure OpenAI,\n  OpenRouter, Databricks, llama.cpp, LM Studio) are reshaped into Anthropic\n  events in flight — including reassembling tool-call argument fragments into\n  clean `tool_use` blocks. Kill switch: `LYNKR_STREAM_TRANSFORM=false`.\n\nThe `LYNKR_VISIBLE_ROUTING` badge streams too (injected as the first content\nblock), and telemetry is recorded on stream close with real token counts.\nFallback safety: if an upstream fails before the first byte, the request\nfalls back to the buffered path automatically.\n\n```bash\n# Ollama thinking models (MiniMax): streaming skips the <think>-leak repair.\n# If you see raw <think> text in responses, buffer that provider instead:\nLYNKR_OLLAMA_BUFFER_RESPONSES=true   # default true; false = stream Ollama\n```\n\n### Token Optimization (60-80% savings)\n```bash\n# Enable all optimizations\nPROMPT_CACHE_ENABLED=true\nSEMANTIC_CACHE_ENABLED=true\n```\n\nAlways-on (no config): **RTK tool-result compression**\n(test/git/grep/lint/build/JSON output), **MCP tool dedup** (drops\nbuilt-in WebSearch/WebFetch when an Exa/Tavily MCP tool is present), and\n**request bypass** (Claude CLI Warmup / title-extraction calls are answered\nlocally, never hitting a provider).\n\nOptional **terse-output mode** to cut *output* tokens:\n```bash\nCAVEMAN_ENABLED=true        # off by default — nudges the model to be concise\nCAVEMAN_LEVEL=lite          # lite | full | ultra\n```\n\n### Built-in dashboard\n\nOpen `http://localhost:8081/dashboard` while Lynkr is running. No setup, reads\nthe local telemetry store:\n\n- **Spend & savings** — actual cost vs what the same traffic would have cost\n  on the flagship model (the counterfactual no pass-through gateway can show,\n  since they neither pick your model nor see local-model traffic)\n- **Tier mix** — daily request breakdown across SIMPLE/MEDIUM/COMPLEX/REASONING\n- **Routing accuracy** — over-/under-provisioned request counts, a self-audit\n  of the tier router's decisions\n- **Request logs** — filterable by provider, tier, and errors, with latency,\n  tokens, and cost per request; every session id links to a drill-down\n- **Provider health** — configured providers, credential warnings, circuit\n  breaker states\n- **Insights** — analyzer findings ranked by *past overspend* (auditable\n  against spend already recorded, never projected savings): dead tool\n  schemas paying rent, harness side-traffic served on expensive tiers,\n  weak prompt-cache hit ratios, and Wilson-bounded tier-downsize verdicts.\n  Each finding ships its evidence rows, the fix, the caveat, and how the\n  figure was computed. \"Not measured yet\" is rendered distinctly from\n  zero — an un-run scan is not an all-clear.\n- **Explore** — a Metric × Dimension (× Stack) pivot over routing telemetry\n  (spend/tokens/requests/sessions by provider, model, tier, request type,\n  day…) with preset views, period-over-period deltas, and CSV export\n- **Session drill-down** — per-model cost mix and an input-context-per-call\n  chart where distillation and cache behavior are directly visible\n- **Cache receipts** — projected switch/hold economics from cache-aware\n  routing next to the *measured* companion (dollars saved by cache reads\n  actually served)\n\nJSON APIs behind it\n(`/dashboard/api/overview|usage|routing|logs|recommendations|analytics|sessions/:id|statusline`)\nif you want the raw numbers.\n\n### Status line for Claude Code\n\nOne line after every turn — routed tier, served model, today's spend, and\ncache re-read share — with zero token cost (out-of-band, never enters model\ncontext). Add to `~/.claude/settings.json`:\n\n```json\n\"statusLine\": { \"type\": \"command\", \"command\": \"lynkr-statusline\" }\n```\n\n```\n◆ Opus 4.8 · MEDIUM → minimax-m3:cloud (ollama) · today $0.06 · cache 67%\n```\n\nAlways prints exactly one line and always exits 0 — a down proxy can never\nbreak the harness. Set `LYNKR_PORT` if Lynkr isn't on 8081.\n\n### Cost tracking & model pricing\nPer-request cost is computed from a model-pricing registry (LiteLLM → models.dev,\ncached 24h) and recorded in telemetry. Models the registry doesn't know record\n`cost_usd=null` (logged once) rather than a fabricated price. Pin prices for\nunknown models:\n```bash\n# Per-1M-token USD prices, JSON keyed by model name\nMODEL_PRICE_OVERRIDES={\"my-model\":{\"input\":0.5,\"output\":1.5}}\n```\n\n### Memory System (Titans-inspired)\n```bash\nMEMORY_ENABLED=true\nMEMORY_TTL=3600000  # 1 hour\n```\n\n### Load Shedding & Resilience\n```bash\nLOAD_SHEDDING_ENABLED=true\nLOAD_SHEDDING_HEAP_THRESHOLD=0.85\n```\n\n### Admin Hot-Reload (no restart needed)\n```bash\ncurl -X POST http://localhost:8081/v1/admin/reload\n```\n\n### Code Intelligence (Optional - Graphify)\n\n**Graphify** provides AST-based code analysis for smarter routing decisions.\n\n**Installation (Rust required):**\n```bash\n# Install Rust if not already installed\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource $HOME/.cargo/env\n\n# Build and install graphify\ngit clone https://github.com/safishamsi/graphify\ncd graphify\ncargo build --release\nsudo cp target/release/graphify /usr/local/bin/\n\n# Verify installation\ngraphify --version\n```\n\n**Enable in `.env`:**\n```bash\nCODE_GRAPH_ENABLED=true\nCODE_GRAPH_WORKSPACE=/path/to/your/project  # Optional, defaults to cwd\n```\n\n**Features:**\n- AST-based complexity scoring\n- Structural code analysis (19 languages supported)\n- Enhanced routing decisions based on code structure\n\n**Note:** Graphify is completely optional. If not installed, Lynkr falls back to simpler complexity analysis.\n\n---\n\n## Installation Methods\n\n**NPM (recommended)**\n```bash\nnpm install -g lynkr\n```\n\n**One-line installer**\n```bash\ncurl -fsSL https://raw.githubusercontent.com/Fast-Editor/Lynkr/main/install.sh | bash\n```\n\n**Homebrew** (macOS / Linux)\n```bash\nbrew tap fast-editor/lynkr\nbrew install lynkr\nlynkr --version\n```\nUpgrade later with `brew update && brew upgrade lynkr`. The formula tracks the latest [`lynkr` npm release](https://www.npmjs.com/package/lynkr) automatically.\n\n**Docker**\n```bash\ngit clone https://github.com/Fast-Editor/Lynkr.git\ncd Lynkr\ndocker-compose up -d\n```\n\n**From source**\n```bash\ngit clone https://github.com/Fast-Editor/Lynkr.git\ncd Lynkr\nnpm install\ncp .env.example .env\nnpm start\n```\n\n---\n\n## Documentation\n\n| Guide | Description |\n|-------|-------------|\n| [Installation](documentation/installation.md) | All installation methods |\n| [Provider Setup](documentation/providers.md) | Configuration for all 12+ providers |\n| [Claude Code](documentation/claude-code-cli.md) | Claude Code CLI integration |\n| [Cursor IDE](documentation/cursor-integration.md) | Cursor setup + troubleshooting |\n| [Codex CLI](documentation/codex-cli.md) | Codex configuration |\n| [Tier Routing](documentation/routing.md) | Smart model routing by complexity |\n| [Token Optimization](documentation/token-optimization.md) | 60-80% cost reduction |\n| [Troubleshooting](documentation/troubleshooting.md) | Common issues and solutions |\n| [API Reference](documentation/api.md) | REST API endpoints |\n| [Production](documentation/production.md) | Enterprise deployment |\n\n---\n\n## Benchmark Results\n\nHead-to-head against **LiteLLM** on the **same backends** (Ollama `minimax-m2.5`, Moonshot, Azure OpenAI), 9 scenarios across 4 feature categories. Apples-to-apples comparison is Lynkr vs LiteLLM **billed tokens on the same scenario**. Run with `node benchmark-tier-routing.js`.\n\n> _Runs: token benchmarks — June 5, 2026 (Lynkr v9.3.2 · LiteLLM v1.87.1). Tier routing head-to-head — **re-run July 19, 2026** (Lynkr working tree w/ Phase-6 classifier + config B · LiteLLM v1.94.0.dev1 Auto Router v2). macOS, Apple Silicon._\n\n### Token reduction (vs LiteLLM, same model & prompt)\n\n| Mechanism | Lynkr | LiteLLM | Result |\n|---|---|---|---|\n| TOON compression (60-item grep JSON) | **427** tokens · $0.009 | 3,458 tokens · $0.018 | **87.6% fewer tokens, 50% cheaper** |\n\nLynkr binary-compresses large JSON tool results (TOON) in-process, with no added latency.\n\n### Semantic cache\n\n| | Tokens billed | Response time |\n|---|---|---|\n| First call (cold) | 2,857 | 1,891ms |\n| **Second call — paraphrased, cache hit** | **0** (served from cache) | **171ms (11× faster)** |\n\nNear-identical prompts return cached responses in 171ms. Zero model tokens billed on a cache hit.\n\n### Tier routing — vs LiteLLM Auto Router v2 (re-run July 19, 2026)\n\nLiteLLM v1.94 shipped a native complexity router (`auto_router/complexity_router`) with the same four tier names Lynkr uses. Head-to-head on the **same backends** with identical prompts, both proxies live, both judged against the same acceptable-tier sets (11 routing scenarios, `MODE=routing node benchmark-tier-routing.js`, LiteLLM config in `litellm-autorouter-v2.yaml`):\n\n| Router | Routing-correct | Notes |\n|---|---|---|\n| **Lynkr (Phase-6 classifier + config B)** | **11/11 ✅** | anchor embedding + local LLM classifier reconcile + FORCE_REASONING patterns + risk-remap; ~500ms warm classifier call, cached |\n| LiteLLM v2 — heuristic (default) | **4/11** | every miss *under-routed* — banking security analysis, whole-pipeline refactor, prod auth-file fix, autonomous agentic loop all sent to a 7B local model |\n| LiteLLM v2 — LLM classifier | 6–8/11 (non-deterministic) | paid GPT-5.2 call + ~2–3s on **every** request; fails outright with local classifier models |\n\n**The 7 requests LiteLLM v2 misroutes to a 7B ollama model (should be COMPLEX or REASONING):**\n\n| What you typed | Lynkr sends to | LiteLLM sends to |\n|---|---|---|\n| \"Analyse security trade-offs of JWT vs httpOnly cookies for a banking app\" | Claude Opus (top) | **ollama 7B** ❌ |\n| \"Refactor the entire ingestion pipeline and give me the plan\" | z.ai GLM-5.2 (mid) | **ollama 7B** ❌ |\n| \"Fix the null-check bug in `src/auth/middleware.ts`\" | Claude Opus (risk-remap) | **ollama 7B** ❌ |\n| \"Figure out why this test is flaky. You have full autonomy — iterate until 10 runs pass\" | Claude Opus (autonomous) | **ollama 7B** ❌ |\n| \"please summarize the exports of this file quickly\" | ollama minimax (correct — MEDIUM) | ollama minimax — but for the wrong reason (LiteLLM under-routed to SIMPLE) |\n\nLynkr layers the following, in decreasing priority, to catch every miss LiteLLM leaks:\n\n- FORCE_REASONING regex (`ultrathink`, `prove`, `security audit`, `from first principles`) → deterministic top-tier\n- Risk classifier (auth/middleware/credentials paths) → REASONING under config B\n- Agentic detector (`AUTONOMOUS` workflows) → REASONING minimum\n- Anchor-embedding classifier over 4 difficulty classes + FRONTIER_MIN_SIM floor\n- Jev routing judge (optional, `TYPESAFE_API_KEY`) reconciles borderline anchor calls — no local Ollama required; the earlier qwen2.5:3b classifier is kept dark\n- Envelope invariance — scores cleaned user text only, ignoring tool schemas / history / system-reminders\n\nLiteLLM's router reads the raw last message with no envelope-stripping, no verify-then-escalate cascade, no risk classifier, no agentic detection — its fallbacks trigger only on HTTP errors, never on a bad answer.\n\n_Fairness notes: the 11 scenarios derive from Lynkr's own regression suite, so Lynkr has home-field advantage — the transferable finding is the **direction** of LiteLLM's failures (systematic under-routing to cheap on hard prompts), not the exact scores. Lynkr's top tiers used Claude Opus 4.8 / z.ai GLM-5.2; LiteLLM was given the identical tier targets._\n\n### Cost projection (100,000 requests/month, same backend)\n\n**Direct cost (raw meter):**\n\n| | Monthly cost | vs LiteLLM |\n|---|---|---|\n| LiteLLM (TOON tool-heavy scenario) | ~$818 | baseline |\n| **Lynkr (TOON tool-heavy)** | **~$409** | **~50% cheaper** via token optimization |\n\n**Effective cost per correct-tier answer** (July 19 head-to-head, all 11 routing scenarios):\n\n| | Direct $/mo | Effective $/mo if you re-issue misroutes at correct tier |\n|---|---|---|\n| **Lynkr** | ~$5.50 (spends where it should, doesn't where it shouldn't) | ~$5.50 |\n| LiteLLM v2 heuristic | $0 (under-routes everything to ollama) | ~$89 (7 misroutes need re-issue on Moonshot/COMPLEX) |\n\nThe story isn't \"Lynkr always spends less.\" It's **Lynkr spends where it should and doesn't where it shouldn't**. LiteLLM's zero-dollar cost on complex prompts is bought with wrong-tier answers to hard work — a 7B model answering \"prove this rate limiter is fair under concurrent refill\" is silent quality collapse, not a savings.\n\n→ [Full benchmark report with methodology](BENCHMARK_REPORT.md)\n\n---\n\n## Cost Comparison\n\n| Scenario | Direct Anthropic | Lynkr + Ollama | Lynkr + OpenRouter |\n|----------|-----------------|----------------|-------------------|\n| Daily coding (8h) | $10-30/day | **$0 (free)** | $2-8/day |\n| Monthly (heavy use) | $300-900 | **$0** | $60-240 |\n\nWith tier routing + token optimization: **additional 50-87% savings** on cloud providers depending on workload.\n\n---\n\n## Why Lynkr vs Alternatives\n\n| Feature | Lynkr | LiteLLM | OpenRouter | PortKey |\n|---------|-------|---------|-----------|---------|\n| **Setup** | `npm install -g lynkr` | Python + Docker + Postgres | Account signup | Docker stack |\n| **Claude Code native** | ✅ Drop-in | ⚠️ Requires config | ❌ | ⚠️ Partial |\n| **Cursor native** | ✅ Drop-in | ⚠️ Partial | ❌ | ⚠️ Partial |\n| **Local models** | Ollama, llama.cpp, LM Studio | Ollama only | ❌ | ❌ |\n| **Automatic tier routing** | ✅ embedding intent + 13-dimension scorer, verified cascade | ⚠️ Auto Router v2 (v1.94): heuristic under-routes, LLM classifier billed per request | ❌ | ❌ Manual metadata |\n| **TOON JSON compression** | ✅ up to 87.6% | ❌ | ❌ | ❌ |\n| **Upstream SSE streaming** | ✅ native passthrough + cross-format transform | ⚠️ passthrough only | ✅ | ⚠️ |\n| **Semantic cache** | ✅ 171ms hits, 0 tokens | ❌ | ❌ | ✅ Prompt cache only |\n| **Savings & routing dashboard** | ✅ spend, savings vs flagship, tier mix, routing accuracy, request logs, pivot explorer, session drill-down | ⚠️ spend UI only | ⚠️ usage page | ✅ observability suite (no routing accuracy) |\n| **Cost recommendations** | ✅ evidence-backed findings (dead tool schemas, side-traffic, cache weak spots, Wilson-proven downsizes) ranked by past overspend | ❌ | ❌ | ⚠️ alerts, no findings |\n| **Long-term memory** | ✅ SQLite, per-session | ❌ | ❌ | ❌ |\n| **MCP integration** | ✅ | ❌ | ❌ | ❌ |\n| **Self-hosted** | ✅ Node.js only | ✅ Python stack | ❌ SaaS | ✅ Docker |\n| **Dependencies** | Node.js 20+ | Python, Prisma, PostgreSQL | None | Docker, Python |\n\n**Lynkr's edge:** Purpose-built for AI coding tools. Compresses tokens before they reach the model — not just after. Zero-config for Claude Code, Cursor, and Codex. Installs in one command.\n\n---\n\n## Community\n\n- [GitHub Discussions](https://github.com/Fast-Editor/Lynkr/discussions) — Ask questions\n- [Report Issues](https://github.com/Fast-Editor/Lynkr/issues) — Bug reports\n- [NPM Package](https://www.npmjs.com/package/lynkr) — Official releases\n- [DeepWiki](https://deepwiki.com/Fast-Editor/Lynkr) — AI-powered docs\n\nThis project follows our [Code of Conduct](CODE_OF_CONDUCT.md) — it applies in\nall project spaces, and it tells you exactly how to report a problem.\n\n---\n\n## License\n\nApache 2.0 — See [LICENSE](LICENSE).\n\n---\n\n**Built by [Vishal Veera Reddy](https://github.com/vishalveerareddy123) for developers who want control over their AI tools.**\n","readmeFilename":"README.md"}