{"_id":"pi-cache-optimizer","_rev":"64-fe229aeae5324aad83eed2e2c5165abc","name":"pi-cache-optimizer","dist-tags":{"latest":"2.8.11"},"versions":{"2.0.0":{"name":"pi-cache-optimizer","version":"2.0.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.0.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-deepseek-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-deepseek-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/DeepSeek-Cache%20Optimizer-4A90D9","extensions":["./extension.ts"]},"dist":{"shasum":"969ffb08b6f766a98a0e06f2bbe5de539364959a","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.0.0.tgz","fileCount":5,"integrity":"sha512-N8/Ey0hwx/QALV8R1hqXvYmEKpu5CKvQbrZmcwcONaX2Xs4I+v/eVvPA707GGcWuaulEJs8KlcNnmKChvcb4+w==","signatures":[{"sig":"MEQCIFx5lLq/StEZ4/DZY3DtJu9dljhvFNFxq+FChppi6yE0AiBfE+mXMztqr7NgGGKU+9yL/THA/P6d860P0JeZGzxnuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79052},"gitHead":"b5584a50254cae2388f9f7e0ca8607194bb55c9a","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-deepseek-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.0.0_1778905381091_0.4903200308870652","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"pi-cache-optimizer","version":"2.0.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.0.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-deepseek-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-deepseek-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./extension.ts"]},"dist":{"shasum":"d499bde3a0380a31e11bd920d3cb9a0b4b8b1b9e","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.0.1.tgz","fileCount":5,"integrity":"sha512-9xc/olQfB4NQ895m9ZTw/gbI8kQu66TrisA/TRWWbHPwDBMEm0YP16zm5X9IEMkZ9KwXn1SjubmCdqYhYpV6pQ==","signatures":[{"sig":"MEUCIQC+BIrK4fQx9CBLGRRr8hfKkKddgScR/8gnMlBbs/IgOAIgCG0GT6ayB7k+cVGoMZ4MNv9Yd20nPxlXReJ904KtSpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79688},"gitHead":"b94fcada0f5a24920ab47bfb10f5c2fd7604c7d0","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-deepseek-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.0.1_1778906552043_0.6085953089431559","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"pi-cache-optimizer","version":"2.0.2","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.0.2","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"d8ba7191d7c64570393d89afbe16d8afae6b8786","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.0.2.tgz","fileCount":5,"integrity":"sha512-LGah5uR/oddTi/UbY5n8fqqzrl4Cby0kaoU6L+3eNcM1cwKlnbf4603xCrAp4+sMWWhxCl9+a5SOUwYGtEvBsQ==","signatures":[{"sig":"MEUCIHcvVP1JVHlHJ22MZVORq6OnBjB5NlbaxsKi8FE2MoQXAiEA+gs7zQ+QOiTgb4Mg9D20K0HB5D3cU7LoTUaDZ8dzY8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81484},"gitHead":"8bcf75ea4317000f2efc7b6fa2de348196d50845","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.0.2_1779007158573_0.6312209195466474","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"pi-cache-optimizer","version":"2.1.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.1.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"f25cd957b21a7bb6f9b1a406d77b81ae297ad7f6","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.1.0.tgz","fileCount":5,"integrity":"sha512-ov9mVWFlub/IPDFIhmhYep85D+ZA+AC1JPRoTXQGIUe72g/4pMX3Uq+0uERfVvvjGYY3Jkv2izJcMGUpNuLs1A==","signatures":[{"sig":"MEUCIQD38UGOqaua3U/RKDqSi7TGL5U/0TSr5WtL6xtsp7kRqgIgaC9XJEKyfCqKp4Iycui5Vq9r4Qils6nKhPcHJ/0j1pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92739},"gitHead":"1b752f4460fc373521e9effbafebc3fa8cdab000","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.1.0_1779018800797_0.5568083042265433","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"pi-cache-optimizer","version":"2.1.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.1.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"be388b5bbddc65144983b337fab8ad570a952a9b","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.1.1.tgz","fileCount":5,"integrity":"sha512-POmqrG3VVq/deJCKe+j+Qop85MeMZnQrpK6zNu2RpTj7H1mFZbuqpZgMMyk7E/Ot1L6Eptn4wl6ShPiuCTSjmg==","signatures":[{"sig":"MEYCIQCM2H8+1sq6bsZrTafXfLsC9IL/UAzlsdXE44F4mfnmBwIhAN7exqx2EP28zOiCpfRd+hSCkKnNH8QNEcTPkdLphlSz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94819},"gitHead":"383c3a5575f93e29da966f38ffb5a4d3479f3973","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.1.1_1779023095356_0.896139253077489","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"pi-cache-optimizer","version":"2.2.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.2.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"22a9d7b747b76c7a66881a3c4bca029998d3933d","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.2.0.tgz","fileCount":5,"integrity":"sha512-fqf4EPRILFMIvkImZvEHbHKbEIPsIEjT6HVpqyFrFxLGwZ7NL1yWGJqpTOtZbyTieSC8X2d2ZaDjq1RnLe+6Aw==","signatures":[{"sig":"MEYCIQC20f9mmNdMP7s2o73/hLGbhdAAutxVezYL6JgG6PwmvwIhAP4zjt+/GcmwnWLPBmPUyxx9Pb3B/SC2WBUgItcq/bq2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97949},"gitHead":"1dbd7029b14033c3c14e2b01ae61f1ee2078538c","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.2.0_1779033122748_0.9410007448918514","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"pi-cache-optimizer","version":"2.2.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.2.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"04f2917d2fbd200be25b80d757499f5ad1664cdd","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.2.1.tgz","fileCount":5,"integrity":"sha512-lBrfTWorYCw0NF0VetOnvckJBISy75bAL3g4Oi3J7rMPzbXfe5L/2Ak5VZADxoLvOj7VqWY7Eh2748k40/d+SA==","signatures":[{"sig":"MEUCIQDSIQJjKP15wJaUvhrJYucREVm7Y4qVgFeO8+Rh4D2ykAIgHDFgMh3ykV+YSQ6iVo2zS2HuCE4q7hxNsugSbHMx4lc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99717},"gitHead":"702a27f1aff49cf9f40acafabb7b56b78ed4d8b5","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.2.1_1779071705335_0.01912634239846933","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"pi-cache-optimizer","version":"2.3.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.3.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"dbca5e2d6084870ba053eba6299c90f716257ec7","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.3.0.tgz","fileCount":5,"integrity":"sha512-1JtDqiujdbOyTZIG6ENkErMqtVV+NVld2JrDMiO1oiV6iJJZpOCK++GWOBJfSvPjLAWwsBiAu6Z4THb79B4Aow==","signatures":[{"sig":"MEYCIQDg+lLsfq4x0v01eT39oWUb1gOxOWX52ML4wy3XPkYppQIhALuMk8RVVJVNBAasKw7ip4Z1nUTOefffk4Ymn4HDxk7b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101618},"gitHead":"d4e8d38f9c0bfabffea125b1b6db0901f22ce502","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.3.0_1779282178248_0.1892672178126389","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"pi-cache-optimizer","version":"2.4.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"bb138d9062b3dd357afb5a4331b9acc62541909e","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.0.tgz","fileCount":5,"integrity":"sha512-hvDqWbBlWxQ7GZA9kMAZEsv4JGQolONEzvsprGJ+RzN+tvUaSGFXV1NLDn6spZKvnWnjXHQjswrYXwV392FeFw==","signatures":[{"sig":"MEUCIFslJ8uJZTfKQoOKE69bzwGLv4aWxDC+XBX+ElMx0xZHAiEAgwThp4fiEQh/0EeYPVXMhRN+kbMl8AE/Z0uL+MRle6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94328},"gitHead":"4e3c222ead102e01d6460d2a0b3485afd51b30cc","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.0_1779438160216_0.4696450670066068","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"pi-cache-optimizer","version":"2.4.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"9cc55fbaadceeb6acc35d7dc7bfbbd6d4b87ddf7","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.1.tgz","fileCount":5,"integrity":"sha512-i85KM0NfE8NiIHsTXiqG7KxOHYloIxdGN2czwPVVTvbEEngLzAhOFKLDDR8JIaPonVUg7FdXXEyMPrV53Ng3yA==","signatures":[{"sig":"MEUCIBU5o1WpLJSTvUbDhUubVi4hxQYPJzGaAQj9HnliKvatAiEAz/pn0kHMlAjniFGUZHJhBpewYcLEQx848RKn95d56Lg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99150},"gitHead":"ebad46b72e56a02ec3103ad1fa3b82095f1b2527","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.1_1779505324871_0.3352562362104934","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"pi-cache-optimizer","version":"2.4.2","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.2","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"89e6e44a101bf34a4a822dfe33a6125acf51fc57","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.2.tgz","fileCount":5,"integrity":"sha512-b/8ZQLONXmaaAtKhsg0n+bQ5XZ4dcMT27viZiFyhaQ14jpPw/uvyeCu2AlJAGCA7fEkZ7jTa1GEltK61bJUJ8Q==","signatures":[{"sig":"MEUCIQDjpMvVYabsIuBUQHqQoerfkoEGqOQloR90I1IUxF+kUAIgIQoa3Q0vNZPTh+pOo1HG8vWl0LZZN/LzZwHrChBQe9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101289},"gitHead":"16ff6643b496aedee2cbdfe5149fdcc652709ae1","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.2_1779536025823_0.8732928505070512","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"pi-cache-optimizer","version":"2.4.3","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.3","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"884e8ab8003c4069e4c7d449bf2c1f9c4614d02e","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.3.tgz","fileCount":5,"integrity":"sha512-VZvc82JUbMyap5uQNgM2x5jg1ovYLCgTO1zxxSvwQMynef5smxktL12sbTOoi/+fn4IDsr73xB6q4NKa9e5Mqg==","signatures":[{"sig":"MEYCIQDekCskYyIqJbbf7LkVfVsRyJ2ztN7jWHuiJJdIorVRhAIhAK3zo8P44ecSJPnJZxTVcrJbAyAjjJbsrl1qdSr5xBVV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108315},"gitHead":"807f8a705d460ffe2f4e4e97150b53e5e6e450cb","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.3_1779546615848_0.4154938335338425","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"pi-cache-optimizer","version":"2.4.4","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.4","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"c340a0d6efc1a096e1a3f942b2323c4d2de13f0f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.4.tgz","fileCount":5,"integrity":"sha512-nzybimOaYYT1Fw64jLLxs7W8viQj3Jwx7oC/aTF83HYX1P08uPBufEFdsewbX//vOUjnNwn2quioLmC5fF9G/w==","signatures":[{"sig":"MEYCIQC20+aLiIkfvQSlExY1WFwAdNrORtlYEpA+8C8yHdKNnAIhAPVzP6RrcXKtOu8ngN6jQPJZep6AwLeiJJmTsodHk+CO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118098},"gitHead":"0049beafbeea438073474c349aae326107faa4ef","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.4_1779547651560_0.9015829621120495","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"pi-cache-optimizer","version":"2.4.5","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.5","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"32c05d258b34c282c8e8968ea28048c9714704cc","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.5.tgz","fileCount":5,"integrity":"sha512-4S0UpmI6WTg0C/yxjUi1lVqTw6OEAIN4HTxAcH8zK2/JlkmACZyTZGFVabf0ON5PftIxNvBDLAUb0qqDkbzKeg==","signatures":[{"sig":"MEYCIQChFgBiLi2FvveuT7iyNDz2ix3Se8B7y9KkRgKTXa8eaQIhANKJdK+0V9E+nhdRvoJiAc0LXjGt5L+qriYriTG9QF1C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138967},"gitHead":"737f3904700038ed28c2de1845f5f96007f8a5c8","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.5_1779556482438_0.20788335468305386","host":"s3://npm-registry-packages-npm-production"}},"2.4.6":{"name":"pi-cache-optimizer","version":"2.4.6","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.6","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"fa7672081c0b53c8ab3d223d69d75b0e2112c54e","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.6.tgz","fileCount":5,"integrity":"sha512-wWXXK8nFfnj+wbdU5gRzestx0WQklXw0Y2ArXukxIay0Gi9NCuVxX22nOylNPXU8uLORBs8d40AnKP0lh1xgtQ==","signatures":[{"sig":"MEYCIQD/BCCsyRQucx5kmNfN3yt9PTPajWc98petLDaOCggpAQIhAIef0niBXAvGz72IUOi2g7YrzDFjCVv+iL7eih/ZSWjY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153163},"gitHead":"8910cc92e1adc233331e7befca37d415fb92ff78","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.6_1779557795551_0.8404388090391597","host":"s3://npm-registry-packages-npm-production"}},"2.4.7":{"name":"pi-cache-optimizer","version":"2.4.7","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.7","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"abbe312c5db00e312ea4a64df10a3e7a4e75f7cb","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.7.tgz","fileCount":5,"integrity":"sha512-iW6z0bvmSszMMl/40CkXkoYhxTqjNw0KCYpVO/4IUSDUoR2JwebcjL/6UZlFBJPibhH38iXHLMknc0oDiWB4hQ==","signatures":[{"sig":"MEYCIQDNOmdv0jXxLONPih1Y8W70CUpqymVvgznNKsMxxQrSAAIhAIBEMTSDux8t3jvRvynuj6Rfua4GRMSEW4gdqNGA3F5M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195534},"gitHead":"df0c65a56622e0995accb80cd18aa8feaeeb4f5a","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.7_1779579701154_0.5847649421332504","host":"s3://npm-registry-packages-npm-production"}},"2.4.8":{"name":"pi-cache-optimizer","version":"2.4.8","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.8","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"fb52769240376056950f2903d55776ce0978845f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.8.tgz","fileCount":5,"integrity":"sha512-R/UhCFeBq4/pPWrV3/8WJUiqdA6eOukGJdAUhB2PLYmY+jFTsGP/OaHFmlL4v2oEldxwVwMiAo8/Ssvdj1Avog==","signatures":[{"sig":"MEQCIEydhHwZxGHR77Q2fydCPwmBG6u246cM44e5vkyBK7hbAiBGKrVJdcBWjGbsxfyKaUTGosJAj3O3aarl7V0fXZzVtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207061},"gitHead":"cc4e249a5e270e0b5ed7c6ca68159253102ddd2c","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.8_1779586678220_0.4124554547132835","host":"s3://npm-registry-packages-npm-production"}},"2.4.9":{"name":"pi-cache-optimizer","version":"2.4.9","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.4.9","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"f85b1f053f45b9b95b38cb7c4a0ec32c71dc970f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.4.9.tgz","fileCount":5,"integrity":"sha512-17u1mNHXHKypD2wNOaNjOjnCaYx/5Mnp16WFCS9y4pw1Xht/wB89H6ufKIX9zfbu5fvJToq4dI/NcOoX07/qmA==","signatures":[{"sig":"MEUCIQCvCDYnv/rTa13/Wqd6pZOgGjhUL7lKb2jbqy8Sp8Sy9AIgJvgwyfzBxOfHxqPZ1QcPcqEa1QaWbpSU10GG2I/WHWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224882},"gitHead":"88f84c098a34b2cfb180ee800576021d5337ede0","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.4.9_1779588861571_0.7310759940233138","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"pi-cache-optimizer","version":"2.5.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"ffa3524cd9625161206241acbdcf9c02f7f061a7","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.0.tgz","fileCount":5,"integrity":"sha512-uIPBfLI+cYZZQ9CWc6qvsMj+FHcPAHA0oL6u5UHnRXK9/c+7pq5Ecamvfh5jYMqubXhEDBL38NpNe6LH9O5sZg==","signatures":[{"sig":"MEUCIBKhGf/PRVaLiUh0qKkljSFxmASeG9kumWY1zZvOjTHFAiEAvClREVn6qIn5BubvAljL775qpIHYOY7qbxrPUzc4Rhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238340},"gitHead":"7a19e8275324903027821b9ba1886ba656ff4b20","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.0_1779628366357_0.23468066268224996","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"pi-cache-optimizer","version":"2.5.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"94d6cb7d2f134093e871d576e7c7737b11bd3455","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.1.tgz","fileCount":5,"integrity":"sha512-twUFJQzypj7Vag4CxDRlYiJ2VBhuo9u8uluKmTTHx1SjyHYtdjCk+YwX8NsIr962rQVmnbyNQg0zp0pXKrM1+Q==","signatures":[{"sig":"MEQCIDD1nOiM+Y+W0jwF7bedEY4oplPyaLYJikkQWcIffqTxAiAcmTnwMmIMvKR34e/sHy++hzdSmdXIaw7Sato6uL824Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237370},"gitHead":"b69d68952347f25c1b978603fa4dbf7b277f7e6a","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Pi extension that improves provider-side KV/prompt cache hit rates (DeepSeek, OpenAI, Claude, Gemini) by reordering the system prompt, requesting long retention, and showing footer cache stats. Renamed from pi-deepseek-cache-optimizer.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.1_1779649526791_0.12270734858855903","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"pi-cache-optimizer","version":"2.5.2","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.2","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"4c3b445cbf5a1141873f0b2b9d3905123c6591b2","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.2.tgz","fileCount":5,"integrity":"sha512-52vz+Ik5pZkZi4U2zdELvpHGpJe4yWLDiItAzlBRcOpesZMJH40KxGHrpZdW2mo19TcB2/pfw1J7zw6H7RneVg==","signatures":[{"sig":"MEUCIBMxHUSxVVb6q4zVFWrWjeq3vnsmot5omcusTM3q0GgmAiEAqOTDPIA0To6EURUWU9L5+lfP1mb23gF2hPuJSpjh7w0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189364},"gitHead":"06dbb5c7db9496d43f377a67123266ad91b015a7","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.2_1779783767575_0.9965513799063563","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"pi-cache-optimizer","version":"2.5.3","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.3","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"e4b16aca3124e10677002f475298a5da40c2de70","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.3.tgz","fileCount":5,"integrity":"sha512-p5pIuk8WhhaPJLYP8tC7YhVQcyya+iBHB2rssRdOK+x2QG02U7dBMLPOtaT1BTfTEQV3te90o0U9V2XltXCn0Q==","signatures":[{"sig":"MEUCIQCdM3cKQbS2HtQ4r6AFXT72XA2z03/lMlrmsuDpZ95SVAIgQXJQRi5AzmcT8WrrSW0ub5Czf2n+Wq/m7xk8JnAFKQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189729},"gitHead":"2b65f02ddcbf1c9b1446725742da4cdff2398e9f","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.3_1779838087276_0.08976296690226793","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"pi-cache-optimizer","version":"2.5.4","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.4","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"d06e619e13b68042efe07d9200ad2d8c30b61c00","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.4.tgz","fileCount":5,"integrity":"sha512-Die4gMmK1noIIg414Yf1iquSk1mJ8zKQT7xCE3Fu15jNF3mtT1eSrvO0TniCJDIcEgjus0Ds51AnOjIwwKz7gw==","signatures":[{"sig":"MEUCIEaUdS9RWdeiCr3Op0GKSIU7ZYJS5q766OmeTKsDT0TOAiEAiOAeTato2UW7LvNv7yrEjQNPhrTOSjEJ7vZxFwp6TFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195025},"gitHead":"5ae580fa2bb6af9b63edc37bd3c95d11050f363b","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.4_1780212384905_0.9312596437670078","host":"s3://npm-registry-packages-npm-production"}},"2.5.5":{"name":"pi-cache-optimizer","version":"2.5.5","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.5","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"5a5085fc852d1d6db61b44011bcb33aa0219ae5b","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.5.tgz","fileCount":5,"integrity":"sha512-viFCRm4ZIzYL+CMba4QcCPO2nL7ZEjWGYFrzOGI4MLuCGZpQbmJ1q1+GuxcLDh/n7MKFagMHw0awyEgxFIe5kQ==","signatures":[{"sig":"MEUCIQCo0hVfTcNz2eOKp+oLqHFHG7BhrMQJzTz7xg7C+WD6ugIgfnu05DZLhlPSUHPRM7MTz80M47hsjNdGZy88GgWqAIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195251},"gitHead":"f7011d119cac1b030b4e35170df267812d9fe88b","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.5_1780243426551_0.9882991783836463","host":"s3://npm-registry-packages-npm-production"}},"2.5.6":{"name":"pi-cache-optimizer","version":"2.5.6","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.6","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"dfb607a32ed6196f32bac2aba430cfdf85c9b037","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.6.tgz","fileCount":5,"integrity":"sha512-i1Y4FyKIezOVhrGjf9Ip5DinV0vHpR/qyyupPZYEOTPVk2fLJb8bQq+R7OvS2VG/X/CrjyS8AS1tCMb63jXPiQ==","signatures":[{"sig":"MEUCIQDjx72pUZlSP/h5n8VDdMd5uwKyo+mYoh+Mtcmmk2D3nAIgWpCqqz27zqjRdEYFTPE5YuW5m5vk7r6nx1ignXxG4iE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198531},"gitHead":"062ac39e8ef5f46eaf8b555a7820f290fc8ccd24","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.6_1780678575265_0.009845693251296028","host":"s3://npm-registry-packages-npm-production"}},"2.5.7":{"name":"pi-cache-optimizer","version":"2.5.7","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.5.7","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"14b5bcb2d91150ab0776db69a825906eae0303fc","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.5.7.tgz","fileCount":5,"integrity":"sha512-gPF6wKJrjSOwfW8ueHwgNJeoLbJmngc933tc7wIiJ/heGHgfITT5fhOPsLwJHVRgSyZi/Bbf/gv8/YWYkcXtzw==","signatures":[{"sig":"MEUCIQD+ScMykl6eE6INi3+qN5sjgRjHZqRQLVQA7oqQ7TKN8AIgFlpo3gaOHEMcHsW1vV9QNyx1EI+RLHk1ivXFlYpIIig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200190},"gitHead":"e7df7740962e3952982782da6dabb984ee8da339","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.5.7_1780836017535_0.41351538141477695","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"pi-cache-optimizer","version":"2.6.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"8c39779a2b64b0d4dffbb694467b3dd48cc3b9ab","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.0.tgz","fileCount":5,"integrity":"sha512-b4E6/XY14HXGNUVQwGbjqLY83Xh3euZUXjxbPgrg2GNrLPL8X80BH+b/f+DIfxZHPOM2rx5MjvqZSR501ETJbw==","signatures":[{"sig":"MEYCIQCu5R4BYJeZ2xytwFvRcxfU+Pq87L4Z1g7d+6hFZQAFrwIhAPY913VqXbdAA8JtC80soRt2Cd0kDjBcJzrJnlK73gbt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252979},"gitHead":"90c9b67712a766783ab325af840829902de93f3f","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.0_1781254648468_0.8661758145938632","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"pi-cache-optimizer","version":"2.6.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"05527d3fe8ec267a12e3a4f42c7edb8e7d7d6c5c","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.1.tgz","fileCount":5,"integrity":"sha512-4xYyRQitxFtpDnl3HmQFGOCAAMfqxATQlCC/4PVgJYCzi2XiFk2J1blfox19iWeIK8BYgtaO/axBPYefvS9zQQ==","signatures":[{"sig":"MEUCIEdM8j5NGyUUDo+DT5fIDCQy/1a7ZSybFOfk6gfYyaBLAiEAuHroO8AIOmlX9niSup1MjlpDvcrRPa+9TN7TMgfuJYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252979},"gitHead":"04418cedf050cb16868c8919e1174cf0fb6a7cab","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.1_1781273340474_0.0661582121958475","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"pi-cache-optimizer","version":"2.6.2","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.2","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"4d0bba73f91f765c97dd7b5c27f3e452ba77fb6c","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.2.tgz","fileCount":5,"integrity":"sha512-+w8GvvHLSoeztHWmH3vOTnEtXu8Ng/AXFeQtX/B7ZrQT6lvj+yLFrBYlcUpFQdmt/ysxOqGcmoLxyOlqegfjiw==","signatures":[{"sig":"MEUCIQDZX637YJ0tL81YsyESaFzZfwQ7GFMD6wL24xDDQlwIuQIgNISBB2rxEodZreFrVz94O6Qht3pI3PIEoghLn7LxYlw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258710},"gitHead":"10100df058d41f50bdb328036dd39a07a63d52fb","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.2_1781313113520_0.8498752001934426","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"pi-cache-optimizer","version":"2.6.3","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.3","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"6f63eddda6727e251638c2b0ea8843fb5defa0e2","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.3.tgz","fileCount":5,"integrity":"sha512-tpStA2aECSMiEV2z4cuGOW6VJlO5CpiJ3igNd4OOSfIaQMh9zWJC5URI6tjCQf1jAn0RYzUiJ6rmMyCAvE8LaA==","signatures":[{"sig":"MEYCIQCX/z3QfMqVYSu87rrRCZVcxPIazuo3Ondj/wiUQUtzEwIhAK22QjBtx+g123O8MhWivNQgsA/dd4RSqxvu7ZiV+MZJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260263},"gitHead":"c5850961b57545fb42fe8647a95834174dec3974","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.3_1781403243502_0.4050179371401137","host":"s3://npm-registry-packages-npm-production"}},"2.6.4":{"name":"pi-cache-optimizer","version":"2.6.4","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.4","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"871172693c73357e417c4163f4e7d9621de5338c","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.4.tgz","fileCount":5,"integrity":"sha512-4Q/2lgtyTGlFW44EpKB5zs86iE7+um+6MMEG5zpYGQdQ2l12UPD+xQ6bwQNJlxVCFNLzzxJWNc50AjYR3c7EFw==","signatures":[{"sig":"MEQCIDTmu38mBn+PtCT0ZPRJIj6kU9p2LMUh6CTUDbS++joSAiBHq7+tePCZuTMXTMydfbX9Qcpw/aC8mLcTnhj0OGL7TA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267961},"gitHead":"6ceff6a1575ad7527d7693c49da28e83e7a97361","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.4_1781426927516_0.9157679726146015","host":"s3://npm-registry-packages-npm-production"}},"2.6.5":{"name":"pi-cache-optimizer","version":"2.6.5","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.5","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"fe36e0c62b2fe7db97e1bbbbb1665fb58561ce2a","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.5.tgz","fileCount":5,"integrity":"sha512-C7VMs0LeRxozKeOJzrhoHoji05vZGSHJvSUT3LiN/UORvGhZ1ol5j1wx8WByLY6Fvhwvh+A45tJ0czVJvaHTQg==","signatures":[{"sig":"MEYCIQDDYwHU8buyGA1TuC8eP9OOIvKfpeuk9npluhbgHgOekQIhAO2uUjABaih+X8gipYktu0dj5xt6R5EEKA2TGPf4FJ5q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271278},"gitHead":"cb91189f03f67241d000aaf0cb971fa0452d5767","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.5_1781448014706_0.4867940049586468","host":"s3://npm-registry-packages-npm-production"}},"2.6.6":{"name":"pi-cache-optimizer","version":"2.6.6","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.6","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"06e2efbb37a08e0e096b2c3084e340eb37c010d6","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.6.tgz","fileCount":5,"integrity":"sha512-L0tXI2QoeQjBXck18eRMLFmWuSMlfnYx3K77EaztEerhbcp0eK9My3/akN+b4NMGZLIDPjQc+dSqqDYi4AmtWA==","signatures":[{"sig":"MEUCIQDg7/WBz9070gYjhYbQHcf/ddmtFA7BbtWIcbbm4Fc/lwIgNc4rl6hliGTEMRvVNLJD4ivTeZxlGgp7MaY/5WNmpDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286983},"gitHead":"c505a84aee3c4f91139bb4feb577ecd06c5d2cca","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.7","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.6_1781797894776_0.4256733569211326","host":"s3://npm-registry-packages-npm-production"}},"2.6.7":{"name":"pi-cache-optimizer","version":"2.6.7","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.7","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"634168d155b8d283fa8480eaa9b7eee2235e12b4","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.7.tgz","fileCount":5,"integrity":"sha512-AZ2VTYUrQ36AYByl90bJnhLxnGUL1Eb0EYmDpGarrdsyHGdUoBU6NTgMvno/68PxjeqZtuCpnnuvafGYwz4rsg==","signatures":[{"sig":"MEUCIQCuwuTv8STwjFv+OvtoKYZ4w1Hk8hwuIpQV4BRoXhqBtwIgMDvuMKeVU3rPTPiyadpod9j7ko86WmM9T2B5jXQughA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295498},"gitHead":"1a57134fef30c9d0f130e15fa904f1bfa07dc59c","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.7_1781842534392_0.6921395199619855","host":"s3://npm-registry-packages-npm-production"}},"2.6.9":{"name":"pi-cache-optimizer","version":"2.6.9","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.9","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"42451b35031d2e84ba612a1f00305afacf2ad137","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.9.tgz","fileCount":5,"integrity":"sha512-TR7Cvdi8eC0He9/ZHw1CRIw31H/LyfdlF8oQqdWWHC8gPnqI8gdgYu7OdxZ01GnZ32ebWZ7QyZpDSzkkWjeehw==","signatures":[{"sig":"MEUCIHEV0/24xo+h31j6eHkUo343lMiS5X0PTDfMWp0r81RsAiEAqAzNOj+f+z2HSlDdBnWLWA7XBmjT8NKYL9YP7ZHIdqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318424},"gitHead":"8b2543eb9e89f19b968dbf1c3d8f95d93c54c8d4","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.9_1782112881598_0.44034620822760506","host":"s3://npm-registry-packages-npm-production"}},"2.6.10":{"name":"pi-cache-optimizer","version":"2.6.10","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.10","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"c5ff541fb39a3a32dd3bf455f0a265bcfeec4142","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.10.tgz","fileCount":5,"integrity":"sha512-Fwn0PWEY8XOtB2mTc7N10iZgQt3aU+yZ6p2wcpoAOjTkn5w6bNqd3EpZ2zdQ0gld0W8BfFJzKovOg9VBAP6Ufg==","signatures":[{"sig":"MEQCIFwePFUKrTMQi04yhhmoB/eA+lvBXFxre8sYDs1KJvXwAiASwbE8cufXURjfNmZHY1mWdxLp7kgPrgGILyZMCcNalA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320913},"gitHead":"b991885535bb456304d156e8d3fd81edbd36d044","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.10_1782219421766_0.565299152666529","host":"s3://npm-registry-packages-npm-production"}},"2.6.11":{"name":"pi-cache-optimizer","version":"2.6.11","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.11","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"106d46a50d568121a1dd25478422b2d7e29db823","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.11.tgz","fileCount":5,"integrity":"sha512-+2kquDUentRGuRgSr61KlZp5hwfvx5V0XQVpWqtOvthOvnff7R8Mvq/v1QO9IfA1hQIi4CgpV9/ecjM1aq1gKQ==","signatures":[{"sig":"MEUCIQDptMqYIluts5X47T0WbpQFC5UZ8ivTIxiW6NbPY0pklgIgHrkt3SaTEhi5nxNPDHxozqEH60l6zZG5h0yQb8izVbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326240},"gitHead":"94776373765b2a0f2824bbb828aebd52744cde88","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.11_1782311846567_0.10250377793549448","host":"s3://npm-registry-packages-npm-production"}},"2.6.12":{"name":"pi-cache-optimizer","version":"2.6.12","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.12","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"d7eab05fff19d11ea499853712f30f459ba0d83e","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.12.tgz","fileCount":5,"integrity":"sha512-JGm/x0yZowpLYUyhuBCwKcSPFa7otIMy5C2QlXLPKicNndGuUO2ElJv25VamX+9JQGP8SYkFTdH/o8jP8LLvig==","signatures":[{"sig":"MEQCIGBAFwovZIV6qUpzFQ4GC2pyFGQ3wVa/uq7cm0aBv9WtAiBdXAXpN7co8Sv7vo6UbTSU6lynfu7D52oo4seovRqotA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326911},"gitHead":"88d670b326b479986b454d33649556a7f91d5263","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.12_1782531517145_0.128211512329502","host":"s3://npm-registry-packages-npm-production"}},"2.6.13":{"name":"pi-cache-optimizer","version":"2.6.13","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.13","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"81225453db4bdde766aef2d051fed82e44290860","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.13.tgz","fileCount":5,"integrity":"sha512-SBP3oTYxBE7qCirY2GuXHcKr4wPme1QYRxDP12KgIKoUWFPMPr2I0eXPlssZtibXz2Qb6shucBu+u+gJLKt6+g==","signatures":[{"sig":"MEUCIDDXaDGYoVXPLgvKfzKcVZgjhp+p1K5CB5w6A5nV06+uAiEAhZeqhBfWIDvVU2sOZAefwHKK4jPKaN3WzGQxVguhuEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329899},"gitHead":"bb2df11e4b1eb3af721922c9372247ec87ef59ec","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.13_1782557379901_0.657055883895094","host":"s3://npm-registry-packages-npm-production"}},"2.6.14":{"name":"pi-cache-optimizer","version":"2.6.14","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.14","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"0951f93f6cdd733f2722d69625bf9977e3abfd1a","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.14.tgz","fileCount":5,"integrity":"sha512-vS8epCTNiVKcZjEzPFSvZshqcQIZE+kNBjE9psdyVJ2qXdrUXl3a+dybiRDZfYr9uOWcF4zYmOkK21mwhRCg/Q==","signatures":[{"sig":"MEYCIQDL8lfA6eLkYDX517IjpmdF7+CgDB+GtGanW/vKYFGtRgIhAPzn7/ZuZh0cosV2ZyaMNTvB+lVRkBEcTK3MQbU5wDd8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335074},"gitHead":"793bcc2e7d37fd250c82fe130f78e9f78803393f","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.14_1782560692000_0.9301233436901106","host":"s3://npm-registry-packages-npm-production"}},"2.6.15":{"name":"pi-cache-optimizer","version":"2.6.15","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.15","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"e30ab1be9b1e2f7af15ffc3fd066571202661b89","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.15.tgz","fileCount":5,"integrity":"sha512-iegXWWcgDWhwF9C96J8vns1iN7ofEeHrLyp1t51aTCtv2j//jbQ7lsfNrLzD2jfhA1CTvN/5F+0D7yf7quW42g==","signatures":[{"sig":"MEQCIFY8bfl/yCvLgpN1n4vDqfPICHH1jVSxED6ldFnUs3YvAiARtYJmaLKuJ5kOItG5IRgWLwY2m32+lG3vcEeafkINdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335420},"gitHead":"177d37cf74364fadbac42067c3b66df2728936e2","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.15_1782572669306_0.48849750868283026","host":"s3://npm-registry-packages-npm-production"}},"2.6.16":{"name":"pi-cache-optimizer","version":"2.6.16","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.16","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"665515ffdd338783c31944cf0cbb09dddb4274a7","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.16.tgz","fileCount":5,"integrity":"sha512-8zvScbFM6T1jJUpbTpS2gsn1EW45a5KReCIcg7SxYdOgJK2PdjzOaw0kF/SZ/GT5yfipX/4s+ZMKeJ/fmzxW4Q==","signatures":[{"sig":"MEYCIQCRty20+CYjptfbkt9pb6cBSGCKd9ft9YvXtlBQTfwI2AIhAIdoF7Fzl+tBbOfWbfznoV5G5+1+pznPnYARtKxLrcoJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338702},"gitHead":"0468f8339cf14e952910a008733f3c7c309aa91e","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.16_1782574520161_0.8455546943879637","host":"s3://npm-registry-packages-npm-production"}},"2.6.17":{"name":"pi-cache-optimizer","version":"2.6.17","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.17","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"33a8438445848f432555a2f100420b42e9438381","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.17.tgz","fileCount":5,"integrity":"sha512-aJv1pGU5XNKJ0PBCfMrfAe7GfWndJo6I/3I3ZR9QvYawl194ozn0PuVGqzs6qCaAIYws/tLh/MQAh8PRV7yssQ==","signatures":[{"sig":"MEUCIGH4PM+vdMI54VVdZ40wYvRlMAqvTzMc2EC2PgC1pTPgAiEAmrRijZG0JpXpCWe/hFV2cNqZAS5SrLu2pqo1aR+12Qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338839},"gitHead":"d42b4b4a7bf9bd8467ed6e64294269b18c8dd749","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.17_1783421556529_0.44220044145860604","host":"s3://npm-registry-packages-npm-production"}},"2.6.18":{"name":"pi-cache-optimizer","version":"2.6.18","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.18","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"5a179e0a096a89316f977db73568eb796400ab2c","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.18.tgz","fileCount":5,"integrity":"sha512-Wny3RZKxwh5lHZg5+1XnckPTLw2gyfJ85yz13jmwRZ9NDxaOkZpfapUxJa4+aFGe98rirvihFqEQBTtBENs1Ow==","signatures":[{"sig":"MEUCICKpAqUuvG9+eS1p3jCkuQD5mw/4My2PDopowzy0IGanAiEA3g5VveesLVLUJgnIBCC43TYVjc5SCRfC9UHMAnrGovM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342343},"gitHead":"8b12aef8c7f1f262f547355bf51c76e752b46992","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.18_1784424627475_0.79089866000588","host":"s3://npm-registry-packages-npm-production"}},"2.6.20":{"name":"pi-cache-optimizer","version":"2.6.20","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.20","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"03badac8ce685bb1ca92fe4f5e0250404fbbbed2","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.20.tgz","fileCount":5,"integrity":"sha512-eZJM6yLMzZ1zaI+N9JTE+lAZ9zpGhpsBGTl9tCezScHP2qbTbxJbxLlPzamvzXDJAft5Vz7j7XbkUD372zkPEQ==","signatures":[{"sig":"MEUCIG4Gxy0fEV1C8ogkfTXc/JtfEx+jkEVt/YjgTsGyP8cBAiEAzVfcW438amSD69JjKx967vMiMW2IFS2/V6PWX5jNq6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348101},"gitHead":"8f7ddc101bee0e4c4829d70913963094f6c47d7d","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.20_1784955287194_0.9488990202139034","host":"s3://npm-registry-packages-npm-production"}},"2.6.21":{"name":"pi-cache-optimizer","version":"2.6.21","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.21","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"ead7387829b49f8ee162b20cf00afea66b7f887f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.21.tgz","fileCount":5,"integrity":"sha512-m7g6zvaoex93oCOpHtfUEbeQh4Lv0yfYZ0s4gAHDd+J3lZqbN/NtGDmVaEx0u+4fv8764/MLzSzK26BqW1+NEQ==","signatures":[{"sig":"MEYCIQCCGl7hnP/ERn43aWs3w4sWjABW6eMsAim51BA/UEtoIgIhAOZcL7a5JV90rcZFhg0wderDBRDxHVQLx3lR54M+VhJ7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348750},"gitHead":"cf47581be892018405446964543af11a4e349769","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.21_1784956592500_0.8906093601691338","host":"s3://npm-registry-packages-npm-production"}},"2.6.22":{"name":"pi-cache-optimizer","version":"2.6.22","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.22","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"f038fb8c8a6cf0993d8108887fc8b1be1699b549","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.22.tgz","fileCount":5,"integrity":"sha512-4P9KMGDZip58nvvsyjMaOQUCeuw/R3lcUeH9gLKDK3sMgkVCjqluV28uBJMitY96rJwQKamvLBMs5ADf345bJQ==","signatures":[{"sig":"MEUCIQDCeo477IBvLFLx7uBVsoQvXKHjSEZBnKJkjwnq6UMrNgIgUXK1UnPu9sSdeXa6xD2p/qqoHbNccOqtGPFa4+cynkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353227},"gitHead":"0406d5ae8cfa2c168ea2b2ca4aab979496727c1e","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.22_1785031797208_0.22734403416758098","host":"s3://npm-registry-packages-npm-production"}},"2.6.23":{"name":"pi-cache-optimizer","version":"2.6.23","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.23","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"05b9f3b0d9cdb44a6a7f76e623b1e9538943e4e4","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.23.tgz","fileCount":5,"integrity":"sha512-zMLRwIrebRPU4JgXLieUHv8qEm0FgwzP2MYvtItnCrj/Rn/qulfTRA21XeIvKOoN4cwCGl0DCDLYb7ykYFNyQw==","signatures":[{"sig":"MEQCIAgSm+vWzW1HgkORE+6JzOYEo8bTq3uxyLGY1G0AYeFGAiA6VaaCcu6lZOrebU7Ets06ivS87K5oteS89Z5BwHDBcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357338},"gitHead":"3b0366c361eb09df640c5b326ecd40954ed71d81","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.23_1785077181198_0.181101291264661","host":"s3://npm-registry-packages-npm-production"}},"2.6.24":{"name":"pi-cache-optimizer","version":"2.6.24","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.24","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"296c107c802cc2dd5b563bca8da0fcd049ea24ad","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.24.tgz","fileCount":5,"integrity":"sha512-+zEyqCJ5aFNAJLYKdfMFCyS5TZ+uaMpBbRgWsnQdStmZfm0aG6EHgXz5orH++bck98U4W6SBzjlRZjAU/fwGrQ==","signatures":[{"sig":"MEUCIBD/D/LfYAmyTG4uxMlMBFGv0jcB4NBNYd1Xa56YzmDEAiEAozvW5cai91571SkBVRRbipA+zeWAAkYBI0myJr8zO/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363017},"gitHead":"78114a78a1c37d41d5aa2446a2a6d1945643ed34","_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.24_1785086052642_0.5572260970184522","host":"s3://npm-registry-packages-npm-production"}},"2.6.25":{"name":"pi-cache-optimizer","version":"2.6.25","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.6.25","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"5390b6867e061091d1d0bc15bdd17db8d8a7d907","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.6.25.tgz","fileCount":5,"integrity":"sha512-MF9mRapNFyFszbJgZXp1FnPeZw2R4ykC5jBgHSnV821PfHIvLszBP+Z1emSHBe06z6vauGC5Yl9/ZfH0iYN+Og==","signatures":[{"sig":"MEUCICL3u+oC3ea4OQI/m/QG293q5xzrpYh1Y9geIjxOxFmmAiEAiKPhCOcn6EgFCVR0qsdZ+PwLGHDNmaLaMTVOu+9FRsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382541},"gitHead":"28a0b4626f58fccbb90ee36465786abf65b0d398","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.7","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.6.25_1785140295856_0.9160160349184032","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"pi-cache-optimizer","version":"2.7.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.7.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"09c6ecc9d7ddb35729e1621d6b5234c3cd38ba4f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.7.0.tgz","fileCount":5,"integrity":"sha512-txSMs+BsJVWVaeryamXOYGe87vF84V3hZCsc6RzeQNHjpR34eTCnDcNEB1Efkuercs/HNGNj8SnLYqHou9qpWg==","signatures":[{"sig":"MEUCIFvkQqdWBqgTRWFZl7JwBUZHk1/RrnNgQT9cFwddv4+9AiEA+pl/27Ta0LKG/eQoQc44zIxLSDhCnLWJZSOuIMceq7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391401},"gitHead":"8722116aaecaf794da8cde6db802784d82b05400","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.7.0_1785764751064_0.30544388148112","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"pi-cache-optimizer","version":"2.7.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.7.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"6d0286f1d4b51867d4e7b38ea0243722cb962366","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.7.1.tgz","fileCount":5,"integrity":"sha512-mOOyzxRGs/hNJpalUlpVM7jGoHvwfPHLn9vNXQovG2FsI3HO1cP4lQ/O64RfKwAp5MI3AVubEimC/fpa0OGvFg==","signatures":[{"sig":"MEYCIQCN2RrHk4dayRAHuOAlQk3/XFPBtFGFgirWet5KLLrr5wIhAIfMjDCmKAboviizfsPu4ru/ezXzyXvXdNTyHVJq+Hjd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393038},"gitHead":"f766ea8f0490c617071724ea4cc48cdabfb2683a","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.7.1_1785766365279_0.8309567308258266","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"pi-cache-optimizer","version":"2.8.0","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.0","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"464475cd44c860f1fcdb9410fd25cd8bc851ad1d","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.0.tgz","fileCount":5,"integrity":"sha512-mV98N9d5ybHMdTuN87t+YncNcdF2MAVLWXceGjsX8Pf57eEmJE1q53DwM/C+bORT1HjG/XzfKz56bSq+aGSQJg==","signatures":[{"sig":"MEQCIGN0VZgdj8H1hxdTjdaNHIFft9BN7QfyzFZoBEHfRN2pAiAHLLULLEUtnF86XIyo4zX6dfkibFgJgCUS9+2O6rWBQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395454},"gitHead":"7517c2156807ebc120bd61ec26f28994a64986cd","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.0_1785781286098_0.43227860819644626","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"pi-cache-optimizer","version":"2.8.1","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.1","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"06e0b90ff2321c35a10038e47553a2ba19303f6f","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.1.tgz","fileCount":5,"integrity":"sha512-FQtKIYjsn0b/2d9hxKaq6jucAWxMD2OxAPB2Yi8JiIxL+gmQGLfLBBTDxnXptYjeTbjnQ+Mo8P49ig8uVX8KPQ==","signatures":[{"sig":"MEQCIAehQfUtFBqcAXOBA2xP90nC0rEgvWNZJ9aeKZAKOmYDAiBREz9wH0mP8R85bfGl0EA2jO0ALVRjr8VyWGBVqQPSeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":399652},"gitHead":"ce521e793c5d676632914fcc5df00fa917ddc70a","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"10.9.3","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.1_1786153469273_0.38792676706174856","host":"s3://npm-registry-packages-npm-production"}},"2.8.2":{"name":"pi-cache-optimizer","version":"2.8.2","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.2","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"3abd68e2583a15658d4706162588fb79946393c2","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.2.tgz","fileCount":5,"integrity":"sha512-z5Ff2ZUF+U4O3gpV/uKTvO5046Zx/km1nDAw22b1GUKb8yslDAo1EZMlxTFTex9XGsmg/MVEt3FRmmpNNlpWvQ==","signatures":[{"sig":"MEQCIC3M8F6ssTAaarQaqFMGe5CkwdiFDug7w35RP7mLhoLdAiBeEfkPrvlX/7VtjU5rhwRYwXyUfNIlS0nJ6yBjBxvuFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":400252},"gitHead":"dfa60b2c3e92f4a15363664c546d2042bded0b3f","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register tests/review-findings.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.2_1786281224920_0.2536888754210114","host":"s3://npm-registry-packages-npm-production"}},"2.8.3":{"name":"pi-cache-optimizer","version":"2.8.3","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.3","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"13490d88e0de3c43cccc1727aedefc936bc064e0","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.3.tgz","fileCount":5,"integrity":"sha512-tAE0IcfoHo9s2u5VX2uFXkFYX7YId3uEcsjI1lWfiJI4jU8SzQHj1xqimM49pHSmUo3EVN/1RUm/tx5BLj2VTg==","signatures":[{"sig":"MEYCIQDwr9dZEW9Lk9X1pc5WTxDRP0WnKM2HgQLrpwvpaztRgQIhAKn0QGNfqZiwcOo/bj5GkK55SIWY+T3wIRcWGCKUQbwe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395555},"gitHead":"f5c1538b7fef2869cb5dd4b27c8c011558cad85c","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.3_1786973377123_0.011040119606667842","host":"s3://npm-registry-packages-npm-production"}},"2.8.4":{"name":"pi-cache-optimizer","version":"2.8.4","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.4","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"55be828ca688ad6c2bffc3a3006c1e68fcafaecc","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.4.tgz","fileCount":5,"integrity":"sha512-HvP+ziPZlaODiFMjh56Kg6Z79FsUtS20yCKBclBDRi4Z1Zx9/e/G8qgrBGdt4vOoGKvJso2/xnfO9/eKxVvU/w==","signatures":[{"sig":"MEQCIH9EsjSvBJkmyA5qQtwSUUaA58ia64jSzaW082VL8WlWAiAYBXgPafsWOyqLOO/zyUZ4d5ELzzv0g/VmjXwPmUdyFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":419544},"gitHead":"66805e7c0e6fe4ea0b43f55862fe3fde8e612920","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.4_1787314882517_0.8378550554745356","host":"s3://npm-registry-packages-npm-production"}},"2.8.5":{"name":"pi-cache-optimizer","version":"2.8.5","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.5","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"089af43b56587706d22c686eb9cfa2d1c4065a06","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.5.tgz","fileCount":5,"integrity":"sha512-QUuao6haJDuC78ZjZAj66AsPdHppmLV6enDuUv1S4pJaFV0HCvBl8Wd+A/ov1K5wmRaGEKzDoMrpp2+3gEnM+A==","signatures":[{"sig":"MEYCIQDkT43AR3tj8KD9WTuZ154JtJ9OvgYlXBNAXEJwyH3uDAIhAJP3HlkWW7hQPOWWBjBrVkny1dFvgMb29P8nKPNy9ezT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436911},"gitHead":"7f37f70dbf96b09d7bcc7c3ec8960c0d282d56e2","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.5_1787360591938_0.2660553616530845","host":"s3://npm-registry-packages-npm-production"}},"2.8.6":{"name":"pi-cache-optimizer","version":"2.8.6","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.6","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"ae97c88c9d7ab34dd408aa10c574c7a37b63fb7d","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.6.tgz","fileCount":5,"integrity":"sha512-QXKLJnukHn1ZQhywAu1O5SrOXoEMm/ZRrKO9pI5CERgmHrE2zgq/KH97Hs1RmVrszTlH9iVw2KTwndIguAvTVg==","signatures":[{"sig":"MEYCIQCQ5urtaViJIAfrEEtJkyxRDLKoVaWEwbow3sjj+QxLQgIhAI2MM/sW7Hx68iHG4saipZu2+y+pGTOXuMmbY1ArZvOl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439467},"gitHead":"ffe55ed307c057c7fa5d2d2872d19f43b9318943","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.6_1787493990481_0.04120487662349226","host":"s3://npm-registry-packages-npm-production"}},"2.8.7":{"name":"pi-cache-optimizer","version":"2.8.7","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.7","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"40502bcc939ae163295a62f7ac5f668525d5a3d2","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.7.tgz","fileCount":5,"integrity":"sha512-p73CgW2fJG0yqLvM/3aZPlKczgvtPaAe1ZgBNFKGnw0YaxL7/6YUjaYBEsmimYAncpgTk2iRN6ftJYj7xz4f+g==","signatures":[{"sig":"MEYCIQCIkfi9LmJ/9+IZMf0F/nhW/FtYmeBOX/l8qkvEsrWVEwIhAOSmQamtTtiZ6iH1wasiK1fpQWt/D0T/TwlwfdwVFQF3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536462},"gitHead":"482f8bbaa65844962af21a6be0be648602532743","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"freescheme","email":"freephp@gmail.com"},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.16.0","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.7_1788513867966_0.5181063762635036","host":"s3://npm-registry-packages-npm-production"}},"2.8.8":{"name":"pi-cache-optimizer","version":"2.8.8","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.8","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"06cfdba187440b98134f11a8eed21db9f464bfbc","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.8.tgz","fileCount":5,"integrity":"sha512-85OR2QnLQS7Rl8RHmsJ+UP+suW06LRw9aP+v6f7Tp2REpRwx90VbJz3WBwh0fY3DMy7SXdlNNoiX99ri+ynbCg==","signatures":[{"sig":"MEQCIDuBGPVy8ln0QWZLASyW4yBRgMN4qUfTSHV+aLIW8/oKAiAVow+whD2LsCVzaJYUpz1a09F9nmMAuTxcme1Ti3h3pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDskC+xZzn22A6UUB4NNAOuWKNg7srakBbnMpQ86SpgqAiEAtcPskQd3VcjorALMqjpMxeIsbPDlhnBDJy8BrqkK5Dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-cache-optimizer@2.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569590},"gitHead":"017d7d5981829d7d539f9634a7c8be87785fb29e","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0707008a-56c5-407d-94d0-6af339e8f8d7"}},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.5.1","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-server":"0.85.0","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.8_1789194303733_0.2451451200002417","host":"s3://npm-registry-packages-npm-production"}},"2.8.9":{"name":"pi-cache-optimizer","version":"2.8.9","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.9","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"57e987a1bcbc55e5265e78116336ae5428487692","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.9.tgz","fileCount":5,"integrity":"sha512-ofrp+gF6j97q8uMeItJshggVBr+p+bcaSYUDAhTzlto/+i8zoDNaChq12Edv1X1Yra4APODlUr2VuaaX5B0XtA==","signatures":[{"sig":"MEUCIQCsOm8kuN+cLLBzwTKBJlLTOQU6WiqDFMLwqRFzeXeF9gIga/xCQPLlNSuwOVwtl51xBq5xLkUz/Is3Fna97UoN/lA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBJ3GBVHphLFiyJ7HvJDNOicjSi5qvJf0s17Hl+jIoUmAiBV5Blp3DyzyJnf7ErKIzV4PSuSpyVrfs5AUXqLASLzQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-cache-optimizer@2.8.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570644},"gitHead":"34267cfd9e7bcb1d50b2abd57a4a676be2a17c5d","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0707008a-56c5-407d-94d0-6af339e8f8d7"}},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.5.1","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-server":"0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.9_1789202362297_0.2198785937384622","host":"s3://npm-registry-packages-npm-production"}},"2.8.10":{"name":"pi-cache-optimizer","version":"2.8.10","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"author":{"name":"freescheme"},"license":"MIT","_id":"pi-cache-optimizer@2.8.10","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"dist":{"shasum":"080f219c13d98f93dc75811f5b642ccc885c347a","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.10.tgz","fileCount":5,"integrity":"sha512-u+Da+NDQROJuP0T1KTGLkrFRaPF0pcUCuI6KA5G2gGO/a3Z+IfoNxDF9+EmVAQ1vcu/kuQCBzvqb5QekhwAAzg==","signatures":[{"sig":"MEQCIDBPBoLTqJLcicdkWABhN5L8+AijlJ6Jp3Pv9HUfsPk2AiAHSOPvIy4rXrBkGd1KZ0ek1OS9FXf8Lw4kd8CK25brRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC6rQv3wATE488zygNNDMp+e6cJ3l2L5w1bAPCtpU6WzQIhAOUfxzGG9FW9L11WBIUf2wco9cZcucQDAi3+5NqdMo4p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-cache-optimizer@2.8.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":581542},"gitHead":"dc9be50b89957a37f8e80ef42378e3841ba8665a","imports":{"#extension":"./index.ts"},"scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0707008a-56c5-407d-94d0-6af339e8f8d7"}},"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.5.1","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-server":"0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-cache-optimizer_2.8.10_1789205844644_0.8049479244395463","host":"s3://npm-registry-packages-npm-production"}},"2.8.11":{"pi":{"image":"https://img.shields.io/badge/Pi-Cache%20Optimizer-4A90D9","extensions":["./index.ts"]},"_id":"pi-cache-optimizer@2.8.11","bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"dist":{"shasum":"082b435f1715f91450f3e417da32f9318dccf196","tarball":"https://registry.npmjs.org/pi-cache-optimizer/-/pi-cache-optimizer-2.8.11.tgz","fileCount":5,"integrity":"sha512-n0L98xYX2afCwxFoH/FzeXsRi+lX5ph/mbP5mPIZ0TCUgHUjkG3QJKzRjoqIGsxULEP+OAYWFzkTGgDVOuWNQA==","signatures":[{"sig":"MEQCIGZQeJNIVqsLzoIxEKForWEcZPftjSbRFyab0F4ICw5DAiAjFTPigdaUpl2GCrdTCb0hLJ/5UuGIP+cEihDz6o0vEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID/0wUS8O2vhkpSFA5xGId7LfefvBbfCgL/qHURW01QkAiEA/DZlpx2GY6SaHaCiCN5T/jGZt0iSwAn4DUslIY8huTI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-cache-optimizer@2.8.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":591638},"name":"pi-cache-optimizer","author":{"name":"freescheme"},"gitHead":"cb05358ee873901f7569a8c67a456fd2bd0931d2","imports":{"#extension":"./index.ts"},"license":"MIT","scripts":{"test":"node --import jiti/register --test tests/*.test.ts","check":"npm run typecheck && npm test && npm run check:diff && npm run check:pack","typecheck":"tsc --noEmit --pretty false","check:diff":"git diff --check","check:pack":"npm pack --dry-run --cache node_modules/.cache/npm"},"version":"2.8.11","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0707008a-56c5-407d-94d0-6af339e8f8d7"}},"homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"_npmVersion":"11.5.1","description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","directories":{},"maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","typescript":"^5.8.3","@types/node":"^22.0.0","@earendil-works/pi-server":"0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.82.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-cache-optimizer_2.8.11_1790215211742_0.5249823335821548"}}},"time":{"created":"2026-05-16T04:23:00.983Z","modified":"2026-09-24T02:00:12.606Z","2.0.0":"2026-05-16T04:23:01.228Z","2.0.1":"2026-05-16T04:42:32.222Z","2.0.2":"2026-05-17T08:39:18.720Z","2.1.0":"2026-05-17T11:53:20.952Z","2.1.1":"2026-05-17T13:04:55.644Z","2.2.0":"2026-05-17T15:52:02.881Z","2.2.1":"2026-05-18T02:35:05.610Z","2.3.0":"2026-05-20T13:02:58.405Z","2.4.0":"2026-05-22T08:22:40.368Z","2.4.1":"2026-05-23T03:02:05.023Z","2.4.2":"2026-05-23T11:33:46.005Z","2.4.3":"2026-05-23T14:30:16.309Z","2.4.4":"2026-05-23T14:47:31.724Z","2.4.5":"2026-05-23T17:14:42.606Z","2.4.6":"2026-05-23T17:36:35.716Z","2.4.7":"2026-05-23T23:41:41.288Z","2.4.8":"2026-05-24T01:37:58.423Z","2.4.9":"2026-05-24T02:14:21.709Z","2.5.0":"2026-05-24T13:12:46.517Z","2.5.1":"2026-05-24T19:05:26.933Z","2.5.2":"2026-05-26T08:22:47.717Z","2.5.3":"2026-05-26T23:28:07.434Z","2.5.4":"2026-05-31T07:26:25.086Z","2.5.5":"2026-05-31T16:03:46.749Z","2.5.6":"2026-06-05T16:56:15.431Z","2.5.7":"2026-06-07T12:40:17.705Z","2.6.0":"2026-06-12T08:57:28.640Z","2.6.1":"2026-06-12T14:09:00.645Z","2.6.2":"2026-06-13T01:11:53.672Z","2.6.3":"2026-06-14T02:14:03.720Z","2.6.4":"2026-06-14T08:48:47.653Z","2.6.5":"2026-06-14T14:40:14.862Z","2.6.6":"2026-06-18T15:51:34.899Z","2.6.7":"2026-06-19T04:15:34.536Z","2.6.9":"2026-06-22T07:21:21.776Z","2.6.10":"2026-06-23T12:57:01.936Z","2.6.11":"2026-06-24T14:37:26.742Z","2.6.12":"2026-06-27T03:38:37.297Z","2.6.13":"2026-06-27T10:49:40.045Z","2.6.14":"2026-06-27T11:44:52.155Z","2.6.15":"2026-06-27T15:04:29.459Z","2.6.16":"2026-06-27T15:35:20.320Z","2.6.17":"2026-07-07T10:52:36.662Z","2.6.18":"2026-07-19T01:30:27.635Z","2.6.20":"2026-07-25T04:54:47.374Z","2.6.21":"2026-07-25T05:16:32.675Z","2.6.22":"2026-07-26T02:09:57.360Z","2.6.23":"2026-07-26T14:46:21.375Z","2.6.24":"2026-07-26T17:14:12.895Z","2.6.25":"2026-07-27T08:18:16.006Z","2.7.0":"2026-08-03T13:45:51.181Z","2.7.1":"2026-08-03T14:12:45.422Z","2.8.0":"2026-08-03T18:21:26.215Z","2.8.1":"2026-08-08T01:44:29.404Z","2.8.2":"2026-08-09T13:13:45.093Z","2.8.3":"2026-08-17T13:29:37.246Z","2.8.4":"2026-08-21T12:21:22.666Z","2.8.5":"2026-08-22T01:03:12.097Z","2.8.6":"2026-08-23T14:06:30.629Z","2.8.7":"2026-09-04T09:24:28.099Z","2.8.8":"2026-09-12T06:25:03.825Z","2.8.9":"2026-09-12T08:39:22.405Z","2.8.10":"2026-09-12T09:37:24.733Z","2.8.11":"2026-09-24T02:00:11.843Z"},"bugs":{"url":"https://github.com/jiangge/pi-cache-optimizer/issues"},"author":{"name":"freescheme"},"license":"MIT","homepage":"https://github.com/jiangge/pi-cache-optimizer#readme","keywords":["pi-package","deepseek","openai","claude","gemini","cache","kv-cache","prompt-cache","optimizer"],"repository":{"url":"git+https://github.com/jiangge/pi-cache-optimizer.git","type":"git"},"description":"Improve Pi prompt/KV cache hit rates with stable prompts, OpenAI-compatible cache keys, proxy compat warnings, and footer cache stats.","maintainers":[{"name":"freescheme","email":"freephp@gmail.com"}],"readme":"# Pi Cache Optimizer\n\n[![CI](https://github.com/jiangge/pi-cache-optimizer/actions/workflows/ci.yml/badge.svg)](https://github.com/jiangge/pi-cache-optimizer/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/pi-cache-optimizer.svg)](https://www.npmjs.com/package/pi-cache-optimizer)\n[![npm downloads](https://img.shields.io/npm/dm/pi-cache-optimizer.svg)](https://www.npmjs.com/package/pi-cache-optimizer)\n[![license](https://img.shields.io/npm/l/pi-cache-optimizer.svg)](./LICENSE)\n\n[English README](./README.md)\n\n用于提升 Pi 中 provider 侧 KV Cache / Prompt Cache 命中率的扩展：把稳定 prompt 内容前置，给 OpenAI-compatible 请求补保守的 `prompt_cache_key`，提示代理渠道常见缓存路由兼容问题，并在底部显示只读缓存统计。\n\n> 本包已从 `pi-deepseek-cache-optimizer` 改名。已有底部统计会自动迁移。正常 hook 运行时扩展不会触碰 Pi 的 `models.json`（默认 `~/.pi/agent/models.json`；自定义 agent 目录使用 `PI_CODING_AGENT_DIR`）；只有 `/cache-optimizer fix` 和 `/cache-optimizer rollback` 可在展示交互式预览、风险提示并得到明确确认后写入，且都会先创建带时间戳的自动备份。\n\n## 目录\n\n- [功能](#功能)\n- [安装](#安装)\n- [命令](#命令)\n- [持久 Opt-out](#持久-opt-out)\n- [按模型关闭 `prompt_cache_key`](#按模型关闭-prompt_cache_key)\n- [Opt-in 确定性工具排序](#opt-in-确定性工具排序)\n- [Footer 缓存统计模式](#footer-缓存统计模式)\n- [OpenAI-compatible 代理配置](#openai-compatible-代理配置)\n- [Adaptive thinking 模型](#adaptive-thinking-模型)\n- [使用 `/cache-optimizer fix` 自动修复](#使用-cache-optimizer-fix-自动修复)\n- [DeepSeek 协议安全与回滚](#deepseek-协议安全与回滚)\n- [Footer 统计](#footer-统计)\n- [Router / Virtual-channel 扩展作者指南](#router--virtual-channel-扩展作者指南)\n- [卸载](#卸载)\n- [验证效果](#验证效果)\n- [License](#license)\n\n## 功能\n\n- 将能唯一定位的稳定 system prompt 内容移动到动态上下文之前。如果同一候选出现多次（例如动态上下文引用了它），则保持原样，避免删除错误的那一处。\n- 压缩 Pi skill 列表，并移除 session-overview 中的易变字段。\n- 在 Pi / provider compat 支持时请求长缓存保留。\n- 对 `openai-completions` / `openai-responses` 请求，在没有有效 key 时使用 Pi session id 补 `prompt_cache_key`；Pi 0.82+ core 对内置 `llama.cpp` 也使用这一语义。\n- 对缺少缓存 / session-affinity compat 的第三方 OpenAI-compatible 代理给出一次性提醒。\n- 检测 Claude（opus-4.6+ 含 Opus 5、sonnet-4.6+ 含 Sonnet 5、fable-5+）以及 Kimi Coding K3 / `kimi-for-coding` 自定义渠道的 adaptive-thinking compat。\n- 使用每个 extension instance 独占的原子 shard 保存缓存统计，避免父会话、子 Pi agent 和并行 Pi 进程互相覆盖。\n- Footer 默认显示当前 conversation session 的 provider/model 统计；`total` 可聚合同一精确 provider/model 的所有有效本地 shard。\n- 通过版本化全局协议（`Symbol.for(\"pi.routing.registry.v1\")` 与 `Symbol.for(\"pi.cache.hints.v1\")`）支持可选的 router extension 集成，而不导入任何 router 包。\n- 提供默认关闭的确定性排序，用于已验证的 Pi 内置工具 payload。\n\n缓存是 provider 侧的 best-effort 行为。第三方代理和 router extension 仍可能隐藏缓存 usage、拒绝不支持的参数，或把请求路由到多个上游。\n\n## 安装\n\n```bash\npi install npm:pi-cache-optimizer\n```\n\n如果之前安装过旧包：\n\n```bash\npi remove npm:pi-deepseek-cache-optimizer && pi install npm:pi-cache-optimizer\n```\n\n安装、更新或移除后，在 Pi 中运行 `/reload`，让 extension hooks 刷新。\n\nPi 0.79.7 及之后，`pi update` 默认只更新 Pi 本体。若要更新已安装的 Pi package（包括本扩展），请运行 `pi update --extensions`（只更新 packages）或 `pi update --all`（Pi 与 packages 一起更新）。\n\n本扩展要求 Pi 0.82+，并已使用 Pi 0.87.1 验证。TypeScript 校验直接使用官方 Pi package 类型，同时只使用这些版本共有的 extension hooks、`getAgentDir()` 和 prompt options；不依赖 Pi 0.83+ 专有 API（例如 `ctx.scopedModels` 或 bundled TypeBox 1.3 aliases）。\n\n## 命令\n\n| 命令 | 作用 |\n|---|---|\n| `/cache-optimizer` | UI 支持时打开交互菜单；否则打印帮助和当前状态。 |\n| `/cache-optimizer enable` | 在当前 Pi 进程中开启运行时优化，清零本地 footer 统计，并开始新的“开启状态”测量。 |\n| `/cache-optimizer disable` | 在当前 Pi 进程中关闭优化，清零本地 footer 统计，并继续以 disabled 对比模式采集 footer 统计。运行 `/reload` 或重启 Pi 后回到启动时行为。 |\n| `/cache-optimizer doctor` | 显示当前模型 / provider / API / base URL / compat 与低命中诊断。 |\n| `/cache-optimizer compat` | 对当前模型显示可复制的 compat 建议（如适用）。 |\n| `/cache-optimizer stats` | 显示当前 conversation session 今天使用过的各 cache-adapter-matched 模型详细统计。 |\n| `/cache-optimizer stats all` | 显示所有有效本地 session/shard 今天的逐模型详细总计，包括请求数与 token 数。 |\n| `/cache-optimizer stats contributors` | 显示当前精确 provider/model 的当前/其他贡献 session，不暴露 session id。 |\n| `/cache-optimizer reset` | 重置当前 provider/model 的本地 footer 统计；不会修改上游 provider 缓存。 |\n| `/cache-optimizer config footer-mode total\\|session\\|process` | 持久设置 footer 统计模式；持久命令配置优先于环境变量。 |\n| `/cache-optimizer fix` | 为当前模型自动修复安全的 compat 问题。展示预览 + 风险提示，需要用户确认；原生 compat 修复写 `models.json`，已观测到的 `prompt_cache_key` 问题写扩展配置。 |\n| `/cache-optimizer fix prompt-cache-key` | 明确把当前 OpenAI-compatible provider/model 配置为从最终请求体移除 `prompt_cache_key` 与 `promptCacheKey`。需要确认。 |\n| `/cache-optimizer rollback` | 查看最近一次匹配的已确认修复；经 UI 确认后安全恢复扩展配置或 `models.json` 修复。 |\n\n`/cache-optimizer` 使用 Pi 原生 Tab 补全：输入 `/cache-optimizer <Tab>` 查看支持的子命令，输入 `/cache-optimizer stats <Tab>` 补全 `all` 或 `contributors`，输入 `/cache-optimizer fix <Tab>` 补全 `prompt-cache-key`，输入 `/cache-optimizer c<Tab>` 补全 `config`，输入 `/cache-optimizer config <Tab>` 补全 `footer-mode`，输入 `/cache-optimizer config footer-mode <Tab>` 补全 `total`、`session` 或 `process`。建议会按当前前缀过滤；无效前缀返回空结果，由 Pi 正常回退处理。\n\n交互式 `/cache-optimizer` 菜单包含 `Footer mode`，可以选择 `total`、`session` 或 `process`。`enable` / `disable` 是当前进程内开关。若要持久关闭某些能力，请使用下面的环境变量。\n\n## 持久 Opt-out\n\n| 环境变量 | 作用 |\n|---|---|\n| `PI_CACHE_OPTIMIZER_NO_PROMPT_REWRITE=1` | 只关闭 prompt 改写；footer 统计和 cache-key fallback 仍启用。 |\n| `PI_CACHE_OPTIMIZER_NO_SKILL_COMPRESSION=1` | 保留 Pi 原始 verbose skill XML。 |\n| `PI_CACHE_OPTIMIZER_NO_OPENAI_CACHE_KEY=1` | 关闭 OpenAI-compatible `prompt_cache_key` fallback。推荐使用这个显式 opt-out。 |\n| `PI_CACHE_OPTIMIZER_OPENAI_CACHE_KEY=0` | 通过旧的反向开关关闭同一个 fallback。取值 `0`、`false`、`no`、`off` 时关闭。 |\n\n## Opt-in 确定性工具排序\n\n`PI_CACHE_OPTIMIZER_TOOL_ORDER=1` 会对 Pi 内置 OpenAI Completions、Anthropic、Google 与 Bedrock payload 中已验证的工具定义进行确定性排序。Truthy 取值为（不区分大小写）`1`、`true`、`yes` 或 `on`。该能力默认关闭、仅在当前进程生效，并会被 `/cache-optimizer disable` 抑制。\n\n工具按精确名称排序，并用原始 index 作为稳定的同名 tie-breaker。排序只对发生变化的已验证对象/数组路径做浅 clone。工具对象和无关请求字段保持原引用，包括 Google/Vertex 的 `AbortSignal`；工具 schema、tool choice、routing 字段和调用方输入都保持不变。\n\n出于安全考虑，只要工具存在顶层 `cache_control` marker，或 Anthropic payload 包含 `defer_loading` 分组，payload 就保持不变。未知 / 自定义 API、畸形工具、缺少名称或不支持的 shape 同样保持不变。纯 helper 可识别 OpenAI Responses fixture，但 request hook 保留既有 Responses/Codex bypass，不会重排这些请求。\n\n回滚很简单：删除变量或设为非 truthy 值，然后运行 `/reload`。如需使用本地 fixture 验证转换、且不连接 provider，可运行：\n\n```bash\nbun .trellis/tasks/09-03-context-epoch-tool-ordering/verify.ts\n```\n\n该 verifier 只报告数字形式的工具排序变化，并确认带 cache marker 的 payload 不会变化。由于它不会连接 provider，provider cache usage 会明确报告为 unavailable，也不会虚构 cache hit。\n\n## Footer 缓存统计模式\n\n当前版本把统计保存在 Pi agent 目录的 `pi-cache-optimizer-stats.d/shards/` 下。每个已加载的 extension instance 独占一个 UUID 命名 shard，并通过临时文件 + 原子 rename 写入，因此父/子/并行 Pi 进程不会互相覆盖。旧 v6 单文件统计在升级时直接删除，本地 footer 计数从零开始；不会影响上游 provider 的实际缓存。\n\nFooter 默认使用 `session`，避免另一个并行 Pi 终端使用相同 provider/model 时污染当前窗口。可以通过命令或环境变量切换显示范围：\n\n| 值 | 作用 |\n|---|---|\n| `session`（默认） | 聚合今天携带当前 hashed Pi conversation session id 且精确 provider/model 相同的 shard。Extension reload 会产生新 instance shard，但仍属于同一 session 范围。 |\n| `total` | 聚合今天同一精确 provider/model 的全部有效本地 shard，包括加载本扩展并共享同一 agent 目录的子 Pi agent。 |\n| `process` | 仅显示当前 extension instance 采集的统计。Pi 重启或 extension reload 后从 `0/0` 开始。 |\n\n持久命令配置优先于环境变量：\n\n```text\n/cache-optimizer config footer-mode total\n/cache-optimizer config footer-mode session\n/cache-optimizer config footer-mode process\n```\n\n显式设置保存在 Pi agent 目录下的 `pi-cache-optimizer-config.json`。没有命令覆盖时，读取 `PI_CACHE_OPTIMIZER_FOOTER_MODE=total|session|process`；值不区分大小写，缺失或非法值均回退到 `session`。如需让已有安装重新由环境变量控制，请手动删除 `pi-cache-optimizer-config.json`，然后运行 `/reload`。\n\n## 按模型关闭 `prompt_cache_key`\n\n某些 OpenAI-compatible endpoint 会因 `prompt_cache_key` 返回 HTTP 400，但同一个字段对其他 provider 可能有效。Pi 0.87.1 没有原生的 `supportsPromptCacheKey` compat 字段，**不要**把这个未知字段加入 `models.json`。`supportsLongCacheRetention` 也不是等价开关，不应借用来实现此目的。\n\n当扩展观察到精确 provider/model 对 `prompt_cache_key` 的明确字段级拒绝后，普通 `/cache-optimizer fix` 会提供经过确认的模型级修复。参数值校验失败，以及“设置 temperature 时不允许”这类条件限制都不构成证据。若不同模型的响应并发交错，而 Pi 又没有提供 request ID，扩展会忽略无法安全关联的 response-header 证据；只有最终 assistant message 提供精确 provider/model 身份时才恢复归因。如果你已经确定 endpoint 不支持该字段，可以主动执行：\n\n```text\n/cache-optimizer fix prompt-cache-key\n```\n\n预览会说明设置保存在扩展自有的 `pi-cache-optimizer-config.json` 中。确认后，`before_provider_request` 的最终阶段会移除 `prompt_cache_key` 和 `promptCacheKey`，包括 Pi core 之前已经放入的 key。这个精确模型可能因此失去 provider prompt-cache 命中，其他模型仍保持原有 fallback 行为。配置通过原子、不可覆盖并发新建文件的方式写入，并生成不含敏感内容的备份/receipt；需要 `/reload` 或重启 Pi。`/cache-optimizer rollback` 可恢复之前的扩展配置且不会重置 `footerMode`；它会绑定预览时 receipt 的文件身份和 hash，在 receipt 被替换时拒绝操作，并在 receipt 状态写入失败时补偿恢复配置。\n\n## OpenAI-compatible 代理配置\n\nLiteLLM / OneAPI / NewAPI / 类 OpenRouter 渠道等第三方 `openai-completions` 代理，常会把同一个 session 分散到多个上游后端，导致 provider 侧 prompt cache 被拆散。\n\nPi 0.84.1 还修复了内置 Fireworks 渠道对拒绝 `prompt_cache_retention` 的模型兼容性；本扩展不按 provider 名称增加特殊分支，而是结合 `models.json` 与 runtime model，按精确 provider/model 解析有效 compat。Pi 0.81+ 也内置了使用 OpenAI-shaped transport 的 `llama.cpp` provider。Pi 0.82+ core 在启用 cache retention 时会为它生成 session `prompt_cache_key`，因此本扩展会保留该 key，并在缺失时使用同样的保守 fallback。只有符合 Pi 内置 provider 明确 compat 指纹的模型会跳过通用 proxy 路由 / session-affinity 建议；仅复用 `llama.cpp` id 的自定义或覆盖 provider 仍按普通 OpenAI-compatible 渠道处理。`prompt_cache_retention` 继续遵循统一安全规则：仅官方 OpenAI 或 `models.json` 中有效配置为 `supportsLongCacheRetention: true` 时保留，否则发送前移除。Pi 0.87.1 没有原生的 `supportsPromptCacheKey` compat 字段，因此按模型关闭 key 的策略保存在本扩展的 `pi-cache-optimizer-config.json` 中，而不是 `models.json`。扩展配置独立于 Pi 的 compat 优先级，只影响其中列出的精确 provider/model。\n\n对真正的代理，建议先启用 session affinity：\n\n```json\n{\n  \"providers\": {\n    \"your-provider-id\": {\n      \"api\": \"openai-completions\",\n      \"baseUrl\": \"https://example.com/v1\",\n      \"apiKey\": \"env:YOUR_API_KEY\",\n      \"compat\": {\n        \"sendSessionAffinityHeaders\": true\n      },\n      \"models\": [\n        { \"id\": \"gpt-5.5\", \"name\": \"GPT-5.5\" }\n      ]\n    }\n  }\n}\n```\n\n说明：\n\n- `sendSessionAffinityHeaders: true` 是安全默认项，前提是你的代理支持 sticky routing。\n- `supportsLongCacheRetention: true` 是可选项。只有 endpoint 明确支持 OpenAI long prompt cache retention 时才添加。\n- 不要把 `supportsPromptCacheKey` 加入 `models.json`：Pi 0.87.1 没有定义这个 compat 字段。请使用 `/cache-optimizer fix prompt-cache-key` 在扩展自有配置中保存精确 provider/model 的 omit 规则；它会移除两种 key 写法，包括 Pi 提供的 key。\n- 如果出现 `400 Unsupported parameter: prompt_cache_retention`，请为该渠道移除 / 避免 `supportsLongCacheRetention`；如支持，可保留 `sendSessionAffinityHeaders`。扩展会从响应头或最终 assistant error message 中识别这条明确错误，并在当前进程的后续请求中移除该参数。\n- 使用 `/cache-optimizer compat` 或 `/cache-optimizer doctor` 查看当前模型的具体建议。\n- DeepSeek 模型名只用于选择 `DS cache` adapter，不能证明 reasoning wire protocol。缺少或使用非 DeepSeek format 时仍保留通用缓存 / 路由建议；只有 effective `compat.thinkingFormat: \"deepseek\"` 被明确配置时，才显示 DeepSeek replay 建议，且不会把 `thinkingFormat` 列为缺失修复项。\n- 不要因为模型 id 含有 `deepseek` 就添加 `thinkingFormat: \"deepseek\"`；catalog 中也存在 `openai`、`qwen`、`openrouter`、`together` 或没有显式 format 的情况。\n- 本扩展的 `doctor` 和 `compat` 命令只给建议，不会修改 `models.json`。\n\n## Anthropic 缓存 TTL 兼容\n\nAnthropic 按 `tools → system → messages` 顺序处理 cache breakpoint，并拒绝位于 5 分钟 breakpoint 之后的 `ttl: \"1h\"` breakpoint。省略 `ttl` 的 ephemeral `cache_control` 使用默认 5 分钟保留时间。\n\n对于所有 `anthropic-messages` 渠道，本扩展都会检查最终序列化 payload，并立即降级可见的非法短 TTL → 长 TTL 顺序。合法的纯 `1h` 和 `1h → 5m` payload 保持不变，包括真正支持 1 小时保留的第三方 endpoint。\n\n部分代理会在 Pi request hook 之后重写或插入隐藏的 5 分钟 breakpoint。如果 provider 返回 Anthropic 明确的 TTL 顺序错误，本扩展会记录当前进程内的 provider/model fallback，使下一次后续请求使用默认 5 分钟 TTL。Pi 0.82.1 将此错误视为不可自动重试的 HTTP 400，因此扩展不会声称 Pi 会自动重跑失败 turn；如果其它层发起重试，该重试也会使用 fallback。`/cache-optimizer doctor` 会显示该 fallback，`/cache-optimizer fix` 可通过现有确认/备份流程，以 model level 持久写入 `supportsLongCacheRetention: false`。其它 400 和 prompt-too-long 错误不会触发该 fallback。运行时观测会持续到当前进程退出，并会在同一进程内的扩展 reload 后保留。\n\n## Adaptive thinking 模型\n\nClaude 从 opus-4.6 / sonnet-4.6（含 Opus 5、Sonnet 5）/ fable-5 开始需要在 compat 中设置 `forceAdaptiveThinking: true`。Kimi Coding K3（`k3`）和 `kimi-for-coding` 也使用 adaptive thinking，并需要 `allowEmptySignature: true`，以正确重放空 signature 的 thinking block。缺少这些 compat 时，Pi 可能发送旧版 thinking payload 或错误重放 thinking。Pi 0.83+ 的原生 Opus 5 catalog 已覆盖在同一 adaptive-thinking 检测中；如果自定义 `anthropic-messages` 渠道没有继承该 compat，仍需手动设置。\n\nPi 内置 catalog 已为官方模型设置此 flag。`models.json` 中覆盖这些模型的自定义渠道必须包含该 flag：\n\n```json\n{\n  \"providers\": {\n    \"your-claude-channel\": {\n      \"api\": \"anthropic-messages\",\n      \"baseUrl\": \"https://...\",\n      \"apiKey\": \"env:YOUR_KEY\",\n      \"compat\": {\n        \"forceAdaptiveThinking\": true\n      },\n      \"models\": [\n        { \"id\": \"claude-sonnet-5\", \"name\": \"Claude Sonnet 5\" }\n      ]\n    }\n  }\n}\n```\n\n或使用模型级 override：\n\n```json\n{\n  \"providers\": {\n    \"your-claude-channel\": {\n      \"modelOverrides\": {\n        \"claude-sonnet-5\": {\n          \"compat\": {\n            \"forceAdaptiveThinking\": true\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nKimi Coding K3 自定义渠道如果包含混合模型，建议使用模型级 compat：\n\n```json\n{\n  \"providers\": {\n    \"your-kimi-coding-channel\": {\n      \"modelOverrides\": {\n        \"k3\": {\n          \"compat\": {\n            \"forceAdaptiveThinking\": true,\n            \"allowEmptySignature\": true\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nPi 0.80.9+ 已在内置 Kimi Coding、Moonshot AI / 中国区、OpenRouter 和 Vercel AI Gateway catalog 中加入 Kimi K3。Moonshot/OpenRouter 变体使用 OpenAI-compatible transport，继续走普通 Kimi footer / proxy 路径；上面的 adaptive compat 只适用于 `anthropic-messages` Kimi Coding 渠道。\n\n`/cache-optimizer doctor` 和 `/cache-optimizer compat` 会检测缺失的 flag 并显示可复制的 JSON。\n\n## 使用 `/cache-optimizer fix` 自动修复\n\n**v2.6.0+** 新增 `fix` 子命令，可自动修复安全的 compat 问题：\n\n- Adaptive thinking（`forceAdaptiveThinking: true`；Kimi Coding K3 / `kimi-for-coding` 还包括 `allowEmptySignature: true`）\n- DeepSeek Pi Mono replay compat（仅当已明确配置 `thinkingFormat: \"deepseek\"` 时使用 `requiresReasoningContentOnAssistantMessages: true`；`/fix` 不会自行推断该 format）\n- OpenAI-compatible proxy session affinity（`openai-completions` 使用 `sendSessionAffinityHeaders: true`）。Pi 0.80.7+ 使用 `sessionAffinityFormat` 控制 `openai-responses` header 形式并自动检测默认值；本扩展不再写入已移除的 `sendSessionIdHeader`。\n\n**范围：** 从当前 active model 发起修复。仅缺少 affinity 时，如 provider 已有配置项且无更高优先级配置遮挡，可一次写入 provider 级 compat，覆盖其适用模型（包括不在 `models[]` 中的模型）；模型级显式 `false` 仍为 opt-out。其他或有歧义的修复仍按模型处理。\n\n**安全机制：**\n\n1. 显示完整变更预览（文件路径、编辑位置、要写入的 JSON、风险说明）\n2. 警告：① 修改影响使用该渠道的所有 session，② 自动备份到 `models.json.backup-cache-optimizer-<timestamp>`，③ 需重启 Pi 或 reload\n3. 使用保留注释的精确编辑器 —— 现有注释、缩进和已有 key 顺序都会保留\n4. 需要用户明确确认（交互式提示或 `ui.select`）\n5. 写入与失败恢复都使用原子替换（temp + rename）；写入后自我验证\n6. 完全保留 `models.json` 原有访问权限，不主动收紧或放宽（例如 `0600` 保持 `0600`，`0644` 保持 `0644`）\n7. 备份名唯一且不会覆盖已有备份；如果 JSONC 扫描器无法置信定位目标，则回退到手动修改指引\n\n已有的 `modelOverrides[modelId]` 具有 Pi 的最高优先级，因此 `fix` 会直接修复该 entry。对于没有自定义 `models[]` entry 的内置模型或 API-login 模型，若现有 provider 可安全使用 provider 级 affinity 修复，则优先写入 provider compat；否则 `fix` 会创建仅含 compat 的 `modelOverrides` entry，而不会凭空添加自定义模型定义。运行时观察到的 provider 失败也始终写入这一最高优先级 model override，避免 extension-provided runtime compat 遮挡修复。自检会验证完整的 provider → custom model → runtime model → modelOverride 结果；无效的低层写入会被拒绝。\n\n**非交互模式：** 拒绝写入，显示手动编辑指引。\n\n**运行：** 当 active model 检测到 compat 问题时执行 `/cache-optimizer fix`。仅缺少 affinity 的提醒按 provider 在当前扩展实例内去重，并指向这一确认式命令；模型专属提醒仍单独显示。compat 已完整时，命令显示\"无需修复\"。\n\n## `/cache-optimizer rollback`\n\nRollback 可通过补全、直接命令和交互菜单使用，并始终需要 UI 确认。命令会选择匹配当前 provider/model（provider 级 receipt 可从同 provider 任一模型操作）的最新未回滚 receipt，验证备份与文件 hash，创建新的保留访问权限的 rollback backup，并使用临时文件 + 原子替换。Fix 与 rollback 在多个 extension instance 间串行执行；rollback 还会把预览时的 receipt transaction id/hash 绑定到提交阶段，若另一事务替换 receipt 就安全拒绝。没有交互式 UI 时只提供手动恢复指引，不会写入文件。\n\n如果 `models.json` 自 fix 后没有变化，rollback 可以恢复完整的 pre-fix JSONC；如果文件发生变化，则绝不会盲目替换整个文件，只会在 receipt-owned scalar key 仍等于记录的 post-fix 值时撤销该 key，并保留之后的用户修改。如果 receipt-owned key 已变化、目标被删除/移动，或 fix 新建了目标项，命令会安全拒绝并指向记录的 backup 供手动检查。成功后 receipt 会标记为已回滚，并需要 `/reload` 或重启。\n\n### 没有 `models.json` provider entry 的渠道\n\n有些 Pi 渠道可用时，Pi agent `models.json`（默认 `~/.pi/agent/models.json`；若设置了 `PI_CODING_AGENT_DIR`，则为 `$PI_CODING_AGENT_DIR/models.json`）里可能还没有对应 provider block。保留现有认证方式，不要复制 credential、token 或 API key。只在 `models.json` 里添加缓存 / 路由兼容覆盖。\n\nProvider 级最小 override：\n\n```json\n{\n  \"providers\": {\n    \"your-provider-id\": {\n      \"compat\": {\n        \"sendSessionAffinityHeaders\": true\n      }\n    }\n  }\n}\n```\n\nPi Cache Optimizer 按 Pi 的优先级解析有效 compat（`provider.compat` → 匹配的 `models[].compat` → runtime model compat → `modelOverrides[modelId].compat`）。这也覆盖了某些 extension provider 替换模型列表后，runtime model 意外丢失低层 compat 的情况。对于非官方 `openai-completions` 渠道，如果有效 `sendSessionAffinityHeaders` 为 `true`、但 Pi runtime model 丢失了该值，本扩展会在请求阶段恢复 Pi-compatible affinity headers，且不会覆盖已有 header；显式 `false` 仍作为有效 opt-out 尊重。\n\n如果只想影响单个模型，用 `modelOverrides`：\n\n```json\n{\n  \"providers\": {\n    \"your-provider-id\": {\n      \"modelOverrides\": {\n        \"gpt-5.5\": {\n          \"compat\": {\n            \"sendSessionAffinityHeaders\": true\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n## DeepSeek 协议安全与回滚\n\n模型家族名称与 reasoning wire protocol 是两件事。使用 OpenAI-compatible endpoint 的 DeepSeek 名称模型，可能使用标准顶层 `reasoning_effort`、DeepSeek 风格 `thinking`，或其它 provider-specific format。单独的 `supportsReasoningEffort: true` 不能证明协议。为此，`/cache-optimizer fix` 永远不会凭模型名推断或添加 `thinkingFormat: \"deepseek\"`；只有 endpoint 文档或 provider 的明确证据支持时，才应配置显式 format。\n\n面向新手的安全流程是分阶段的：\n\n1. 先运行 `/cache-optimizer fix`，只处理协议无关的缓存 / 路由修复，例如 session affinity；命令会展示具体位置并要求确认。\n2. 发起一次普通请求。如果 OpenAI-compatible 的 DeepSeek-like 模型明确拒绝 `thinking` 并要求使用 `reasoning_effort`，扩展只在当前进程保留 model-scoped 分类，不会持久化或显示完整错误，不会发送隐藏探测请求，也不会在 response hook 中自动修改配置。\n3. 再次运行 `/cache-optimizer fix`，查看基于证据的 model-level 协议修复；该修复写入最高优先级的 `modelOverrides[modelId].compat`，并结合 runtime compat 自检，避免 extension-provided model 静默遮挡。不会仅凭共享 provider 或模型名字扩大修改范围，显式 `openai`、`qwen`、`openrouter`、`together` format 会被尊重。\n4. 如果最近一次已确认修复导致问题，运行 `/cache-optimizer rollback`；回滚始终需要 UI 确认。\n\n每次成功的交互式 fix 都会以原子方式写入版本化 receipt：`pi-cache-optimizer-fix-receipt.json`。它只包含 transaction id、provider/model identity、placement、发生变化的 scalar compat key 及 before/after 值、文件 hash、备份文件名和时间戳/status。不会保存 API key、credential、prompt、payload、header、response body 或原始错误。\n\nRollback 会创建新的、保留访问权限的备份并使用原子替换。如果 `models.json` 自 fix 后未变化，且 receipt 备份匹配 pre-fix hash，则可恢复完整 pre-fix 文件。如果文件发生变化，只会在 receipt-owned scalar key 仍等于记录的 post-fix 值时撤销该 key，并保留其它用户修改；否则安全拒绝并指向记录的备份供手动检查。验证后 receipt 会标记为已回滚，需要 `/reload` 或重启 Pi。\n\n## Footer 统计\n\n统计是只读本地计数，保存在 Pi agent 目录的 UUID shard（`pi-cache-optimizer-stats.d/shards/`；自定义 agent 目录使用 `PI_CODING_AGENT_DIR`）。Shard 只包含日期、opaque session hash、精确 provider/model 计数、reset epoch 和进程生命周期元数据，不包含 API key、prompt、payload、headers、响应或模型输出。Footer 默认显示当前 conversation session；`total` 聚合同一精确 provider/model 的所有有效本地 shard，`process` 只显示当前 extension instance。旧 v6 共享统计文件升级时直接删除，不迁移旧计数。\n\nPi 0.79+ 已内置 footer `CH` 标记，用于显示最近一次 prompt cache hit rate。本扩展在此基础上补充持久化的 provider/model 计数，以及代理 compat 诊断。\n\n示例 footer：\n\n```text\n· OpenAI cache 3/10·0.002M/0.005M 40.0% ⚠️ compat\n```\n\n开头的 `· ` 由本扩展负责，用于把本扩展状态与同一 footer 中其他扩展发布的状态隔开。普通、disabled、router 恢复以及带 warning 的状态都会保留此前缀。紧凑 footer 格式为 `<label> <命中请求数>/<总请求数>·<cached input tokens>/<total input tokens> <token 命中率>`；token 命中率保留一位小数，并去掉多余的 `tok` 后缀。`/cache-optimizer stats` 显示当前 session 的各模型详细统计；`/cache-optimizer stats all` 显示所有本地模型，并包含 `4/5·0.66M/0.84M 78.7%` 这样的紧凑摘要。部分 adapter 还可能追加 `·write <tokens>`，运行时诊断可能追加 `⚠️ compat` 或 `⚠️ integrity`。\n\n支持的 footer label 包括：DS、Claude、OpenAI、Gemini、Kimi、Qwen、GLM、MiniMax、Mimo、Hunyuan、Mistral、Grok、Llama、Nemotron、Cohere、Yi、Doubao、ERNIE、Baichuan、StepFun、Spark、InternLM、Gemma、Phi、Jamba、Solar、Sonar、Nova、Reka、Falcon、DBRX、MPT、StableLM、Aquila、EXAONE、HyperCLOVA、Luminous、Hermes、Granite、Arctic、Pangu、SenseNova、Zhinao、MiniCPM、XVERSE、Orion、OpenChat、Vicuna、Wizard、Zephyr、Dolphin、OpenOrca、Starling、BLOOM、RWKV、Aya。\n\nAdapter 选择只看模型 id/name（以及 message_end 时 assistant message 的 model/name）。仅使用 OpenAI-shaped API 不会被当作 OpenAI-family，除非模型 id/name 匹配受支持的家族。\n\n## Router / Virtual-channel 扩展作者指南\n\n如果你的 Pi 扩展提供虚拟 routing provider（例如 `router/auto`、`router/smart`，或会转发到真实上游的 profile/channel），本扩展可以为真实上游 provider/model 显示缓存统计，而不是把统计记到虚拟外壳上。集成是可选、版本化的，并且**不需要导入本包**。\n\n### 最小集成：最终 assistant message metadata\n\n要无缝获得最终缓存统计归因，请在完成的 assistant message 上透传真实上游身份：\n\n```ts\n{\n  role: \"assistant\",\n  provider: \"anthropic\",              // 真实上游 provider\n  responseModel: \"claude-opus-4-8\",   // 或 model: \"...\"\n  api: \"anthropic-messages\",          // 已知时填写上游 Pi API id\n  usage: {\n    input: 1200,       // Pi-normalized 未缓存 input tokens，如可用\n    cacheRead: 8000,   // 从 provider prompt cache 读取的 tokens\n    cacheWrite: 500,   // 本次新写入 provider prompt cache 的 tokens\n  },\n}\n```\n\n`message_end` 会把这些 assistant-message 字段视为权威来源。只要存在 `provider` + `model`/`responseModel` + cache usage，即使 active model 仍是 `router/auto`，统计也会更新真实上游桶。如果上游 usage 没有 cache 字段，请保持缺失或为 0；本扩展不会伪造 cache hit。\n\n### 可选：用于预响应 UX 的实时路由注册表\n\n最终 message metadata 足以支持响应后的统计。若要支持响应前流程——首次响应前的 footer 显示、`/cache-optimizer doctor`、`/cache-optimizer compat`、`/cache-optimizer reset` 和 OpenAI-compatible `prompt_cache_key` fallback——请在 `Symbol.for(\"pi.routing.registry.v1\")` 下注册 live route adapter。\n\n协议形状：\n\n```ts\ntype PiRouteSnapshot = {\n  virtualProvider: string;\n  virtualModelId: string;\n  provider: string;\n  modelId: string;\n  api?: string;\n  canonicalModelId?: string;\n  routeLabel?: string;\n  status?: \"planned\" | \"trying\" | \"selected\" | \"success\" | \"failed\";\n  sessionIdHash?: string;\n  requestId?: string;\n  timestamp: number;\n};\n\ntype PiRouterAdapterV1 = {\n  virtualProvider: string;\n  resolveActiveRoute(\n    virtualModelId: string,\n    hint?: { sessionIdHash?: string; requestId?: string },\n  ): PiRouteSnapshot | undefined;\n  resolveCandidateRoutes?(virtualModelId: string): PiRouteSnapshot[];\n  subscribe?(listener: (event: PiRouteSnapshot) => void): () => void;\n};\n```\n\n注册模式：\n\n```ts\nconst ROUTING = Symbol.for(\"pi.routing.registry.v1\");\nconst registry = (globalThis as Record<symbol, unknown>)[ROUTING] as\n  | { version: 1; registerRouter(adapter: PiRouterAdapterV1): () => void }\n  | undefined;\n\nregistry?.registerRouter({\n  virtualProvider: \"router\",\n  resolveActiveRoute(virtualModelId, hint) {\n    return {\n      virtualProvider: \"router\",\n      virtualModelId,\n      provider: \"deepseek\",\n      modelId: \"deepseek-v4\",\n      api: \"openai-completions\",\n      sessionIdHash: hint?.sessionIdHash,\n      timestamp: Date.now(),\n    };\n  },\n});\n```\n\n不要覆盖已有 registry。如果你的扩展比本优化器更早加载，请在 `session_start` 时重试注册，或仅在 registry 不存在时创建同样的 V1 registry 形状。\n\n### 可选：按查询过滤的缓存提示\n\n会转发到内部 Pi 请求路径的 router，可以从 `Symbol.for(\"pi.cache.hints.v1\")` 读取按查询过滤的提示：\n\n```ts\nconst CACHE_HINTS = Symbol.for(\"pi.cache.hints.v1\");\nconst hints = (globalThis as Record<symbol, any>)[CACHE_HINTS]?.getHints?.({\n  sessionIdHash,\n  virtualProvider: \"router\",\n  virtualModelId: \"auto\",\n  upstreamProvider: \"deepseek\",\n  upstreamModelId: \"deepseek-v4\",\n  api: \"openai-completions\",\n});\n```\n\n当查询匹配当前 session/route 时，`hints` 可能包含 `systemPrompt`、`promptCacheKey` 和 `cacheRetention: \"long\"`。这些提示是参考信息且可能敏感：不要记录日志，不要暴露 prompt 文本，也不要覆盖已有 request-level `prompt_cache_key` / `promptCacheKey`。\n\n### 安全与正确性规则\n\n- 不要导入 `pi-cache-optimizer`；只使用 `Symbol.for(...)` 发现协议。\n- 不要在 route snapshot 或日志中暴露 API key、prompt、payload、headers、response body 或模型输出。\n- 最终归因使用 assistant-message metadata；live registry 只是参考信息，到响应完成时可能已经过期。\n- 保持 usage 真实。缺失 cache usage 时应该显示 0 或低报，而不是合成命中。\n\n## 卸载\n\n```bash\npi remove npm:pi-cache-optimizer\n```\n\n然后运行 `/reload` 或重启 Pi。可选：删除本地状态文件（如果使用 `PI_CODING_AGENT_DIR`，请删除该目录中的同名文件）：\n\n| 平台 | 删除本地状态文件 |\n|---|---|\n| Linux / macOS / WSL | `rm -rf ~/.pi/agent/pi-cache-optimizer-stats.d ~/.pi/agent/pi-cache-optimizer-stats.json ~/.pi/agent/deepseek-cache-optimizer-stats.json ~/.pi/agent/pi-cache-optimizer-config.json` |\n| Windows PowerShell | `Remove-Item -Recurse -Force \"$env:USERPROFILE\\.pi\\agent\\pi-cache-optimizer-stats.d\", \"$env:USERPROFILE\\.pi\\agent\\pi-cache-optimizer-stats.json\", \"$env:USERPROFILE\\.pi\\agent\\deepseek-cache-optimizer-stats.json\", \"$env:USERPROFILE\\.pi\\agent\\pi-cache-optimizer-config.json\" -ErrorAction SilentlyContinue` |\n| Windows 命令提示符 | `rmdir /s /q \"%USERPROFILE%\\.pi\\agent\\pi-cache-optimizer-stats.d\" & del /f /q \"%USERPROFILE%\\.pi\\agent\\pi-cache-optimizer-stats.json\" \"%USERPROFILE%\\.pi\\agent\\deepseek-cache-optimizer-stats.json\" \"%USERPROFILE%\\.pi\\agent\\pi-cache-optimizer-config.json\" 2>nul` |\n\n清理时不要删除 `models.json`；它保存你的 Pi 模型 / provider 配置，不属于本包。\n\n## 验证效果\n\n1. 选择一个 provider 会暴露 cache usage 的模型。\n2. 在同一个 Pi session 中连续发送几轮相似请求。\n3. 观察 footer，或运行 `/cache-optimizer stats`。\n4. 对第三方代理，再运行 `/cache-optimizer doctor`，并在代理侧确认 sticky routing / session affinity。\n\n## License\n\nMIT\n","readmeFilename":"README.zh-CN.md"}