{"_id":"@12errh/antigravity-proxy","_rev":"11-d1cb0081a5a3751078cca46188bebe5a","name":"@12errh/antigravity-proxy","dist-tags":{"latest":"1.0.11"},"versions":{"1.0.0":{"name":"@12errh/antigravity-proxy","version":"1.0.0","_id":"@12errh/antigravity-proxy@1.0.0","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"01f09dde8a561ccfd72e6f2307716a9e215b17cb","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.0.tgz","fileCount":289,"integrity":"sha512-sBOhlvrHWdmy3Nd1oLxcypRNAglKS8zZsvXCkDgkdZyxcm4X7WLKPHLpO9RV3HVxEVxMoMjyuuRMj2eOO3RHVg==","signatures":[{"sig":"MEYCIQCOikwOEbtUl1z2A38bYm+8aE9pk86vCD6EQD73BA+pcAIhALuCqTXptm8edCRPnoHfsvWp8XwH+qwMeIKyldw1TNaQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1370672},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0348ad98633fa5569ea2b06f03160a7b516bca88","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.0_1782286759938_0.002374515518855924","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@12errh/antigravity-proxy","version":"1.0.1","_id":"@12errh/antigravity-proxy@1.0.1","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"86694ec44fe1cc2d9f8e0e8313a75db69d208fe9","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.1.tgz","fileCount":289,"integrity":"sha512-rQDNH7w4XXEIuf+GI+2w/iQQtlzCr/ENQH58tQexQuJ4heC73qiIEyNvE5+akGHWO/Dq/cYtRvmIOOXCixAKZw==","signatures":[{"sig":"MEYCIQDWQ3clyrTNSc8XyIuFWicg0PE6Qbn/TmrtTofPxQAZ2gIhAIOLfq/He5MMxHXwlAoSLuP5/TL9YlIxx13I1FPPHrk/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372058},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"bd7823245a1c5351913cb01c150533ce6f9cef57","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.1_1782372799218_0.32382141247093466","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@12errh/antigravity-proxy","version":"1.0.2","_id":"@12errh/antigravity-proxy@1.0.2","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"502b010b75e9344a31ec16ab32d94fb33dccb77d","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.2.tgz","fileCount":293,"integrity":"sha512-+K01MZnSRTBim7aYFnmbzSqCLxiQSjH2AHdcL4TA64XyBnD8dhd6I0S2xhJkMNvFAIZ8F78J5jYywD67f5YEEQ==","signatures":[{"sig":"MEUCIQCRQ/3NWSpGgxggngcbjyPl9AHiw9IGSrlLuyqIDUjBdwIgJz+3wqnyJdFkEH1scUdLXe2YjKg89krrI01LcnCINeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1392107},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"fbc2ca7a8c0e69c8ae7c7ad86c99889cfb9eae7d","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.2_1782699832048_0.6910485738625725","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@12errh/antigravity-proxy","version":"1.0.3","_id":"@12errh/antigravity-proxy@1.0.3","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"7dfff0c2dd47f31d4b7ed28c2249203616b92a12","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.3.tgz","fileCount":313,"integrity":"sha512-jDK1jjzy0YjkkagycEoOEmbY3xqvOyHwQZxRQ2ks6jPQMv5svUsuknKobKTfPFdxOXyW2s78YV0w6EMH753TXQ==","signatures":[{"sig":"MEYCIQDCDUz8beEQnhz7IL5aOrDglAIrtd9MXh3B8b2IrqAjeQIhALuSTU2+pI61c8Du0UB5JndX/By1h7Bjfsdg86kXSDNs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1405592},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"93eaeecf45bc1c4e1184b2548b171d7e11c2e497","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.3_1782738266081_0.8497941718137618","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@12errh/antigravity-proxy","version":"1.0.4","_id":"@12errh/antigravity-proxy@1.0.4","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"48b13e4ef3d746624b6fda93e6adff04fdf9bf26","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.4.tgz","fileCount":323,"integrity":"sha512-uwk825ebwk/Cxdy+ClYjGZB5P9UbXP50+WTH1V9hQ5udL/Xv2lPxp6eOBJwhlgDOP1/csgoU3eJhOWRmAit71A==","signatures":[{"sig":"MEUCIDCbs9X2JA7IM4iVeMGqosKFFIv57kOrA5pMP1dFie8aAiEAqe2gNUcjDZkzaeQYFqIM6U4MEaDrz91ClOUf4S5+j6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1420870},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"11cbd19ea7c71653d67af2016df6a37db1ad2264","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.4_1782868702563_0.7357432191233804","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@12errh/antigravity-proxy","version":"1.0.5","_id":"@12errh/antigravity-proxy@1.0.5","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"f96374ab8b4a8acac76932a5c6dff954e5a03e08","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.5.tgz","fileCount":323,"integrity":"sha512-LL5WU2Re7oWYaT4dkIXcZbrXyCuYczBW6mTqJiTf30sRiSZYBOx36KoLlTmtSs2k1g+qWrPHPLfWSDfCd8Io6Q==","signatures":[{"sig":"MEUCIERL64MBgY6ocXeS6NJo9blU0zaOLBtFICIAAExLi2z1AiEA65n/8cP3WAFS0byYNZMJyc158pB++/0IPR3PLs0o2a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1431685},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ef2b23c20cbcdc5ec3e0e84125beb3556491af40","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.5_1782873707821_0.5385626787286941","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@12errh/antigravity-proxy","version":"1.0.6","_id":"@12errh/antigravity-proxy@1.0.6","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"7ea862961c5c8e8c82f64bcdac5debc44b9efa27","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.6.tgz","fileCount":323,"integrity":"sha512-xTgNR3PXv3ptktN6lyKHBvxpWt7EG7wifYACEMLR5mrSZhDORSXCkmVIQGawWXs94fFBsGcMC0XI4tFva/YxkQ==","signatures":[{"sig":"MEQCIEPM32VqFuvfliFDSwSz1/k2U1px+Z+cI/9eLiLWxXclAiAf59pRpi5xLUXdiu3zXMqSXDNwYBCA6IXmgjZcEfCHpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1443253},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"69631242faf617dade1fd09257a490b4ddfa9376","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.6_1782875635111_0.015955035074200152","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@12errh/antigravity-proxy","version":"1.0.7","_id":"@12errh/antigravity-proxy@1.0.7","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"86ff6ed6965c7ad83bb7f496a9c9bbaf447de8e4","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.7.tgz","fileCount":323,"integrity":"sha512-Q7fupKCmXIvAs9KgUGDVRM0uiOXxowmwWBKJAQw9C53pc56fttmcl53DFMAQX/NpehA258ThsVkyRPpqYfgBGA==","signatures":[{"sig":"MEQCIFEhMLkf89Iegjn/bZfdgtcJJTdgInXm366a+yokSVB3AiBn2mMqXsio98RlfZv8Tw4cIrmDivLDZa0L4P7vdceT2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1457971},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e9392bd90d485beae083c48104b60968821f1002","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.7_1783190294875_0.6470933974288926","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@12errh/antigravity-proxy","version":"1.0.8","_id":"@12errh/antigravity-proxy@1.0.8","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"09800ddeb07dfc84b67c1abd83f14cc10300226c","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.8.tgz","fileCount":342,"integrity":"sha512-j9dxPrtFO7TstU/M1VGxIbQMZ4u/W6ZvT6QliNXLXK1ebPiRiTr3Cvrvr3TkTrn8RLe86g0JjDzCTujfgkg1lA==","signatures":[{"sig":"MEUCIQCY+EVNr6GuwgkaF+pmF3p6s+FuckR3yvulpQPhBrsOrQIgQOW2op3FTbjsDYltkmOZL1N9Z151JQUD5KEpvsDJfw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1512977},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e9392bd90d485beae083c48104b60968821f1002","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"postinstall":"node -e \"try{require('./dist/data-paths.js').migrateUserData()}catch{}\"","_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","ora":"^9.4.1","chalk":"^5.6.2","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.8_1783198481914_0.8569284016188241","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@12errh/antigravity-proxy","version":"1.0.10","_id":"@12errh/antigravity-proxy@1.0.10","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"bin":{"antigravity":"bin/cli.js"},"dist":{"shasum":"50c239a16854604a7b42bba25b2fdd3a9437b023","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.10.tgz","fileCount":352,"integrity":"sha512-vXgR9oNnxCzhYFqz3euzRBj751M4KcL3EOTirK4rfGOlppuW4sscje0KpT1J5CGIlxsZ64he+0iD+WsDXeBPvg==","signatures":[{"sig":"MEYCIQCT5nL21Y80z/uhwNseuDP7vguVoFp2IAyxHJlfToz49QIhALmUmSZABWFvgh9nyKEojeWA7i7hv6dWsGA7uwVFa6tN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1565725},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5111306bbfb165846f39a9128538547182675b9d","scripts":{"dev":"tsx watch src/index.ts","test":"tsx test/run.ts","build":"tsc","start":"tsx src/index.ts","gen-certs":"node scripts/gen-certs.mjs","typecheck":"tsc --noEmit","start:prod":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"_npmVersion":"11.14.1","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","directories":{},"postinstall":"node -e \"try{require('./dist/data-paths.js').migrateUserData()}catch{}\"","_nodeVersion":"22.16.0","dependencies":{"ai":"^6.0.193","ora":"^9.4.1","chalk":"^5.6.2","dotenv":"^17.4.2","undici":"^7.7.0","commander":"^15.0.0","node-forge":"^1.4.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^5.7.0","@types/node":"^22.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/antigravity-proxy_1.0.10_1783253239795_0.2537108527490266","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@12errh/antigravity-proxy","version":"1.0.11","description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","type":"module","main":"dist/index.js","bin":{"antigravity":"bin/cli.js"},"postinstall":"node -e \"try{require('./dist/data-paths.js').migrateUserData()}catch{}\"","engines":{"node":">=20"},"scripts":{"start":"tsx src/index.ts","start:prod":"node dist/index.js","dev":"tsx watch src/index.ts","build":"tsc","typecheck":"tsc --noEmit","test":"tsx test/run.ts","gen-certs":"node scripts/gen-certs.mjs","prepublishOnly":"npm run build"},"dependencies":{"ai":"^6.0.193","better-sqlite3":"^12.10.0","chalk":"^5.6.2","commander":"^15.0.0","dotenv":"^17.4.2","node-forge":"^1.4.0","ora":"^9.4.1","undici":"^7.7.0"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/node":"^22.10.0","tsx":"^4.22.3","typescript":"^5.7.0"},"gitHead":"7b4e9d16623a91b92bf115d1b0a3775eb274a5b6","types":"./dist/index.d.ts","_id":"@12errh/antigravity-proxy@1.0.11","_nodeVersion":"22.16.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-G1jtF04F9S3CvudWUGKdDGWistMrz5KZo5+IW/wMXOO0mleoEJIsOvqlGKr/C9Nz8WxVTNpKnQwqliFOL7/C0g==","shasum":"6b5bb07de93e2d1f4c63eaade41f0e2bb137ce04","tarball":"https://registry.npmjs.org/@12errh/antigravity-proxy/-/antigravity-proxy-1.0.11.tgz","fileCount":367,"unpackedSize":1632749,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG2Thg+Dr819/6KyV/e3mKDEmW5DZC41RxwHS2O287hUAiBvjS4SCT/v2Zl0uWFusFgFud+KF3tbLlQ/dMW7pNWecA=="}]},"_npmUser":{"name":"12errh","email":"rehanmazhar911@gmail.com"},"directories":{},"maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/antigravity-proxy_1.0.11_1783352747516_0.2341271195242396"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-24T07:39:19.814Z","modified":"2026-07-06T15:45:47.797Z","1.0.0":"2026-06-24T07:39:20.101Z","1.0.1":"2026-06-25T07:33:19.432Z","1.0.2":"2026-06-29T02:23:52.183Z","1.0.3":"2026-06-29T13:04:26.326Z","1.0.4":"2026-07-01T01:18:22.742Z","1.0.5":"2026-07-01T02:41:48.010Z","1.0.6":"2026-07-01T03:13:55.282Z","1.0.7":"2026-07-04T18:38:15.105Z","1.0.8":"2026-07-04T20:54:42.085Z","1.0.10":"2026-07-05T12:07:19.959Z","1.0.11":"2026-07-06T15:45:47.713Z"},"description":"LLM proxy for Antigravity — translate Google Gemini API calls to any provider","maintainers":[{"name":"12errh","email":"rehanmazhar911@gmail.com"}],"readme":"# Antigravity Proxy\n\n<p align=\"center\">\n  <img src=\"https://antigravity.google/assets/image/brand/antigravity-icon__full-color.png\" alt=\"Antigravity\" width=\"64\" height=\"64\">\n</p>\n\n<h1 align=\"center\">Antigravity Proxy</h1>\n\n<p align=\"center\"><strong>Use any AI provider</strong> with <strong>Antigravity 2.0</strong> — NVIDIA, OpenRouter, OpenAI, Groq, Anthropic, Google Gemini, OpenCode Zen, OpenCode Go, or 9+ local inference solutions.</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@12errh/antigravity-proxy\">\n    <img src=\"https://img.shields.io/npm/v/@12errh/antigravity-proxy.svg\" alt=\"npm version\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@12errh/antigravity-proxy\">\n    <img src=\"https://img.shields.io/npm/dm/@12errh/antigravity-proxy.svg\" alt=\"npm downloads\">\n  </a>\n  <a href=\"https://github.com/12errh/antigravity-proxy/actions/workflows/ci.yml\">\n    <img src=\"https://github.com/12errh/antigravity-proxy/actions/workflows/ci.yml/badge.svg\" alt=\"CI\">\n  </a>\n  <img src=\"https://img.shields.io/badge/node-%3E%3D20-brightgreen\" alt=\"Node >=20\">\n  <img src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT\">\n  <img src=\"https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey\" alt=\"Platform\">\n</p>\n\n---\n\n## Quick Install\n\n```bash\nnpm install -g @12errh/antigravity-proxy\nantigravity setup    # interactive wizard — picks provider, enters API key, configures port\nantigravity start    # starts proxy + dashboard + launches Antigravity desktop\n```\n\n> **No clone required.** The npm package includes everything: CLI, proxy, dashboard, certs, and all providers. Install once, run anywhere.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Antigravity 2.0 Desktop** (Windows, macOS, or Linux)\n- **Node.js 20+** \n- **Administrator/root privileges** (port 443; can use 8443 without admin)\n- At least one API key or local model server\n\n### Platform Support\n\n| Platform | Status | Notes |\n|----------|--------|-------|\n| **Windows 10/11** | ✅ Tested | CLI handles cert install, port binding, and launch |\n| **macOS** | ⚠️ Untested | CLI with best-effort cert trust. Report issues on GitHub. |\n| **Linux** | ⚠️ Untested | CLI with best-effort cert trust. Report issues on GitHub. |\n\n> TypeScript code is cross-platform. Only TLS cert trust is platform-specific.\n\n### Launch via CLI (recommended)\n\n```bash\nnpm install -g @12errh/antigravity-proxy\nantigravity start                    # background mode — runs silently, launches desktop\nantigravity start --foreground       # foreground mode — see live logs in terminal\nantigravity start --port 8443        # no admin needed\nantigravity start --trust-cert       # auto-trust TLS certificate\nantigravity stop                     # stop everything cleanly\n```\n\n### Launch from source (development)\n\n**Get the Repository**\n\n```bash\ngit clone https://github.com/12errh/antigravity-proxy.git\ncd antigravity-proxy\n```\n\n**Windows (PowerShell as Administrator)**\n\n```powershell\n.\\start.ps1\n```\n\n**macOS / Linux**\n\n```bash\nchmod +x start.sh\n./start.sh\n```\n\n**Without admin (port 8443)**\n\n```bash\n./start.sh --port 8443\n```\n\nThen open **http://localhost:4000** in your browser to configure providers, model mappings, and view live stats.\n\n---\n\n## 🎯 Key Features\n\n| Feature | Status | Description |\n|---------|--------|-------------|\n| **Auto context compaction** | ✅ | LLM-based summarization when approaching context limits |\n| **Model fallback per provider** | ✅ | Try multiple models within same provider before failover |\n| **Multi-provider failover** | ✅ | Priority chain with exponential backoff |\n| **Per-model routing** | ✅ | One row per model alias, one column per provider |\n| **Retry + backoff** | ✅ | Configurable per-provider and global |\n| **Hot-reload config** | ✅ | No restart needed for changes |\n| **Tool normalization** | ✅ | Alias resolution, type coercion, default filling |\n| **Model capability detection** | ✅ | Auto-detect reasoning, vision, tools |\n| **Provider optimizations** | ✅ | Groq (image stripping), Zen/NVIDIA (reasoning effort) |\n| **Real-time dashboard** | ✅ | Live logs, stats, config editor |\n| **Cost tracking** | ✅ | Per-day, per-model, per-provider |\n| **Local discovery** | ✅ | 9+ inference solutions auto-detected |\n| **Full-text search** | ✅ | Search requests, sessions, logs |\n| **Blocklist** | ✅ | Provider, model, content filtering |\n| **Session comparison** | ✅ | Side-by-side session analysis |\n\n---\n\n## 🚀 How It Works\n\n```mermaid\ngraph TD\n    A[Antigravity 2.0 Desktop] --> B[TLS 443]\n    B --> C[Proxy]\n    C --> D[Cloud APIs]\n    C --> E[Local APIs]\n    C --> F[Dashboard]\n    \n    D --> G[OpenRouter]\n    D --> H[NVIDIA]\n    D --> I[OpenAI]\n    D --> J[Groq]\n    D --> K[Anthropic]\n    D --> L[Google Gemini]\n    D --> M[Zen]\n    \n    E --> N[Ollama]\n    E --> O[vLLM]\n    E --> P[LM Studio]\n    E --> Q[llama.cpp]\n    \n    F --> R[Live Logs]\n    F --> S[Request History]\n    F --> T[Config Editor]\n    F --> U[Model Matrix]\n    F --> V[Provider Priority]\n```\n\n### Per Request Pipeline\n\n1. **TLS Intercept** — Receives Gemini API call on port 443\n2. **Context Stripping** — Removes bulk context, injects compact `agent-context.md` reference\n3. **Tool Normalization** — Resolves aliases, coerces types, fills defaults\n4. **Model Resolution** — Routes through priority order with retry + backoff\n5. **Capability Detection** — Auto-detects reasoning/vision/tool support\n6. **Reasoning Effort** — Applies `reasoning_effort` if configured\n7. **Translation** — Converts to target provider's API format\n8. **Streaming** — Returns SSE response wrapped in Gemini format\n9. **Logging** — Records to SQLite for cost tracking, history, sessions\n\n---\n\n## 📊 Supported Providers\n\n### Cloud APIs\n\n| Provider | Type | Env Var | Notes |\n|----------|------|---------|-------|\n| **OpenRouter** | Cloud API | `OPENROUTER_API_KEY` | 300+ models in one key |\n| **NVIDIA NIM** | Cloud API | `NVIDIA_API_KEY` | Free credits on signup |\n| **OpenAI** | Cloud API | `OPENAI_API_KEY` | GPT-4o, o-series |\n| **Groq** | Cloud API | `GROQ_API_KEY` | Ultra-fast LPU inference |\n| **Anthropic** | Cloud API | `ANTHROPIC_API_KEY` | Claude 3.x / 4.x |\n| **Google Gemini** | Cloud API | `GOOGLE_API_KEY` | Gemini 2.5 Pro/Flash |\n| **OpenCode Zen** | Cloud gateway | `OPENCODE_API_KEY` | Claude, GPT, Gemini, Grok, Kimi, GLM — one key |\n| **OpenCode Go** | Cloud gateway | `OPENCODE_GO_API_KEY` | DeepSeek, Qwen, MiniMax, GLM, Kimi, MiMo — $10/mo |\n\n### Local Inference\n\n| Provider | Type | Notes |\n|----------|------|-------|\n| **Ollama** | Local | Auto-discovered on port 11434 |\n| **vLLM** | Local | Auto-discovered on port 8000 |\n| **LM Studio** | Local | Auto-discovered on port 1234 |\n| **llama.cpp** | Local | Auto-discovered on port 8080 |\n| **text-generation-webui** | Local | Auto-discovered on port 5000 |\n| **TabbyAPI** | Local | Auto-discovered on port 5000 |\n| **LocalAI** | Local | Auto-discovered on port 8080 |\n| **LiteLLM** | Local | Auto-discovered on port 4000 |\n| **Aphrodite Engine** | Local | Auto-discovered on port 8000 |\n\n---\n\n## 📋 Models Tab — Matrix\n\nThe Models tab shows a matrix: one row per Antigravity model alias, one column per provider.\n\n```mermaid\ngraph TD\n    A[Model Alias] --> B[Default]\n    A --> C[OpenRouter]\n    A --> D[Zen]\n    \n    E[claude-sonnet-4-6] --> F[claude-sonnet-4-5]\n    E --> G[anthropic/claude-3-5-sonnet-20241022]\n    E --> H[claude-sonnet-4-5]\n    \n    I[gemini-2.5-flash] --> J[gemini-2.5-flash]\n    I --> K[google/gemini-2.0-flash-exp]\n    I --> L[deepseek-v4-flash]\n    \n    M[gpt-4o] --> N[openai/gpt-4o]\n    M --> O[openai/gpt-4o]\n```\n\n**Features:**\n- Double-click any cell to open live model picker\n- Column toggles to hide unused providers\n- Quick-add buttons (`+ Claude`, `+ Gemini`, `+ GPT`)\n- Empty cells use Default value\n- Provider logos in filled cells\n\n---\n\n## 🧠 Model Options — Reasoning Effort\n\nSome models support `reasoning_effort` to control thinking depth:\n\n| Model family | Levels |\n|--------------|--------|\n| DeepSeek R-series | low, medium, high, max |\n| NVIDIA stepfun | low, medium, high, max |\n| OpenAI o-series | low, medium, high |\n| Qwen Thinking, GLM Thinking, Kimi | low, medium, high |\n\n**Auto-detection:** The Model Options tab detects supported models and lets you set levels per model. Settings persist in `proxy/reasoning-effort.json` without restart.\n\n---\n\n## ⚙️ Config Tab — API Keys\n\n| Key | Provider |\n|-----|----------|\n| `OPENROUTER_API_KEY` | [openrouter.ai/keys](https://openrouter.ai/keys) |\n| `NVIDIA_API_KEY` | [build.nvidia.com](https://build.nvidia.com) — free credits on signup |\n| `OPENAI_API_KEY` | [platform.openai.com/api-keys](https://platform.openai.com/api-keys) |\n| `GROQ_API_KEY` | [console.groq.com/keys](https://console.groq.com/keys) |\n| `ANTHROPIC_API_KEY` | [console.anthropic.com/settings/keys](https://console.anthropic.com/settings/keys) |\n| `GOOGLE_API_KEY` | [aistudio.google.com/apikey](https://aistudio.google.com/apikey) |\n| `OPENCODE_API_KEY` | [opencode.ai/auth](https://opencode.ai/auth) — one key for Claude, GPT, Gemini, Grok, Kimi, GLM |\n\nAll keys are hot-reloaded from `.env` — no restart needed.\n\n---\n\n## 🏗️ Architecture\n\n```mermaid\ngraph TD\n    %% Root level\n    A[agent-context.md] --> B[start.ps1]\n    B --> C[README.md]\n    C --> D[CHANGELOG.md]\n    C --> E[docs/]\n    C --> F[proxy/]\n    \n    %% docs/ directory\n    E --> G[SETUP.md]\n    E --> H[CONFIGURATION.md]\n    E --> I[DEVELOPER.md]\n    E --> J[antigravity-v2-analysis.md]\n    \n    %% proxy/ directory\n    F --> K[src/]\n    \n    %% src/ directory - main components\n    K --> L[adapters/]\n    K --> M[adapter.ts]\n    K --> N[provider-plugin.ts]\n    K --> O[provider-registry.ts]\n    K --> P[plugins/]\n    K --> Q[tool-capabilities.ts]\n    K --> R[tool-normalizer.ts]\n    K --> S[model-capabilities.ts]\n    K --> T[router.ts]\n    K --> U[models.ts]\n    K --> V[index.ts]\n    K --> W[engine.ts]\n    K --> X[mapper.ts]\n    K --> Y[config.ts]\n    K --> Z[provider-cache.ts]\n    \n    %% adapters subdirectory\n    L --> A1[openai.ts]\n    L --> A2[anthropic.ts]\n    L --> A3[google.ts]\n    L --> A4[groq.ts]\n    L --> A5[zen.ts]\n    L --> A6[nvidia.ts]\n    L --> A7[types.ts]\n    \n    %% plugins subdirectory\n    P --> B1[builtin-plugins.ts]\n    \n    %% dashboard subdirectory\n    F --> C1[dashboard/]\n    C1 --> C2[index.html]\n    C1 --> C3[login.html]\n    \n    %% Other files in proxy/\n    F --> D1[models.json]\n    F --> D2[pricing.json]\n    F --> D3[reasoning-effort.json]\n    F --> D4[blocklist.json]\n    F --> D5[.env]\n    F --> D6[.env.example]\n    F --> D7[certs/]\n    F --> D8[logs/]\n    \n    %% Note: actual configuration for certs and logs are nested\n```\n```\n\n---\n\n## 🔧 Environment Variables\n\n```env\n# Provider priority (first = primary)\nPROVIDER_PRIORITY=openrouter,nvidia,zen\n\n# API keys\nOPENROUTER_API_KEY=sk-or-v1-...\nNVIDIA_API_KEY=nvapi-...\nOPENAI_API_KEY=sk-...\nGROQ_API_KEY=gsk_...\nANTHROPIC_API_KEY=sk-ant-...\nGOOGLE_API_KEY=AIza...\nOPENCODE_API_KEY=sk-...\nOPENCODE_GO_API_KEY=sk-opencode-go-...\n\n# Ports\nPROXY_PORT=443          # TLS port Antigravity connects to\nAPI_PORT=4000           # Dashboard + REST API port\n\n# Retry & failover\nPROXY_RETRIES=3         # Attempts per provider\nPROXY_BACKOFF_MS=100    # Initial backoff (doubles each retry)\n\n# Rate limiting (0 = unlimited)\nRATE_LIMIT_GLOBAL=0\nRATE_LIMIT_PROVIDER=0\nRATE_LIMIT_WINDOW_MS=60000\n\n# Logging\nLOG_LEVEL=info          # debug | info | warn | error\nLOG_MAX_SIZE_MB=10      # Rotate when reached\nLOG_MAX_FILES=5         # Keep N rotated files\nLOG_MAX_AGE_DAYS=30     # Delete files older than\n\n# Dashboard auth (optional)\nDASHBOARD_USER=admin\nDASHBOARD_PASSWORD=your_password\n\n# Failover webhook (optional)\nFAILOVER_WEBHOOK_URL=https://hooks.example.com/webhook\n\n# Workspace context hardening\nWORKSPACE_CONTEXT_ENVELOPE=strict   # off | loose | strict\n\n# Inline context mode\nCONTEXT_STRIP_MODE=lite             # lite (recommended) | strip | passthrough\n```\n\n> ### 💡 Context Mode Explained\n>\n> **Lite (recommended):** Uses compressed `agent-context-lite.md` (~3.5K tokens) — same tool coverage as full context, 66% fewer tokens. Strips native Antigravity context, injects compressed version.\n>\n> **Strip:** Uses full `agent-context.md` (~10K tokens) — removes bulk context (skills/plugins/identity), injects complete operating manual.\n>\n> **Passthrough:** Forwards native Antigravity context unchanged (~28K tokens) — simplest approach, no injection overhead.\n\n---\n\n## 📚 Quick Links\n\n- [Setup Guide](docs/SETUP.md)\n- [Configuration Reference](docs/CONFIGURATION.md)\n- [Developer Guide](docs/DEVELOPER.md) ← **For adding providers & plugin development**\n- [CHANGELOG](CHANGELOG.md)\n- [Contributing](CONTRIBUTING.md)\n- [Security Policy](SECURITY.md)\n\n---\n\n## ⚡ Development Quick Start\n\n```bash\ncd proxy\nnpm install            # Install dependencies\nnpm run build          # Compile TypeScript → dist/\nnpm run typecheck      # Type-check only\nnpm test               # Run tests\nnpm run dev            # Watch mode\n```\n\n**New Providers:** See `docs/DEVELOPER.md` for plugin architecture guide.\n\n**Run tests:**\n\n```bash\n# All tests\nnpm test\n\n# Filter by component\nnpx tsx test/run.ts plugin-architecture\nnpx tsx test/run.ts tool-translation\nnpx tsx test/run.ts model-discovery\nnpx tsx test/run.ts provider-adapters\n```\n\n## 📝 License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}