{"_id":"pi-freeflow","_rev":"113-052a9b821fa8536b767153d9a7c19ed9","name":"pi-freeflow","dist-tags":{"latest":"1.39.0"},"versions":{"1.0.0":{"name":"pi-freeflow","version":"1.0.0","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"7021625d106a234ebc38911d2fcc9a6648d6c40e","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.0.tgz","fileCount":3,"integrity":"sha512-//osTJc0MWF80CaP4FmQfevBg0I/LIpiYqw9t1Jd5OLQEw/f8cMhpkAhPvMYidSAHIk39SMM0KXbhFe/sjZMLA==","signatures":[{"sig":"MEUCIBWqAG1oC3LI0S1SLLGfKjCrFxb/avbmJYDjRQ7ORAzmAiEAq+YuZFCaTIy81dnIuZW603uUgsNnti4EAy/y9XWIWvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55621},"gitHead":"a797dababb8a987a56f05abfa1e73519c80c41f0","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.0_1787599035870_0.8824907187754152","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"pi-freeflow","version":"1.0.1","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"900c913fd59d10ce40bb33f072646bf6cce01aff","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.1.tgz","fileCount":3,"integrity":"sha512-vVUUPX9AHf8XgX+zdKLZdjaQdXt+lnjQ4EY69WGOQTyp7ZCxq7pJUzsvYCQ+ch44olDe0gD5Dwy8EENIOr776g==","signatures":[{"sig":"MEUCIQD7cve57U2yeSKyEondb+KnkLIf5xfI+gD40+Aw0me/MgIgYeCxzcgwnK7KA9c4abXDqPxQuT/bZqVZyeoQIDvityQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55418},"gitHead":"d98d139792d7aff66c7c03e661e2f771e1d1349c","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.1_1787600641264_0.9085095408240846","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"pi-freeflow","version":"1.0.2","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"b0176d5f8ca46295a6168246a36ff7c5ed5a54f1","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.2.tgz","fileCount":3,"integrity":"sha512-8wWDrZz2ueQbVxRg4HCwEK5PHcddbXVh807UrybEFHC+GKu2AoEFSHMmK8VDs7/3EhKBjSf0Mq6c6RASSxP9pg==","signatures":[{"sig":"MEUCIHTo9+cpNM3xU1hb+Ei4EP+HYCy+PlfCZDbrLl9rn0JBAiEA14fm3s50qS8gGylFc3rHASQV/VOGrgxXpQh/u/BHMZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55660},"gitHead":"39ff7d3ebe01eded331cf1ccb1baf655327b12ee","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.2_1787601896112_0.8177533005549822","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"pi-freeflow","version":"1.0.3","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"41345e9f38870635499dba184e8d789462f5f47e","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.3.tgz","fileCount":3,"integrity":"sha512-1WmqFycxhNvBBmd8trnNr3U0g8gH5PU4XSCFwtYshG4Md6pZOOXVuPRqJrLGaAME3lb6J+i74Ql5zjywB1fpfw==","signatures":[{"sig":"MEUCIQCQdjfItlvVUK6VAcAFrRM0m1zOU1/rirRR05fGyMol2AIgQiZ7oU1fmi42Wchm+POPSUO20tLgV4g5teqfjcYUGc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56040},"gitHead":"87f63d24d80d692ed237c3d435a51d8110545f10","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.3_1787605765953_0.7949495810271476","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"pi-freeflow","version":"1.0.4","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"ba09f0ff91d25ddfe13116bd23efe78bbec94caf","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.4.tgz","fileCount":3,"integrity":"sha512-JAxCQYEgCeahqkPvET42ITlOeSxAJY9DMzLPdontQ5NZe6orrVfQ/1XIa986+kc7fbxUD0MqylQSQEy3yfgfwg==","signatures":[{"sig":"MEUCICylChBW3IkA6yH/6PhPd2G47Y2dRrGaTSl0ESI3ITFgAiEAuS92b6KAk6CmxVmmpooGsCq0pjzQb4R/m5AvJzhJxnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57922},"gitHead":"3fb8788192bde5f1454292cee5f6333c61c502ca","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.4_1787605838501_0.3755296996275541","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"pi-freeflow","version":"1.0.5","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.5","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"95a412e75744b70510899bcccaba10a26ada2100","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.5.tgz","fileCount":3,"integrity":"sha512-0rZajERL0KU7BqA2VCXHjaN/V78yhy+ZzmlkucU7CPPd8qBgqQxE2GcsN93MgVJOuy217amsqWz3axQaf3QqgA==","signatures":[{"sig":"MEUCIQCIZuFLC9o9GZtTfxWJbe9yG9x6koRfRCzI4zojs2ue2gIgNYawWFWKLSH3sf1vzL9jHJQ/Qp0vYJxU85n/ht1Qbac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58143},"gitHead":"f7317ea360d7d98c95660251e5b6c39c3290084a","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.5_1787605909452_0.2839830307547575","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"pi-freeflow","version":"1.0.6","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.6","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"ae26c1b879b77bf2f413334df7095d7a90b12454","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.6.tgz","fileCount":3,"integrity":"sha512-zFfirb/6GarOhMvObBuFz4DfxKlPzCcUsXgAHPC3nIn5iUkitADSC1QLSoybNAzEKcwAL9rfFZLIeuyOGp7QHg==","signatures":[{"sig":"MEUCIFS7mv9mS0HymgiQML2BDkM0HvFhGiHnic7VbxoEhj84AiEAgVeRL+Pn4/hRg1dYjW3+HXkxZ4by1GZuYm6odJTtjX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58172},"gitHead":"bc00a999ca12e0b545ee19a33035bf26075c82fd","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.6_1787605951444_0.7090965082113303","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"pi-freeflow","version":"1.0.7","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.7","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"f1c3e450abff16c5e7a28edaa2d3ede3596a0ee0","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.7.tgz","fileCount":3,"integrity":"sha512-tLoXxf2tXJUZa9ERK4J16C8WSRdOntl1FKbHPF1grHzAWCpad19a9aoQjc7/wPxf9p59SU689hJDbsHqlbqCBw==","signatures":[{"sig":"MEUCIQDuaXe+JpTbmopQ2BB5Z8R2HL3xMQd5VqMA3JCdFswjuQIgOpfBsC4UoIUuZGRIt8RUSAF/JZwh+YzsrcOvh73hjBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58963},"gitHead":"a52bd432f3dbf18f443019c95e25ff12994e2a3a","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.7_1787606017448_0.449031584066123","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"pi-freeflow","version":"1.0.8","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.8","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"749eff64a0f41de3b8df71f11a94e049b0325be6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.8.tgz","fileCount":3,"integrity":"sha512-In5zKxEG/c4fsrhNZHAhfqk0TN0QD+bRMpT0NY7U1/kQj7+PXvhpbccqMukoWt3QkkfIl986RQ4jM1CWUKy6zA==","signatures":[{"sig":"MEYCIQCZOHZ1z1udSrSHRNJjEM7A9waw6dyBH6sl7Tu8PfrqQQIhAPuzZ4nssJWHqdwsqRartnwBDPRWLGXNECfl6T0Jy016","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60100},"type":"module","gitHead":"266d8cacd82fe0232d68c034be6ab31469f907fd","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.8_1787606358518_0.9217897927427707","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"pi-freeflow","version":"1.0.9","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.0.9","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"b8f1bb2452fad1f330516147a7f53f2489b0758d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.0.9.tgz","fileCount":3,"integrity":"sha512-TNb2ls6DJRR59yKTn1u+/rsgpLBmGSUsTS3ZDcZ5kAVCIJzU42j71joRz+Bm5fsHM6NrdCNLyP38z5OCnxPfeA==","signatures":[{"sig":"MEQCIFbsiSdYJfLTUPqIqFMjR5wtaetwH/VtEzMaTkQom3DDAiBBeDsuqEZbgwJw9fz6psbDMXLuS/1chpd4xI6T5wg2vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60101},"type":"module","gitHead":"cba97860244c01f473b24540780028fd406a7ad4","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.0.9_1787606391329_0.15864557718428252","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"pi-freeflow","version":"1.1.0","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.1.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"82f18ddb47e47ec522630ce1e317371f4bae064e","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.0.tgz","fileCount":3,"integrity":"sha512-egX4tf8IpQy/N/AR+L+VwXBvexA8BjYirfT33EEekrnfssyELxvxnD6inVNphNGGJUC3d0EkvNayXHaUe146Hg==","signatures":[{"sig":"MEUCIQCpMgLTPSGH4UhL2EgqBgzurMZxrfJjaFag1e+tXA6DqwIgM61tyQ2KHhvov6gobaiD4M4s2v8SK29xMYM9iXgKJLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60127},"type":"module","gitHead":"b15e54dbf3d8d145424c73e3c017eb02458faf00","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.0_1787606604875_0.9395529766114297","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"pi-freeflow","version":"1.1.1","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.1.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"6545c38d2c37fd5ac62d7660b6f387f8e906a0e7","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.1.tgz","fileCount":3,"integrity":"sha512-EPriIExwBff9J8g3h19ubIf8M+tZiMalcdZiksGh39Gx4nxshVyYr6ChFRjXM+RWnXPPkj7IsemQSdPMzY1C7A==","signatures":[{"sig":"MEUCIQDmHS/3s+N6zYJCpRR0VkVhzVt3nABgW24EnYfALAsN5gIgRqALfB6kCYnYPrTk2gHgWo8nAjqwHjKfq3FkhrrRvpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61586},"type":"module","gitHead":"477ffad800d469c6cc0a938e23b1233f43d13a74","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.1_1787607122274_0.07959636703565476","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"pi-freeflow","version":"1.1.2","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon / verokes"},"license":"MIT","_id":"pi-freeflow@1.1.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"651484d03ea76ac605301144640d651a66fd9f46","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.2.tgz","fileCount":3,"integrity":"sha512-C3YYAefXFrwx5lZTyaG5IP196/GyrWpzPMMgrPF1nby9ZVBs7FmOUTuTMlQ8dXFB9XSan/wwKTCiTOU+pZlG/Q==","signatures":[{"sig":"MEUCIDiaQn33BtaBdksYb5xd/PhRCVT5IJT7xbr0X8f9zcC/AiEAqpM9bwY7AARjSyl1pSlLQWD22D4u34L+SbC5OJftB0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61842},"type":"module","gitHead":"4ca26b21680aae283834979f1285966290e3fd39","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.2_1787607590774_0.09674924674608532","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"pi-freeflow","version":"1.1.3","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"f112aaec68fbb282c2303cf90e5148077c493afc","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.3.tgz","fileCount":3,"integrity":"sha512-EA5ndHYbhAt1twdKHNNXlkkGs0c5RHPDk8uaDL7fWQnDwTYNJ+aHU0XUx9R66W+MPR+de4NMVf7aNIp1CPQCaQ==","signatures":[{"sig":"MEYCIQDqevlm7Z5LK+H3Y30+WWLmSBdFRcZRNLSaoECDxcb6KwIhAIHgE4RITkwAMe++DXUB4pUSoYcub5GgReMoNK7peptW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61822},"type":"module","gitHead":"c3e10d66b0a931c1f271fdd6ad5b4225bc524c4a","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.3_1787608246143_0.49310686587629626","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"pi-freeflow","version":"1.1.4","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"07e766fb3dad77d537fb2ee4026a11c803c6c897","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.4.tgz","fileCount":3,"integrity":"sha512-I2g8dSiKSY5RDN5JK4CXnsm+mPJMY5XN1IEe0sduXVRqtY10+r3Uelz9DJpNtzx8cFAZtNXlxuiu/7GIcekXsg==","signatures":[{"sig":"MEUCIQCskbGW7PFV2zy0WMT3nrxwPTw+EPOB48txtMQCvkjjqgIgch0QC3Ft8EFqN10c/kFZQ2z6zsfXM4NIrMOdl1ej+iE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63027},"type":"module","gitHead":"db3642e3221aedb70bf37441ccdc5f2906c18052","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.4_1787608363205_0.966327792614404","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"pi-freeflow","version":"1.1.5","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.5","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"ff7b5793cb4f67d89891aa3c7f13ab68fe7ee0f9","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.5.tgz","fileCount":3,"integrity":"sha512-r+D9WE/9slgdqlFsRXK9ctRwtFhm7qvKuMSwfrhXr6vfYlD3KhWZ9e4VJ3dqL/scqXRhy5scrfoTT/ol+1dvgA==","signatures":[{"sig":"MEUCIQCR8g4AZyvB99BafUXHjwXKgAmRNbCp/B9kvpmM0ELjkAIgfBgNrZZGulE8miguORnqLxUUHlP82oG2qsVp0zUzlC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67783},"type":"module","gitHead":"4fca92bf1d2c3e5d3541a31d1dd3c6c38d4e5d9e","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.5_1787608514267_0.16401346239522585","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"pi-freeflow","version":"1.1.6","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.6","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"db1699461aed9e31c27138f0d677fbbec50f28ba","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.6.tgz","fileCount":3,"integrity":"sha512-5HmiHFR2teU5Qh1/4yCjIvh7rvIqf1nDnnKyYgih1ZNkvkcGNhC19qI4lXNcZH0FlljrfZWZfvEaAaXsg7qaOA==","signatures":[{"sig":"MEUCIQC6jaQP2/pu8VmbS7M0CokgLgj+ieaC+fnsNFRL+/Z40gIgLyTDfnVdxF+LFrymc3HjanDEi/Q0YqsLmfDlO/eZZmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68837},"type":"module","gitHead":"cb832585d58abc00e8ceddf2e5cca8522ce5bc2e","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.6_1787608888869_0.726169310608519","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"pi-freeflow","version":"1.1.7","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.7","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"6b1620cf60ae332c8f71beec554e735067c68ab6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.7.tgz","fileCount":3,"integrity":"sha512-cvROV6QB/w3CuR2MoTWHrMFKQFH97rrSe0snsebpIYtfNoMV9L2yOgwjn5NvnZqZkbHYcXiqJTiJmTt12XVy6g==","signatures":[{"sig":"MEQCID3j35umQfkEhwnFQkbdJjA1w320fEGfLAPvMrUWFPtRAiAw9R0NXIP63piQcHKKpye+2KgnTytHq82Jh8uMOreEHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69452},"type":"module","gitHead":"6b8adbc4b898d21762ebdeb9366ed72c8223d0fb","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.7_1787608983212_0.6278341265406113","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"pi-freeflow","version":"1.1.8","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.8","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"eee2074fc19f9c7a95e07d4ed01545a3cbf7cb94","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.8.tgz","fileCount":3,"integrity":"sha512-PA8i/wQ8aCOeeaspsrxCgzuoKyQWlS83qgWCOq/0NcDWQrOquRoE82oViUF8gjEFIEzXQftQFN8vxG/r3OR3eQ==","signatures":[{"sig":"MEYCIQDzTjmXpKeA1beUvcjYBLAFchgnZanYLxvUh2Lwgl8/2wIhAKVY7WY1uSu2NrA/x5Mex4cCtsbNj2dFRPJ8gz0/coYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81662},"type":"module","gitHead":"bd6201410daca5a1d0ceb5119f633c2f5cd2eb30","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.8_1787610309537_0.8841956027173932","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"pi-freeflow","version":"1.1.9","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.1.9","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"79ad3cd368ff79ce72acca0487c0abeb9d11a7a4","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.1.9.tgz","fileCount":3,"integrity":"sha512-6leiDRcTu1hLJEmKDGJS71cQTErJYlomf86pvki2lYpZPGnag8nYTotJzX8FWdxhvNto1U99o4iyajTh4qbXwA==","signatures":[{"sig":"MEUCIQDYBJ5IVEpZMD+Rg055pnC8vakqBaIA1Sj/T5+J/6r1swIgd1ks0X2xxmP7zd9SfAxgjsIJ9VpyRJY9S/nQTSlvlbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82579},"type":"module","gitHead":"408517964f64d281feaaa3c7a2ee118711e45b94","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.1.9_1787610570015_0.4199048842689792","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"pi-freeflow","version":"1.2.0","keywords":["pi-package","pi-extension","free-models"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.2.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"79f181170535f33ea55e54af579c17dba2bd7483","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.2.0.tgz","fileCount":3,"integrity":"sha512-Rul4Aw7CyHLHj1eK6YgrIdLDrNQso5uppIl8igKa855ySX4I+lvtRFulW++vSCsjZ5wXfbuoQxyFBUdY4LMfew==","signatures":[{"sig":"MEQCIEDV2/aZT1QjEqDl9U2jAx1vxwirigrXZGYkog8dGC3bAiBEVn8u3JFZcG3zXxUjahLK9fvyQpYbqljnnQM8ff5odA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82430},"type":"module","gitHead":"8d1eb9a0222b356f345b6cffd173cfdc479287c6","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal multi-cloud rolling fallback relay for OpenCode Zen and KiloCode models in OMP/Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.2.0_1787612060955_0.34598168606950774","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"pi-freeflow","version":"1.2.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.2.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"4cc5833e5bf1c559734a96f218026e99a347a012","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.2.1.tgz","fileCount":18,"integrity":"sha512-KH9rNlTCA48fL+SgWBmEyi2oLLLZEVMtML3u6Qa9YshN1UKAv6yhIR+TpcMIis8dUKq/nuao5zxNdnKBBWqaBA==","signatures":[{"sig":"MEYCIQCpjXIHyb7jiN82hxIiIzg0BCLBLi8OveiCqPrry2lUWgIhAJ5rbJX1mcZxoF8FMWuIJ00oDZEiZwqlQ2ddcuTVc1mY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108677},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"134d830595b15c1d9e60a6f4b61821a186a65481","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Multi-cloud rolling fallback relay for OpenCode Zen and KiloCode free models in Oh My Pi (OMP) and Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.2.1_1787621000203_0.006441683146778399","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"pi-freeflow","version":"1.3.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"7e606e42dfbb9b5b015a0df4872c6888201c69f0","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.0.tgz","fileCount":17,"integrity":"sha512-yTP6smvCsQd1WFR8bfB0sLkGSyDIhb++zuQNcnEhNvSkuFftOoEbmf5Tfu7kjOcB23iuX1zddsP6qJrLMU5S5w==","signatures":[{"sig":"MEUCIQCjOVkU5dc0Zei0wv/HPnyNKKN/7BbWQRQd6OdDF2Sd1QIgAoTydZfEPlENfitspvNJb6VE2wDsudAqUxLAtvcfBco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102505},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"5f9de97c78777a5334a6033290c22607c6f26f33","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Multi-cloud rolling fallback relay for OpenCode Zen and KiloCode free models in Oh My Pi (OMP) and Pi","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.0_1787644148509_0.09587345434586392","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"pi-freeflow","version":"1.3.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"760d2636cfc0f9453d4b4a68e7548e04898cdad6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.1.tgz","fileCount":17,"integrity":"sha512-5nwblXOyxUrWa+G3/L3fBFTU4Coj5O71q6okgHfwFicK96lrl7YENJo1TwYOYeY7DcVNNBDHwXLPZffgZZrlxA==","signatures":[{"sig":"MEYCIQCKMv9hjhw01BPDP5JCEciUK5TxeBUINXCm2E0mOlMcogIhAIk/GwYXaV9rbE/YV9zcFm/ECoGUqukLSpmtbiYup2h8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102655},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"a8f18990ffb8c8dc1afb502811102bc1939c0d16","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.1_1787644366661_0.9651877896785142","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"pi-freeflow","version":"1.3.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"38f075611ff8bd91380a36e31f4e3e30c2df9c62","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.3.tgz","fileCount":17,"integrity":"sha512-4oeIs2DNAL2w6pyU8fWrNXXAgHtX0sFxsqR5UJmMFnUSUmDlGp+rZ2ZyiXPNq6YAoOZWNO3G0V62+EOyp0kgdA==","signatures":[{"sig":"MEUCIFZ/hMPODX/6oS1XrQr/OmNShT1MEzpJjRI8XNj4qP/pAiEApFtXQg/Ah8udlBp2p1v5dSxIxz3jHdM8Th5zCOy2lUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98071},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"774bba60c83b96a5e92cac561ff5a010c96daaf8","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.3_1787649628820_0.7036457326384837","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"pi-freeflow","version":"1.3.6","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.6","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"08822a150436e746825e027cc6ead4c7940cbe3b","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.6.tgz","fileCount":17,"integrity":"sha512-Pp9BRr6CRnm0yr0mI4PJPu+U39vz2hzvUpaxX+x0rYLRjcNlUQaTCdBGsw9BluZ+Ok38lZxeCShK1psPLODJEA==","signatures":[{"sig":"MEUCICB8b0n9LcN+e6yz1UENgwlGg2tvmy1HyfQACLoCvny4AiEAyaRhClH3Er5wF7BZcTPd7zlwtMWJsYt9rsvcWgsD6bQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111883},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"a11f18fc8af063e449f0e44e9dbc9c0159ce85f5","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.6_1787658172814_0.2684530890259229","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"pi-freeflow","version":"1.3.7","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.7","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"34b9c06bfd05848f3a4a96bc4a80d92659399e6f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.7.tgz","fileCount":17,"integrity":"sha512-68ALsGdcaA8KRhAl3ZI+d9PnY4EZd93DU6ebDKxcE9NkHk/Aw43qViCHRtO6jzsGh9OUbdKew8csg7PMIBwWJQ==","signatures":[{"sig":"MEUCIBQkxvTCYWqEsFv0Fu5ufsq49N3swnZ1iO8YJA/E1RKmAiEAyicq3lPpmqaitW+7ngfJ4hnK5Z9d8vwLRt2U5ak02vA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114660},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"63538d3c5548a0b523bb046fe90817e430c73447","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.7_1787679064066_0.6898109371593903","host":"s3://npm-registry-packages-npm-production"}},"1.3.8":{"name":"pi-freeflow","version":"1.3.8","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.8","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"95afea381c7c7c42ec46d8da53db7e55e058267d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.8.tgz","fileCount":17,"integrity":"sha512-yqbVW2+b5e3jQVr4ynpt1Z5pzLFwV4VssF8wOu/UJ4R9HWIX7aTf8jLE7zo+5ANI7VN7yBfcjZuoHInOTOFsiw==","signatures":[{"sig":"MEUCIBtnyFKNq1KbhJyXzGn2dfXbgY4gIAFj2d+/hs6KreG+AiEA+6rWr6hXks5cFz0p9+Oin8+lAckJ5AFtOE9R8OhrW2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116950},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"1af7597e1c3c74db00a09d079c2ff7942bdef5c3","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.8_1787688044399_0.041382187141708604","host":"s3://npm-registry-packages-npm-production"}},"1.3.9":{"name":"pi-freeflow","version":"1.3.9","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.3.9","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"64f47ec27a6a26b5b2458a9afcf2e75c154b7559","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.3.9.tgz","fileCount":17,"integrity":"sha512-d5p57uhbIOyPel6op0JJ1WYMaavzvmQlB3e5WyRvG/N8mTB5bAtsvIsBSl377UzNODH0IffRDjSi9m1wUMstsg==","signatures":[{"sig":"MEYCIQCim4hNE4uK9LH+THbb80OjK2gwwHN1mqskEsoz3BPzDwIhAPfsXwtAWvn4uJvrcUWw0bO/AsA2HVyPMkQmwFSQxCOT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118425},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"a25408f16d488ac2c527102ea9143e112b4687df","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.3.9_1787689181490_0.026642702869709378","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"pi-freeflow","version":"1.4.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"c65981d81dafa502431d68ac78d70662456bb5ee","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.0.tgz","fileCount":17,"integrity":"sha512-5zL2vb721ynttyFTC8iQdCFWmFvPE7DdC+5mMqbI7S+LgvjL1wapv0IqpXA09JdCDWain1QIMJGtgbSPTNk/kg==","signatures":[{"sig":"MEQCIFr4xN5bwYCdi2gZSvyBjmWzP05Ul6W1ygO5vsyeQSBNAiALOs+yAGnuHf6Du8qqxC5pbaw1It5t6BIlaB5xkI8LNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120464},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"b8d94d6312ed3205605f13105fd4f0b036304448","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.0_1787689391171_0.4064479926135005","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"pi-freeflow","version":"1.4.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"355c3e1592cb46e3979de88600eb8a0c9508f1d0","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.1.tgz","fileCount":17,"integrity":"sha512-0VoWpTC6xE9CelmMKz0hRPHqDP8cJxvJy6fyo/UXbcq4K7DyyWpVwRZ20GbmXoyvmWJsVT1EhK3hrS2dIwSSTA==","signatures":[{"sig":"MEYCIQDpL24h3/k1qvNp6m3OOrMPdOn015katHTWkvzxeeIPYQIhAN0V84ASHKsOV+eNcNYc+HrS6TrcnWZQXihBp9VH3VBv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120079},"main":"extensions/index.ts","type":"module","types":"src/index.ts","gitHead":"d65053de9a6feac64d115b96cbf23c3cbc588e53","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.1_1787728244204_0.16384335694281815","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"pi-freeflow","version":"1.4.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"16d1b40a95e50b76a743e723dea38dc0997094b7","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.2.tgz","fileCount":17,"integrity":"sha512-Ar0j/pa0+X2dg9VCc79vDQagn7ZHqQZhIqA4PKRHd07DtXYo7xft1lDnwxMO2fgCRp5vgRksuty4mz01gtKR3A==","signatures":[{"sig":"MEYCIQCIlQLiuTwyBt5Fk+gmX+g1ePl62e5pWyedKpNhKgx4VgIhAOtBdUbYRNYVq7HZUrEnUYOzxw36S3KgHZLTcJTH4jb7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125355},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"54a9f846b13fd971159c5cb202158e3b5ad557a2","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.2_1787737221647_0.3642698525464161","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"pi-freeflow","version":"1.4.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"3b17f83f640d87d78beef53115e94b572127205a","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.3.tgz","fileCount":17,"integrity":"sha512-xEnp94zZcwsIfZEcpB/uPn/WKNONsw6TJ8B96iItpGqtV2vJqP5c/a2OCDH5UVMA9ECr/nScktkYO8NK0NNIOA==","signatures":[{"sig":"MEUCIDJL223hsQNAnwJxbS0894V5uqnkPaY/gjmIK6SgpnQuAiEAifSZQ/wgg6tC+YPmTLc3OV0fbOX8g7LIS9xtLYgHe0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149465},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"3e8a0030f358e1832d76c61f9a13d6b129a646eb","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.3_1787761585987_0.4999395392589645","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"pi-freeflow","version":"1.4.4","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"ac83a01c5d874b9649617868f49364f8d5912321","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.4.tgz","fileCount":17,"integrity":"sha512-VoO1jmxLMxwAAbkdwJG4mzHcECf4mMSNuoNWWO6s7E58IBuVLr0Mwd3CnBzGRyGcWlKMg6DvlRVrUCZrcXJQrw==","signatures":[{"sig":"MEYCIQDp7FZNxPzdD/u+lc795XVcPw63UPzbaJ0kH4E2RQ3xWgIhAN324Y0b9TRUPMUMTafjQUzPWC7t5q+PE3kyhXZJG49u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149133},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"94b76c931b2b34be8b76a6810faeb6730f9b1a52","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.4_1787811129238_0.44424199485685745","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"pi-freeflow","version":"1.4.5","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.5","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"26dbd2773b2a6fc94068ff21bbe50d8f2cc5f277","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.5.tgz","fileCount":17,"integrity":"sha512-/Hfu9JBdrq53VxTO650KgWrNej42kJ5G7p0HHJXjhcyY/Zx+G5TMVeXFI4XvHfG01vqe4zJ6dgPY7Ojxz/5JxA==","signatures":[{"sig":"MEYCIQDALnOaajRpdyLn+zE8IqsF6Be0tmVOAekc/+dAyccFYgIhALIcCnaY7bvV1kz0IuYgdc3tuwKdQhHxL+g/S/r/MX7C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149354},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"bd8aae8233a8cb74e45ee4a0484e7664ba525240","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.5_1787811770972_0.9227333604147356","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"pi-freeflow","version":"1.4.7","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.7","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"45581055cf3dbf116a39b3c0616c17b1b4b380b6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.7.tgz","fileCount":17,"integrity":"sha512-ybjuMUFOjIpHV/VNVEOf2OCRMWXHM9zLHYJIMQi58ErqoqUADmIPXBEpLcdoGhrQsHDdjgDA0fGHbGW+9FaNeQ==","signatures":[{"sig":"MEUCIFhhBtvl2ZUV1m0CI46WCPUGr+nEhGWj2AHqy58xpfGDAiEA6X5xhovsUA29TnoMOBzKGBA44cviC0oKJGBa+ft6zuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149465},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"b37d0e96a224bdc286dd523354782760e55923d6","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.7_1787813068349_0.2573955012456881","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"pi-freeflow","version":"1.4.8","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.8","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"566aab03d45e5e91f02d892f8d61e665fa0c3929","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.8.tgz","fileCount":18,"integrity":"sha512-qcMFoFq/EFxpcAxIiTBQgq1q1F2C0HDlrIqJMTuGxC+2144RKXceCtA1+XQ6Yu+GMRHldzeaF4BpnwO8ICdHFA==","signatures":[{"sig":"MEUCIHvGOpaKkIi5XVBakHmYYVEdfUCC7F4LDpJnjoQHJ0CzAiEAhncStwaI27WiKszRPBxXEleWGyu4u6VbGKAGLHdhUOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158381},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"e2986b4756f693c573a6ccf8f81a4507e09224d1","scripts":{"test":"node --experimental-strip-types --test test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.8_1787815091743_0.9891673082651022","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"pi-freeflow","version":"1.4.9","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.9","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"c45fb7e1d41357c1aa918f11ce01d22b370cfc47","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.9.tgz","fileCount":18,"integrity":"sha512-bkCtjNBLedPRBhPFcYo6SiZ8MWSgnN/w14LkQt0qBTxpvv25lPqAhaQr/XOVW3u0NNPQ3dpbXdxUvoMvZlU9LA==","signatures":[{"sig":"MEYCIQCVmnBHz6FHXdbSChe9UbiLX2z3o5rrg4NtgKQKdcy4OwIhAIDaw5XmieeuOy9FC8+ZUIj9MT6PWdKISveNFZzsqi43","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167902},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"efdb8d381d548b25c91a91fdcfb2f5a381c94ea2","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.9_1787831489966_0.17789130333264414","host":"s3://npm-registry-packages-npm-production"}},"1.4.10":{"name":"pi-freeflow","version":"1.4.10","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.10","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"8a03e5aed9888663c1ecfa5b1ccf9c61690f360e","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.10.tgz","fileCount":18,"integrity":"sha512-HPCvJdIneVSP6+2PQjp6A1MEv/5sq6AJaOQX8YOLhh+JQnbzytbuRg5oKyTrGlzPy6SD7knSQU4665O2JU47PQ==","signatures":[{"sig":"MEUCIQCojijh/zXRiicGHEWARNRysN6Ui5Gr1vsrmybXJLlyYwIgDHGPWmu1porbJ96j6j/o5sofJUU7Le5fWFyXCnAmdTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169197},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"9ecbbbbf1e585ea52409a5c3eaa5ca5994d7dc11","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.10_1787834638293_0.2522622192250905","host":"s3://npm-registry-packages-npm-production"}},"1.4.11":{"name":"pi-freeflow","version":"1.4.11","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.11","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"9dfe20a1d17a7de0ef8dcf94a352799a572bc9ba","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.11.tgz","fileCount":18,"integrity":"sha512-VweqE2v/HvlV7ttSMjq6KgFB6Sl56/nZqX5x+8bLd8ULS1Q4GG5tDjjMPR9cWLHvDcJXExpdh/JMmzzC6iH5kg==","signatures":[{"sig":"MEUCIQCJHoUaIGiqyDZ7uGqM8geZArWXeiYnmIW2f9DJ7+jJUQIgPoUAQB5rOEtGLYagFKjSwO6XvBotvpIAo/+MUBeVW04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170192},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"901094acf4e0c57cc56311285c82c8479f1ec204","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.11_1787835707586_0.7166522597463261","host":"s3://npm-registry-packages-npm-production"}},"1.4.12":{"name":"pi-freeflow","version":"1.4.12","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.4.12","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"9d2bebcc7f6943e700581b96f1962a616c406f78","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.4.12.tgz","fileCount":18,"integrity":"sha512-Ek/CQXP3Zw5nhn6VLSmlTrgw4EObK3UWHyzn3+0a2jM2wHe8M7SwBbNKUbKJniBjYAb1FzMODJ6iwUTHlDVZyQ==","signatures":[{"sig":"MEUCIQCeadLNGNHNpQFJLotdvpc2d39riPZSUEh4A0Phx/iQYAIgfU5GvsTC8ua1doMdTG7J0t9MZl61W/SR5uENxeA8+lA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170247},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"8d0bec42575b8ff23796412c1fc8057c58c56d35","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.9","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.4.12_1787837100258_0.0366045226844951","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"pi-freeflow","version":"1.5.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.5.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"76e93f7deaa85b66b3f4b57dd1a862343291bda5","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.5.0.tgz","fileCount":19,"integrity":"sha512-raRKR5CNCQndSt28YD7hHpRfGwbAt6CBCErr8Z2zrR6bh/HcikpYD0eNX8VMnWMC3UBhLtMUlIEeAmRPCKxjog==","signatures":[{"sig":"MEYCIQCupX3LwvM/bYe5SaMWh9Qhz73hXeJY7Dcwl0SD8a9YKwIhALf8nooYFQtgaALnpageX51nG5gE6jwoK6+JQ9hZTZkz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181734},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.6.0"},"gitHead":"97a0221662e01df3a83142bc9233a7c60c38d1a9","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.5.0_1787853542503_0.19928003053615262","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"pi-freeflow","version":"1.6.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.6.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"927d670b7df62c4640c38bf1b5b5b978bb4a86be","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.6.0.tgz","fileCount":20,"integrity":"sha512-FXYEJd2CN+w5RCRgQQN//RfVGtDadBbk27hxEXuA3AUpoIv1shkasKGg1+X5I8SHTuTRwzRBlak0LDIaUBuyyw==","signatures":[{"sig":"MEUCIQDZzEfTrAnQOSdmro14l4ygF5B7bBHi0PgFpfsDL41DlQIgAKvJdbJExKjte/Ag15CMtikwtJcD5mVjb6MYr2K5knc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205182},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"ba5feb3efd6c08a412d4c756900cfe2159d63c4c","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.6.0_1787982013515_0.31406213896394","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"pi-freeflow","version":"1.7.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.7.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"69cd27220c2abf4b65fa3324b2a819c9a24ca2be","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.7.0.tgz","fileCount":20,"integrity":"sha512-vgQD5YqZcKSiODyAlnHFCasTPlp3MDkQS0krRJrRwWa54Bfk2JttdP8sZIDHCqQ+3jQKF23H9x4oqYdrcPtJ7A==","signatures":[{"sig":"MEYCIQDQHLUFDQl07isyY/ZAdbubP89LkVleceMOKtfKN3tHBwIhAOXB7G0b2I9HtN9sc2FN7W1s+0/j/i9QRPtRIRQAyl06","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208267},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"06c04676261d246a7c32571951d0d925bcb8e967","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.7.0_1788032625153_0.24626586676069873","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"pi-freeflow","version":"1.7.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.7.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"0de62323b1fbc634acdc387659aac97d827606eb","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.7.1.tgz","fileCount":20,"integrity":"sha512-pXAPV2uWroV94MXE8hQdZi/7yGjAf9YXJSd8rtz0PIBbr60jDxitGGmMfsgUa//kHZxt44/0ZB1YdxIWxG3wTA==","signatures":[{"sig":"MEYCIQCwaoysS5wVnf8CxQk8GZfpWQuxBTvFUvO5r372MNpIogIhAK3IlXMZtG2b9XijO6WP6KOV7/rL/uIZU3ej5LJ++FjP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210121},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"e00de46a103e43a829c427c38889e99b5b01bf34","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.7.1_1788033480765_0.7135010524920824","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"pi-freeflow","version":"1.8.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.8.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"69d56214106b5bc53ce8edf65ce9093fc097c3d6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.8.0.tgz","fileCount":20,"integrity":"sha512-kfBayOD3zROolUY275eBhgxpsQN3cXerqBqeyKrIHReZCf7QSez/wdUWlBNJxfn/kbPHn0jSwNPBeWPKUInoGQ==","signatures":[{"sig":"MEUCIChYj417Jdmi/IRsTLKgfyqyngQQqlOcmdSP8AwYHMVrAiEAh91qSIzBTuZqVBqapoTTyUHaCF/tOhoK7kQj2Ijdn6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211088},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"0a7dff8ba53da9222a77afc1978e148a42c764b4","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"deprecated":"superseded by 1.8.1 (missing auto-heal)","repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.8.0_1788038687504_0.28732586682851635","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"pi-freeflow","version":"1.8.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.8.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"38911c144731d5ae2ff80dfd14a17287ae2821f6","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.8.1.tgz","fileCount":20,"integrity":"sha512-Kt7XI7+Ta0gpXQkuuDmMpTFcWMrKz8LqnZuFMxb7sFbBC6E6NEZnyXmUaJSWcSJuAFUM3QuUMkNe1SEKMEeLeQ==","signatures":[{"sig":"MEUCIQCtr1ZLZPi+ciNG+CwCdFK+sCqDNW3iTg9y0iLRJ3NjdAIgJANJBCoA2/KjmBoDPPeYMrC8SKMAnDfYu4J6gBmllhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218355},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"2d3c7d8bb8c1eb6016c0f9af1c134010d2c0d0d1","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.8.1_1788040297286_0.13047547861892683","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"pi-freeflow","version":"1.8.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.8.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"b03afc3e094ef62cb260744ad445244320cadf74","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.8.2.tgz","fileCount":20,"integrity":"sha512-oV7AZPx9sBMFqVC9BSl4ZwQNLRhYHR4uUcThuFTaS87twpJdxay6rOlHhr7eMTS9vfKnu2Os9jg75ZCRLFdmNA==","signatures":[{"sig":"MEQCIBuVAPXqAc+PMjkQz4/D+gh5uRzwDwUzXlxX0RhTUTSGAiApC/EXop8HBCrQVQtpbY2MPYubBvoS0kVmG/M8/3XstA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219856},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"8c6b3086b5f94ca49e4f998a54451ca9d9bd073d","scripts":{"test":"node --experimental-strip-types --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.8.2_1788063359504_0.9240992119262308","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"pi-freeflow","version":"1.9.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"29af1179777e5301a083c274876f4ed4c582a7a7","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.0.tgz","fileCount":21,"integrity":"sha512-X3RhUl5FKeeiHXW48oBxSwULXNHnw5g9/OPog9ca+XoQx7hgU9Y8U7sUDgOZMrkkHPOQcyipVNZMBUddQyFqQg==","signatures":[{"sig":"MEUCIQCXOFasAIFf/xIy6+OdNNqOFwS613UfI5mdtLdAbCaq/QIgME+VlUvAgFHlWk44PJoLnkLxXA7Dgx+ssQ3f+Gh2rl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227405},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"ad4403757f4860a92c2704ba3d89cbc275b80b76","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.0_1788112462854_0.3369035267709042","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"pi-freeflow","version":"1.9.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"1d33aea1f5be0f167a7fa558dd9b915453edc9bb","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.1.tgz","fileCount":21,"integrity":"sha512-56dU6U1K7Gwmywu/NYTbmdyJdqwq55t/zf0FSeN0r9l7WbyjyAc9JbIMSBSlD30I5y4ekkkpfn3GO2jCv8cHYA==","signatures":[{"sig":"MEQCIEBrUjzYgsPp0mBucmyf7+k2OlDJX/iPhBMsDWVq4TpqAiAvt1vWo1gPxUYlfhAURmAQH7roK6dqMsSdBRu807gGzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227489},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"e5eca77773a53a19ef75e6f7ba38d2e29ac88adf","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.1_1788116839432_0.43578050701800475","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"pi-freeflow","version":"1.9.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"40e9fdba39d6d9ff6d0c825ceb4b5125f2aa58fa","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.2.tgz","fileCount":24,"integrity":"sha512-KM0eGeQMc6BjKrVhECDQVs1v0jYJfra6Yxz8BbZaubVnf6qChZEvncMIKLWr5SyTS42HlhnrBntPgrFBlKqFWg==","signatures":[{"sig":"MEUCIQDM+ogu2KlVyON+iphsCPy+Jx9PF602H100Pe4juYcHWwIgQwqE8jqm20OqR5D/U2kllpX5EXDD2gGsIRFRXx4lQsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242592},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c9d76483341c3776cee534842b727eb9a3ca8d63","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.5.1","dependencies":{"undici":"^8.10.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.2_1788127662258_0.4916823359136784","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"pi-freeflow","version":"1.9.4","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"645d810c5b1664a36fc67f7d7f8685aac2d85809","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.4.tgz","fileCount":24,"integrity":"sha512-V7EFxQE9nw9x/Qh7qG/1D7o9T6ShmZr+cwboOuWGCUjNPTuqBI28FFiQ9Ap7sMGjtqd/usopuMjIhdUsyU33yA==","signatures":[{"sig":"MEQCIAZeMT8+ax4dcclfhYchtXAK1zz3F5xYPL2qWTQ5qLepAiAT2Jqi2//nqlUhcbKb3PQJjhyj6rcicVjw1R4/a3QhgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244405},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"1e37ea775e52dc2525e9b1639e6860c79dee8dcc","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.4_1788368345522_0.2993461641790578","host":"s3://npm-registry-packages-npm-production"}},"1.9.5":{"name":"pi-freeflow","version":"1.9.5","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.5","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"8dc71039bd75419a7cc39a69d251275d86603253","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.5.tgz","fileCount":24,"integrity":"sha512-YKa1eCjNrbcGGXJXxQ9Xve2ZoA/aJrqI87BKNemrU0rwf3D93YXu7y46RNNvHwQf01hiqzcCgIfoovFpXdwx3A==","signatures":[{"sig":"MEUCICQseKGeCyFLItaqR5M0G6vVQwR5jwN5LU7J7/RwGZgwAiEAxfPn8olDbBAkObe99V3Ie73+r12r4LfR3zZxuIn5fJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245009},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"d390b8288fba1b308085c1cdb12ec6200fcb3051","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.5_1788420244036_0.6625964525007071","host":"s3://npm-registry-packages-npm-production"}},"1.9.6":{"name":"pi-freeflow","version":"1.9.6","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.6","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"9440ee01f2b2e832c74db116d8df9e6fd3cfab1b","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.6.tgz","fileCount":24,"integrity":"sha512-hq+fkW0qdsMO6Ez6bqeHiyCD+01I6yggLfri7fVq28RsAWSQE3Vn/f8msSnfZFpeifxtdIjNEEqsZKu+hsgIGw==","signatures":[{"sig":"MEUCIEskXF7itvJ17Ei2XDVnk/1ON3N4bYId+Xy6NQHJc7D9AiEA2KBvHOywXGk3sYR2MBCO3Rn9pkw6Cbs6XVmem1fjx1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250190},"main":"extensions/index.ts","type":"module","_from":"file:pi-freeflow-1.9.6.tgz","types":"src/index.ts","engines":{"node":">=22.19.0"},"scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"_resolved":"C:\\Users\\trefeon\\AppData\\Local\\Temp\\71325c2fb217808ee7a39635dbb65acc\\pi-freeflow-1.9.6.tgz","_integrity":"sha512-hq+fkW0qdsMO6Ez6bqeHiyCD+01I6yggLfri7fVq28RsAWSQE3Vn/f8msSnfZFpeifxtdIjNEEqsZKu+hsgIGw==","repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.6_1788429294552_0.4260846822349025","host":"s3://npm-registry-packages-npm-production"}},"1.9.7":{"name":"pi-freeflow","version":"1.9.7","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.7","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"506f616210039da7b27e2f061e4167682be3073f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.7.tgz","fileCount":24,"integrity":"sha512-RPfEEZ03u8TiYu9kRg2SuLaYPWmgauXVWyQBvWd92BfXu3T/wpo7aSIOJOBfSxNUQ0/11hLgx/PM+ozjM9ZOOA==","signatures":[{"sig":"MEYCIQDfWSVKmG0xiVHFnDl58cNcWXyKeVjJBUlkI4ZzvRz3fQIhAJXu+qyiT42Rktc7R+Cf2grDRua6pIIMilA5ebRkENSm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253487},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"24cfb0381ffb4283fa9b2987002b7f200ddb9e55","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.7_1788632666858_0.10104396358377654","host":"s3://npm-registry-packages-npm-production"}},"1.9.8":{"name":"pi-freeflow","version":"1.9.8","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.8","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"7c173e443b4d9521b45baf0c5ab9273d0f498244","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.8.tgz","fileCount":24,"integrity":"sha512-EzhC0gp91pasB3ijAI9WYH1/Ly7yaAkRqFs1cgtxtAgtxdF+m9kVJarLrce+6JaSRBXRZFfLgOBSG5JHbXvU/A==","signatures":[{"sig":"MEQCIEQnCrzpeoAeEG43NPKiKgS13L5Vtv8TvBr3mkUxOKHqAiAcwB3iiqmnDm1YmdmDY0QW7WNUYfm9L9O76nwUMXXD1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258009},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"b29e3cc21c35692ea02eabfa34e9b5c475c5aef2","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.8_1788643764359_0.8780659172660501","host":"s3://npm-registry-packages-npm-production"}},"1.9.9":{"name":"pi-freeflow","version":"1.9.9","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.9.9","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"ea047ffbc773f77f476c8e16c6203120d32aef87","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.9.9.tgz","fileCount":23,"integrity":"sha512-6ODsM9L4ymytfCk1ev38vLBaIgG+qCvWIjMA1RK772OQf7ywQn9Sa/x7YC7KV0udvjLR5UjMrZ9cIHoI7N9HvA==","signatures":[{"sig":"MEUCIE4LgaKuh0Oop3BNjXx0Og86BkPl+gaQxSUzZxwMfy1OAiEA1LbI6aL9sfRRiiJF/RSfmo7MoysK2jMi3pxFInLnbcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254936},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"1c61068fecf7ad9bd5a456d2e80fbf7f0ba5de5d","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.9.9_1788675239738_0.9122806075612906","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"pi-freeflow","version":"1.10.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.10.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"519c6eb4ced263347725e94fcc5aa5f97cdff27f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.10.0.tgz","fileCount":23,"integrity":"sha512-IXd91bVd+URak51td9McBCY2UGZHH/6xv82y82jliMRKMmF1OdaGVO1sQil1ws4xlLqvjJoG4V+8SltVOmXPPw==","signatures":[{"sig":"MEQCIGy4lL3mP76jrpS2HNY9QGkDe2QHs10CZRdxRY6UckbfAiAtgLRi8T+W6gM91CyC1btZiPa0h+ZmaSfrjvsZ4F67WQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275828},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"ff2fdd1495688b8a6957d00269342464cea564aa","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.10.0_1788950295368_0.012629363375874503","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"pi-freeflow","version":"1.11.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.11.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"9015177f4519ee4234a9ca0381ff6336cbd0430f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.11.0.tgz","fileCount":23,"integrity":"sha512-Qn9sgKjxTASYPbHle5GNNNs+TC06SRp2gJEF+Ye/x+vNHOzF+8dU1EW68p3NP2K4H3NfQxkd9LctuabAZ0j9qA==","signatures":[{"sig":"MEUCIQC5WyUZeE5SxmWfH1SXk3ABa0krb9ySMh4MHG+nxuyRYAIgZ3mjRr3aokhGl+ZIT4mI95A2nfgXcWNSfNOUeD5MIPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276338},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"486f25c80f5ddaa5bc1e86b39c1ae2800be9f357","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.11.0_1788958945766_0.7914301603463914","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"pi-freeflow","version":"1.11.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.11.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"10b1280680b1e552e9f908856a1a6cedf78fe76f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.11.1.tgz","fileCount":23,"integrity":"sha512-e6905L/La48O0yHXrqbNudpqT8YDqPsSmE6T1TRjq5/BViUCSRfmfkXDHyEuYutzLehKplol/7ONXVkZNZmuIQ==","signatures":[{"sig":"MEUCIDzsBfhsddbUVnhhun2LVMaYqOVDSr+bw/iU7r+nkzPoAiEA+X5xmci/qgsgXX07kF7VbnJVOodE2mKdLnX71DbYKPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278847},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"038321cfeaa7b920e01ddc09e552129e000a6c5f","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.11.1_1788963965118_0.8893202333603569","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"pi-freeflow","version":"1.11.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.11.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"f031765f4cdc45de14a9c661ab763055c7087509","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.11.2.tgz","fileCount":23,"integrity":"sha512-rNWYz1d/wCPP1KnMDshM1lHgKDErUzzfdqA/sVzimY/V7A3ePZDAcjMAbrvUDBHkwLyjuf16uNM7gWJNH3VGAw==","signatures":[{"sig":"MEQCIH6og9IWxImHy7MTWFEk2TDGNCF8adaN55ODeGIld7u3AiAfFdIQeDNrsWP8WwX3JOtHP0jqahKb8ap9v/3Hd1Jjbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279727},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"724c6d14df24c0e09e206309449a327ac5abdab6","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.11.2_1788972781230_0.004188554404743305","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"pi-freeflow","version":"1.12.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.12.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"58f591dff73e3db34594a6995c7061d08ff08542","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.12.0.tgz","fileCount":23,"integrity":"sha512-CFQGs3yEo75BZSJuUBSGRhXr5RJQC0fM3V0l3lZ5LZeTqRuswzcwVosVwLNYi9bue3eZyrw02j3IFTIrR1v9Qw==","signatures":[{"sig":"MEUCIQCThMhiGJ2Lk+cLv1itU1dkKyWaIPOI+p6stWgRXW392QIgTJjd8lp9KESzjxJ1+P4G15OGKrFAEKT5uSRoU5jW7fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280807},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9b545fb5b32f8688e87185f00307069750c9e292","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.12.0_1789232129146_0.03302560407530475","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"pi-freeflow","version":"1.12.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.12.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"1e3f42ff152755f749573d81ddfc7e4807f9f38a","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.12.1.tgz","fileCount":24,"integrity":"sha512-lCNp1cVvj1oj9zM2E8Q6374AJ3OlHM+jk2FEfRKCI46TvlimMC8G7aCn6TFzD8FN6xw69InlVybA5KGH/13Zbg==","signatures":[{"sig":"MEUCIF84wPDb2Jx3W6e+nHGOA2aPT41BV8oL6sbSeyvv0ztrAiEAvI02O/D9bQr1AQqZEt2407YaSnjnXMmZ3f7uXxEhW8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301476},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c271216870813f6cfc70fc5ac1bef5692fa14fea","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.12.1_1789327186280_0.08368523128538907","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"pi-freeflow","version":"1.13.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.13.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"4e29eb1d90b5ea4b6fb4400cd6ca6fbf38eb4206","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.13.0.tgz","fileCount":24,"integrity":"sha512-4Tcu/7591Nyx6bv2HOUEOaihoQm+WwEFwiL1stcEARAn8WbGZUvnRGhr3SUS1CFvYiGOX3QvbVMhbBpFmMuq1A==","signatures":[{"sig":"MEQCIE4iZn9oQBSIDyu0zWz1kMV8i+jjGwXuk0JD1hTkaBWEAiA60QqFPMFB6s80jZYpfsDub3VbDx8w8qJolxdFEzPhsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319678},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9c69ed574bf50f06701c64f91c23d08ce70a4773","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.13.0_1789396998010_0.9284601210739092","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"pi-freeflow","version":"1.14.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.14.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"bff380f74c76cbeb13cf7db5abb1d28ec22172bd","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.14.0.tgz","fileCount":25,"integrity":"sha512-JrEoUWa0GofK9OG5vLBdvmOExswbhZ9qThMKue5q4bhyJdUWHhY9czIhvPAyZcWr5FbKeMwipdRnHZEfcRl/FQ==","signatures":[{"sig":"MEUCIDeCPlk5Yg1/XnbZRRsNRLFG6g74vxCNTxutsB2hfZweAiEA3uP2zuCsvq+p+LAI4av52PBPWPP++mZn6meq51B65HU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCfnGRKGDxEy6ex4v7q9VBPnTXFAam6yDoDKgkhMtifjAIgUAqCEKU52sLmGmmKnirA+hzZ0bc6V8ts5ZhQq4QMUIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333817},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"8b2ebbb675f4799d27b48f0c41807bb2574f418d","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.14.0_1789584397534_0.7291261277876522","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"pi-freeflow","version":"1.15.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.15.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"793530b4ba1fc1ef38f57c8ad65ad0d0812a5ce0","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.15.0.tgz","fileCount":25,"integrity":"sha512-43u/ji8dykXJWcziaGvUv8nLw6+sCm9+UeHhxtuQzsaHOjHKN7CE2WelDarg2JnxQf2TdZ2W9Nx30KKQIGWB4A==","signatures":[{"sig":"MEUCIQCJ2Y90xCeDZgEuF60ibFW4AJd45bpuDOPBAjrjZaCa5wIgT93Dtl+6qf63GRo9AchP+dE375FZXWTnaTmdBGTY0K8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGUw62aI/IkzEvrD0fyGOGxRbpiaKemtw0GJNqsHIJ/SAiEAz95FTRrljAqTVEhygfp5kQE7K7lQUkS+BrQeOn+7Z3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343633},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"fa9b29b4b1ba9dffe5d0684ee42a2a3550c718d0","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.15.0_1789631816564_0.2020378048709599","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"pi-freeflow","version":"1.15.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.15.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"2f9b7bfa81171a354113e77fde02a728698d30f1","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.15.1.tgz","fileCount":25,"integrity":"sha512-qo+wPkgaG8GMEsDJaV/bWe2j2hKbwmCHEESZKpYaUjS/fzjB0fN3Zs8mN5tr/hFJ1xlN5HeIvu2ct7Fpf3LsJQ==","signatures":[{"sig":"MEYCIQDAMClFZSF9vNI/S/Mz8n2kSkZLNj5cvqMP/jS0E8pYfwIhAMwUSJXPBUrs4D7Nz3++vEpYNzAQirHEpX6uvL+2DmzE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCc9jrJHmAN2Z5SEOkIydlajedAZLX96XeGoHD7hhh+8wIhAOy5OC7+mQ4mcSbC7U6gW1r4MIOdCeN6QlHEEIaapVsw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346547},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"bed55b54bc744b94397758a25fee517903f0352f","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.15.1_1789636766762_0.7653857273451552","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"pi-freeflow","version":"1.15.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.15.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"32a5bf89362394eab46be9fa8d79942fc2d3a2ba","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.15.2.tgz","fileCount":25,"integrity":"sha512-X7o/K1NiWJdXD3u05v/a0XLyknXNjEuNCS2uLoX7NLFYPsCLuoRNneqBU8rmylSYaSWE0Vhiw5lfCzLOUiRtTg==","signatures":[{"sig":"MEUCIGjg10GXnfq9mK9wnEGCnJponNJeT4zlZHU38k39tSJhAiEAuUet03dbBI4OOUGpc7+x04RFFf9xuDGdsciaC58Tlyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGrFwWf0KWLs8OfginJyRbWWdlx5bJu2JlQW9sB3vlqdAiA/5Y+OXhTvTFw4LNJRyK6twc9cwKmcHiMkCQj8/3nbmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349784},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"72d8a342b09039b0c362a9f4edd6bda72fbd4b80","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.15.2_1789639697414_0.4642717286378548","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"pi-freeflow","version":"1.16.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.16.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"6f44477839827f6a4362c88daf455932b417e965","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.16.0.tgz","fileCount":25,"integrity":"sha512-jXubzcfzTaF9qSyxfKzLYTcXpDM4AYx4Czs1g6MNxeFW9O+WU46vAvNaIx8EB0Mp2iFiJiWwycVEGGoeYWuUXQ==","signatures":[{"sig":"MEYCIQDe+4Qh2HlTyiPYpwxIb+/sOEavwqC3SqhwJe+J5WJw+gIhANib+OWgOQF+13T7n5pZlWviZpMySKd1WW3FZlQAw6sz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIClxhzpZUxk32tcnOGp+adxebBLj//wPU+PLniTQArVCAiAQrzltIW2QFt/03RevyRq2NaB5S0+fjhSNelhPth0ifQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350585},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"a2ccbe1dee3770b0046ffada736f8277ec19e7b7","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.16.0_1789647534841_0.8806127934480461","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"pi-freeflow","version":"1.17.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.17.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"bcaf421adc46ef9a4124dc64d79811a9fde1a959","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.17.0.tgz","fileCount":26,"integrity":"sha512-CB5B2ZTKDleWrHAGs2oFo2K7A4aYoGswAWceYSLVGB+U0eRaz5GiNRyQbDJ+GEB4qSIFiIpIxNq+hyKlz/3Tgg==","signatures":[{"sig":"MEQCIBzw59RZsxfpNsyDDDvuj0Ig3pX+F6OyqXAwiG2t7zUUAiA3Ca9OSurY8ZmnNfftMxJqlX0Q8geXr1RiQHJyFylINw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCxVT1EO+6alybQeIMA4jk9JC9yejXJF1rUlo5Xmnk1oQIgfsgZXUoZyq8OgGXZhFIONdazE2Dh+ek+CXxo1TFCdL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368333},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"68f90a7c2fefff2720ddb98f1435840f0d91a6b5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.17.0_1789679342214_0.6362690753340408","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"pi-freeflow","version":"1.17.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.17.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"5118cfce81b8719342277b51d6f2fcf23f852d7e","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.17.1.tgz","fileCount":26,"integrity":"sha512-vSYdKnAnOHZlFHCBNBV8H7qvyZ9nnX/di2+I0K8Jh1m7+zv3AmNqPDkbddCC7L2rlHkj8q7CqAFBDVa1H5g2BA==","signatures":[{"sig":"MEYCIQCFOnqWzhImGHcFGIAfE6k4itNCBgyQJhGOR4WPhKTRewIhAMNCEA8JSNrooyITBPU7t0PCZwYiTeIrlWQxgwq22DuI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF87z5oovq+KvSy3r4i8USxayuWluLyntkESGfSQlKL1AiEApCPRkfbmVsmGOx70UQg65jusF8hZpk3LGqZ9GjuNZGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375134},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"b381bb5d5202db30457f5b805dbde14e2529a43c","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.0.2","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.17.1_1789682276157_0.20900044240636428","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"pi-freeflow","version":"1.18.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.18.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"1a6b7801ee966e72d4972ec1f5d7246f0a47459d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.18.0.tgz","fileCount":27,"integrity":"sha512-nAaunS7hy9zutalg6CIaFmGI4kJIc6BV6Uytmo6D7mINhGE112RZICUB2mvdR596ocquJ0o6IOtWYUF3J8qVtA==","signatures":[{"sig":"MEUCIFjdgmz7hQORPz2xTeZN6sl7pqQPwm4CRUqndqbj889dAiEA50ePxYoiRJh+oKrA9fwFey8s2nx+cKPp8ucIOPfqvIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCKXE2X8bylbnzLuHswWR0ZC5Hg5cak9U98P9FTvb65zQIgAgWBhz2NLJZKjUn7xaG6jxIN5STJTjpu0JaTnxe56Qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388142},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"992b5499a095d8c047b0a134adeb6f11609baca3","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.18.0_1789708172979_0.5481801223222478","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"pi-freeflow","version":"1.19.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.19.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"34def8bd900313186fbba202484194694373e9ee","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.19.0.tgz","fileCount":28,"integrity":"sha512-6Iw8OaZ4JmSMq+++dO4cNoS/LXgreB4eCIlKbW1AgmITZs5rpOuzOEfWgQGY2Sv8wapdZY5Q2Ngtrphb9JmMEw==","signatures":[{"sig":"MEYCIQDlRj71QdsNk8MAzvC+v/CvhRezIJJ7mn2lezuBitYLiwIhAPVY6KPTZCmI/LFhxwiUmWe9FOtYjb7MLImng4IAj4en","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCSW1/KroUACuR8tRYYOeFme1w+6Czd53qx3bCAHRTVDAIhAOFHGWVqorS6t/VDD+FeTAjBv2yLCrBLUPDsewvSP9k0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403825},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"ca20ada7ca304ee5efdfe18422a8a77c4a4fd151","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.19.0_1789711459020_0.40747163512984064","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"pi-freeflow","version":"1.20.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.20.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"3fd584040859df5d7b418304a812a590d8d9e9ee","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.20.0.tgz","fileCount":28,"integrity":"sha512-lMZBQeI6zR+q90Q4Ezd/Yu2X4lvcXH4HVmtSxKG23IwOzCyLsdgzccXacjqPZqUzFAMoR8N5vXl+k8PNDXoPEQ==","signatures":[{"sig":"MEUCIQDNnAqlAdVPtP6qKrpeRlBVQoqTF6U/m2cc3wnGyvsbpAIgaCNoNn6F8XCEXEpYE8tUvZ22ujBcautkz8chPwEdXag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVddVOjrduAvf+E8ULV61n81zGbHWmi5rD9y5Zd7EcLgIgGrEY3GuKrtZeqxhifMLMdzswkpoGvuOuaFy+GXFUQ+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429331},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"fcbf816ad08c9f256cfe34cbcbea761307ce8a50","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.20.0_1789828105466_0.9720373432836764","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"pi-freeflow","version":"1.21.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.21.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"d900e927dfc0fb5ff0df43a82c03b149d64bcc80","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.21.0.tgz","fileCount":29,"integrity":"sha512-wby5X78qD32HSPLpSWJP8Pkz9I07+2wt9EMCT5s9WilLZMpymXWfRh+2ZHqaqHR7cHQ2v/J4HH1e2aaTohj6+A==","signatures":[{"sig":"MEUCIG+C41t56vb/XDMFB+elKMddvpSZ85LVOcAF7h90M5JjAiEA5rp0yP3w6WtVqjnUK8oFwPEAg5xpJHcmFa6i7cfYVgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQFAQOD47XZXJ/6g+MAf1guwO2LuHpzsZU/usINNXeDwIhAKkUqdr88OR3+UYJRBnBgCZCS9IXmQX/K1wQPAZZAr+a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":460072},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"27cf43596d97847d4de9f89f5c63a99e67fa73f5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.21.0_1789937974835_0.6435919712952625","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"pi-freeflow","version":"1.22.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.22.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"64711f0d96ba57258f29ed11bd1e9d721520b0fa","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.22.0.tgz","fileCount":30,"integrity":"sha512-K+hWT1GJsIT1prbR35mACMZESV0VHoXS9wdUQiBeRJIgs+LnyxetReC1LyPeicutWWPvSu9iHs3okHWqpx1JQQ==","signatures":[{"sig":"MEUCIQCJ0klbr7LqP2OGrEcYcco+4w39xhwyra9rVyco4rqUVAIgbQDk/2hcw8G/A/spVXTe/J/c+OSfiTO6474heL8e0hI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBV9/LZ7US3jCddTSL+XbeW/7jRLGdwFofrOjo7aKy0hAiBDGZfvN1EyqsQbsIphsFrLUHcCkC9UFwguL8PnECsWVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485903},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"344f390f9cd3580522a32de1732a5d0e634ae8a5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.22.0_1789939848305_0.2589120913359495","host":"s3://npm-registry-packages-npm-production"}},"1.22.1":{"name":"pi-freeflow","version":"1.22.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.22.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"cb9b665e9007adabada208e994f150fe062204fc","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.22.1.tgz","fileCount":30,"integrity":"sha512-7gfQmtwQ1tePHkUKm3PYlBGgRUbd0QN4mbnnFOEewJ82YrAXrwR8SKIHJxc1FgbGTImPwwwxT8vL1FiVGOpN7w==","signatures":[{"sig":"MEUCIAXDXcZAX409jm2VHh0JHOCpMCumm5cZ3w/hLAObNSKGAiEA8E1byNXNO+zo9CueCWCNpeJu0XS5Y/TGRF4KXzj+dUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICvbklPbzkJG6IKF3EU0gJxbn/rNLJ5Ml5xs4FS7AdjaAiAZ5/epzvpJuG+HYiE7Op8SqCU35d4u9VkLPz6e/keLQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486662},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9985ddbd8943763d8b2a3aa53ec54f6631a85fe8","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.22.1_1789940461270_0.9006726881024754","host":"s3://npm-registry-packages-npm-production"}},"1.22.2":{"name":"pi-freeflow","version":"1.22.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.22.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"d5d4a73b12f7ef2e7e579d64d47430fa2603ca13","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.22.2.tgz","fileCount":31,"integrity":"sha512-KpvIfOVMtdKpJTz/omhI3yK+G5SFps7fx4pyKds++AHWY2tZNGVwVSPrEL+awUZZ+7rkryzKwBXNmzoAhgPoiQ==","signatures":[{"sig":"MEYCIQDznBS8ayL/9MYe7Z/wg2h/gKXgKHyVfbrv/2u6PssnUAIhAIv8U/kOBreObN+IF/vDWedcw15LGLpXLJdw0h3bQaLX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDb4fqVDc0o2IPYWLa8j/3E3qbk9ux2Hy7TcvTyTujkRQIhAPZYhhCWjAqCWwgKsY4wX+4l0pLih1VrgTZZ5tBacqMc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":497614},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9985ddbd8943763d8b2a3aa53ec54f6631a85fe8","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.22.2_1789943107344_0.8816770115765173","host":"s3://npm-registry-packages-npm-production"}},"1.22.4":{"name":"pi-freeflow","version":"1.22.4","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.22.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"bb33a56a16be7bf350125990f9ca910651531708","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.22.4.tgz","fileCount":31,"integrity":"sha512-kRNaVs2nJEjrgEtQWAlSJWcevSYQXks84FeOZXT2gTWUB06xg9BscWst84sgUYwVbgVWWa0ov1VLa24QXLTFwg==","signatures":[{"sig":"MEQCIF3KDvpGZ1KpQ2QcflkRGNGpFTSmd6k0Limfah74WrVKAiB2VFRpvXUiKdqR7MoHO+BjezaX56bY1gZB0WpOzELioQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDPlSWwKL75t5trK+Me3NNe0olp0n8Smt4n0/NME2EOOAIgTu09haZla+o/KRY7jSOT2RVmXyAV5GAsjmzPBzFQfJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503591},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"5b180304e93173814dbe0eb495e764523a4f5459","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.22.4_1789974949644_0.9247428188345763","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"pi-freeflow","version":"1.23.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.23.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"79705280db0bda60b86a52b12c02d7c06f156150","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.23.0.tgz","fileCount":31,"integrity":"sha512-f9hX1a3uc8pyp93E6YoukWd4Fx+/Fpp7t6F27mELqNGjMXRQA9mheP61nDTD+acvi3mHBBgpnyi+QI3eOt9b5g==","signatures":[{"sig":"MEYCIQC2612uyi4EzebqDsDCMwurCxPBrQRGjY61+xmNWidXjQIhAMpD430lq9hf/lnOix+TEa6S1WLj4l2Bj+6WYzBw5jmN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD5zdUPVGx+u+tFr7oPEhC6bqSQrDJFAPbH1cYbqkzrGgIgVF58GrLtfCis2OAmoxYJq9ASqRtMrs7GKMzoKk8HOp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505916},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"b4af213476d7fbfda54f19d9e3225b58034c016b","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.23.0_1789978780733_0.8491606759664236","host":"s3://npm-registry-packages-npm-production"}},"1.23.1":{"name":"pi-freeflow","version":"1.23.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.23.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"f6be1137d376d58dcbb7e2c45db0263d320cdb7d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.23.1.tgz","fileCount":31,"integrity":"sha512-QpNJJ4kcb0nuRRFx/BSP2RVX1i14810cxAP7GGKzjQSlU2sbwW47tmhT5jcOJvxNOJMrfNDQ9JgukWVnolmPPw==","signatures":[{"sig":"MEYCIQCeQ3/q9P76apJaI2lE7PDOHWepWnU6Kt2AhgFdyQS2wAIhAPOFj9tiGy6huzttGR42ZTrXGZYmCMogRyemaXHSxFkw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD6i7b0OmidlIqPXC6B5KwImweldsxSLlINCLqDTATeUgIgMsG/OfQJ2rs12hBW1ny+Ah/rIXDVaMnPYsop9v5/Jbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509598},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c2676f6713746c158b380b66f486ab2d629fcfea","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.23.1_1789985206195_0.7255571321357361","host":"s3://npm-registry-packages-npm-production"}},"1.23.3":{"name":"pi-freeflow","version":"1.23.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.23.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"d0a48e55db17787a81f405c76ed025f1486a984a","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.23.3.tgz","fileCount":31,"integrity":"sha512-BCWvK/cTAV/hg+Tf+vHYO7j1K6DLCCq/phIYLfi9FnsQIfAJXB3oK576DHixIw1xhQZk30gVWKATjeUJW0iMBg==","signatures":[{"sig":"MEQCIBRGNl8ngffVlRrMNVcZpOzSsrymXnu/EoOan2TUxtzuAiAP9cvRoSCuit4izLdHvLjjZGlisXHjM/6j70S9ixdvyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCp1fyVK1JOsPM0yxaN7JrfcRDhqe7NVo1rzYEqWUGkaQIhAOwo+jLiDjAEn7nXd1ob7kKOWZsY/98e6eJpgZaZ5+2T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513832},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"5501627cb297e024ed929e913461c5860a288009","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.23.3_1789991490475_0.3829456838939551","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"pi-freeflow","version":"1.24.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.24.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"91b1851f31783fd5eb6fd9cad5f1c00a7a9f5b23","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.24.0.tgz","fileCount":31,"integrity":"sha512-uxs6SxVXl3+7RMRAPr2Df6MUqaKqkIeb9LV/LfrPMC9EpIeXT4a6M5GIPQ9Pdkvimn9Qf9VLl9ewlekhezgvhg==","signatures":[{"sig":"MEUCIFe+OkwcnAQR29XvNghWaN85qzHzuwU0bitne8DD5Si8AiEA3M+uBWqhWS1h6LxHsRypuqbMaHLMkoW/Cmzi/vAIyJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCy6TWImcVkjcoBDAqNbzb9Rht1Kc+i5/EhoVi5V3U+aQIhAL+iVQfuC5o49N7dDW/LLKHtnvDBhJNCYAH8lzyEQhyd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":531628},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c3a45ad18d9ce2840038eda6d508fa684fa56cd3","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.24.0_1790056848002_0.24349632385241393","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"pi-freeflow","version":"1.26.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.26.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"1a71f95fa654afeed8f6cf5b5ca462d96ad10fe4","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.26.0.tgz","fileCount":31,"integrity":"sha512-217GNZ+gfhX2Q8C3JRwKcCTHLkBimquP4Mk6idlgq0+x9XcXAhvXr62TBRObQO4LXZe/GGvGeRcadt7Mt/MGew==","signatures":[{"sig":"MEYCIQDCuVjzb6n8XCdofBgOS3soma5VzmZHb+gN1Grsoc2HuwIhAJ6JjCeZIk0CEe0Wo0vQw6FduHoZxgzMQUc4Gm3uLThZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDI0kP2CWpYCd6V7MnBWmWZQr7vDGW18O+HBBz+jR0g0gIhAMuZi23wJAO0CGvZxxP2d95gCUYrh2to4Sz17m/VEShJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":531442},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"f0dea72689c2c3411f8f5ac889896496a4f80ac1","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.26.0_1790189114044_0.4192356419795471","host":"s3://npm-registry-packages-npm-production"}},"1.26.1":{"name":"pi-freeflow","version":"1.26.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.26.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"de17f6d54e6337818383823adf068a6d07491542","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.26.1.tgz","fileCount":31,"integrity":"sha512-6wEsOhJygjamOPjmOsj5gaxg2YeXYUPigTsPiBN8/VSBiwbT7L67C2EA+In+kWpuHs8PpU27dhoN8Bs9U4LTmQ==","signatures":[{"sig":"MEUCIBPkJKXZ/hjRtqjhdPC3Vazhv1sVPdlCVi+l25rSWJM/AiEApTqg7peFFKo/6noyzlnWNTF2SB/HXkSVBACfjAzFVQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHf8ogBvcCt+eX9Qrzb95Bocur4tPW0eaQsCd2lf0U5qAiEAxJf/JnTRhnKvJHP+4e3O35nGUMZtFqIijYUb84x2AUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546856},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"a37b7308c779c61fba63516c7be8739c48c657d4","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.26.1_1790251623193_0.41833505647816605","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"pi-freeflow","version":"1.27.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.27.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"f92deeac71055ded397e57da3a582dda4906994b","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.27.0.tgz","fileCount":31,"integrity":"sha512-8tRL0/Imb8WoTLGoBF8XT7+2rM2fSwB3Chf+Tu6WGvCk/2ZKUaniCrMD6E6MsHyC3zjOEuNbou2lqrBVLFJpYw==","signatures":[{"sig":"MEYCIQCLWCQvrqzlSOGNetjJ+4F8MA1Uhl5mx2ZMr/YsgQrCpwIhAIb0HGPu/CNGCI4F8HwwLh6vqRcPrLyQl/QSgj3xZtXj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIQDrxBQv/rVhzRpL3Zlef22gy4uMGnHVe6rQNfg7Wx235wIfL5VfN2vA6qBhCU0+n+F0sWzHOySRRnKOKjwOe/ppaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552231},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"e98d4c5985e78af15feb101ae3745deb7744ffa8","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.27.0_1790328602347_0.5283365030054417","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"pi-freeflow","version":"1.28.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.28.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"76d12c9b28aa0012ff297e65f184443bb9e5ac02","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.28.0.tgz","fileCount":31,"integrity":"sha512-PfIta4/b6ttNBSwkSPa0ZRpK/CRFbafUoPrStus/6ujHswoWHtzjhcALsengJe4IvHDnwE6MgLmKm9sZSOwORA==","signatures":[{"sig":"MEUCIQDLZ7kPloS2fIyMRgPwpRidtR8m5C5IIAnJiIZaYwYOvwIgE8kihqEi+9xIMUG5W3/6Bozw7WmJhKuhM7RIZua9xXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBjr0Cy1R6rNdW3anU8d+ghwy+X5b0nTZzrt6382CtCPAiEA5Lc+hANe18HngU/37IrU4gcXIdVUTOwh+OX4CNzLL9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555946},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9cb4d5b4c990feb9d7602902e8ff080138dba760","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.28.0_1790600720499_0.6506370129676353","host":"s3://npm-registry-packages-npm-production"}},"1.28.1":{"name":"pi-freeflow","version":"1.28.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.28.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"77c188764dcb9ce1851a5e247263948671646f9d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.28.1.tgz","fileCount":31,"integrity":"sha512-fipWLMocpYbmtiY4Xow5t6PcPe9d8pXnmAl5C6GiIU1tJt7CnNB2CxqrXySZMmvAY7MTGZOhItG8EyntS9qdBg==","signatures":[{"sig":"MEQCIFWMkB1REB5MvF9pKeKBQUNAD2VFlYG1GGBlkPlP7M6ZAiBumEKNErAKARVfxQ7TV5M9nsScUm2HZUPoUAB+8nR1iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFCi8dcMsoiQGJZAMLMuBKum38tf+KuTOgypdz7I3i+PAiANadM15jzMWqOwZWBwKzNlqVdR1+8dxSE4cs5W3sKMzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556198},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"9ddaafbf1a071ba97bb8fdc6713baeafe8d5db2b","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.28.1_1790604707494_0.44203154323398675","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"pi-freeflow","version":"1.29.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.29.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"28431ac9d81cb3f0f136359a8b3bb267dc0bda61","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.29.0.tgz","fileCount":31,"integrity":"sha512-g8J81cIlwBnLKNVNKSi0Ohv9zaLfDFNnU+btYJNKFOq6OZ5KSHBhRvUWBe0H3y5KOwcMHAqVGHpXSgyfiQPIUQ==","signatures":[{"sig":"MEUCIFvZ1dHV9GlaI0pIC/sftKTSGG6D6QnaM7LnmWILPrhdAiEAhYOJHcoPN2S9rfGwr478xuDkjwjoZGQXaPXVb3xCLek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDIVH30pNNveuHKxR04e5IB4W+2mbYyaNJBTZdbQ8995AIga3EWREEd/yjPrgSiNleP7UVCu+hVGXOV/r8Mt3t65ZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":583630},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"2cd82022dc893c0d72de2fd5fa9b8be00bd6f304","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.2.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.29.0_1790859979085_0.9490629906201256","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"pi-freeflow","version":"1.30.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.30.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"6d146e0e8d1325a6f30365d5d8a5a9574a59ee5a","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.30.0.tgz","fileCount":31,"integrity":"sha512-c4gJVRalAPMrAsQzrLRdgi0qgBRNah/i5qTkfnGNyrWYKf2fWVDX9uJ7Qer/Ve7ySxzpYJ3hVR+3zyrsIKgYGw==","signatures":[{"sig":"MEUCIE00Q1c7R5eBC1Xb9S0HYX4/28MUcwG5ablUelxfDXpEAiEA3gnPJ9ypKLI45FBkHYV6SIfD/sCAMCGbvPAADNeDpvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGN+k2c0xu5hBA4E/wLgT4L+B9Za4DLPQc8eY1l2O3A5AiEApO1SUCE4u6SBOXJS7NU7YyW6CsrSGMl5D3f3i/eFd6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606827},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"de0a0fe5ebd3a13680b998310d4803ca78e6a874","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.2.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.30.0_1791012478538_0.2636661294715401","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"pi-freeflow","version":"1.31.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.31.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"e0efdecea32bb35c32f98ea53a47c435af3cf9e8","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.31.0.tgz","fileCount":31,"integrity":"sha512-stLJw40IspTPuaRoTDT2pWFaNhB2nMTL/Lqs4iO9rM34BpA6YkaL+JUWaHXxtduaGgvsMKw1MIhXcl50esWlaw==","signatures":[{"sig":"MEQCIEsT2oGMGlAQVokndJzpi2CIYIwiEbSUgTCaLV1MxW4NAiAUUmjVJvDqG5epoHbZUO1tXNZ4nCTr8XVQN+dQibMuGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICeBfZ+pUsnh09aq3i/CbdMR+vOY0+Y/bEfEKYRIunYNAiAaVHqZwgvyAQKb5xSS3oX81+BFNorvKp1/i2c08ajU4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607797},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"db8201b5f64bf9449d02a8ae054549db1a13a3f7","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.2.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.31.0_1791012636012_0.9589298982361076","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"pi-freeflow","version":"1.32.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.32.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"415591a0af8a6788ecd0fcdd87b39645cea9beba","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.32.0.tgz","fileCount":31,"integrity":"sha512-1/ufC44NjpAYv8mkB6kgjXw4nL/tkcfdw6eIbNbiGHuH9nrINXwKmsqWb0mPSS1aIrJjqn4aZIRVA2FzZpipuA==","signatures":[{"sig":"MEQCIA7tOf3ik8+CEiF54s6l63sLff5Ie2ZNqJ46zRPyUYuVAiBf3O/DUrhctg8sYNXVL3MO4V6cL/HHh+h2MYfcc6fxNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCFFpz8T/PPRnLo2Yo4nCfobrEfGzVg/mIo2BRQoVgrigIhALrH/RnEFw/S3gu9e/Kr8iQaz7O8y+yyOkbhzbp1pUcC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":612860},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"89c930603c6281c9a4c8b0b9777a1a66670b9d38","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.2.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.32.0_1791032391415_0.729822134636726","host":"s3://npm-registry-packages-npm-production"}},"1.32.1":{"name":"pi-freeflow","version":"1.32.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.32.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"3f326366e1286a4c3ea7d2340f4038f76962ed5d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.32.1.tgz","fileCount":31,"integrity":"sha512-jvCUU4LpOF4vMUJGcBYJ0XMlvlylyyUAnFcWshiZQCy/Zhif8KCE/dOxp17JxeqQd3e0grCNXTZipsBsNpFl8g==","signatures":[{"sig":"MEYCIQD457NcTKgXzJaZNANMV103NYh067eFBv26NniI+QWNPQIhAMbbrFACPUV0CU0sYGJ9YlyqfCVP0lYHz+jEez2JsJlm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGhg066MlbQnyHR715RthOudBuclNVwlUs1pglSXlzxCAiEAmjVXReon0LsMwEnon0TDqUqzbE8X3N3tw2AVzTj5pGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632098},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"d468c188fcc706e1e15bcbd7eb85259a5f03d4c5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"12.2.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.32.1_1791256405420_0.4581214776241549","host":"s3://npm-registry-packages-npm-production"}},"1.32.2":{"name":"pi-freeflow","version":"1.32.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.32.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"e76951f6aac4a4aadbf1f253c428d84f343afca4","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.32.2.tgz","fileCount":31,"integrity":"sha512-jUHGEMno0xOj6FCs9vaY0ENOOsHYFBOZeTR8KF7BA9646fT7h48NtpWE9+itT8sqQZIul8QOwgjydpD0iebFpQ==","signatures":[{"sig":"MEYCIQDE817AOI17P0f7mATmLrOU9vdsgMU/yda+WqaJj6Z97QIhAKun1oOPRalfS0R3XMbchwrjVK9hpC7RZ9kdbstsDhDW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdtS+Wv2ZgJC3qVvKPmzwEHYR7MBDzeSURKO3IVTNe/QIhANH/SGdMwpYclftdPfSmxMutekUuijJS3hkJHRJV2n8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631045},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"2f31327be136b6f90cb1f7ce7b270ad14ec27002","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.32.2_1791378496919_0.8096853072011863","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"pi-freeflow","version":"1.33.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.33.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"f9fa605e05012058e20399434ed6b8d01ca12358","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.33.0.tgz","fileCount":31,"integrity":"sha512-kxP1IIDYZ+VXrsQM+XMzBG34sBFAwm+/vStmmn/gO/OxPp93S6u5vd/VUTxdYHzX/tIGwjA28xuV+XvgPZe3YQ==","signatures":[{"sig":"MEUCIQDHoXUCMurbNX5puy1z/TSj5bQFAkDpvrYmG5OGZLSjVgIgVtajRt3P+KaOn4ZBXYHHppQA00VpkrmGc05ZQ0PsaU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC8TAvQWNoPN/u+jSWMCSZ4yUEGalIP5qdmeFUbcTgFAQIgIW03rjkZpje1UYWC+RqDs0b4R0zjZH1wQchFaOpdCC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633434},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"75e20e98fc42664c278c916a1c1a9b040bc408b7","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.33.0_1791404792815_0.5791820208957004","host":"s3://npm-registry-packages-npm-production"}},"1.33.1":{"name":"pi-freeflow","version":"1.33.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.33.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"276776a0029480e52010233a757a97115a6d2363","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.33.1.tgz","fileCount":31,"integrity":"sha512-Z+lyTpFVM/MJl789mGhEMDpYpZRTeu/cFjH8YIVILhgLProjYJIDcwXfQNHCk95QFHVwIuikEUwnCH4it1StFg==","signatures":[{"sig":"MEYCIQDBXTgrlNl/Q0oJSOygTVbKmwmxwh8DSgF2ZuZyu2SOiwIhAKe2nebHLE1sLUnyqYxM9Yq4wF5U63LZVy2/QlHFC/ZW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDX7ATIjn3hNTJU12s/SpRB+uxij4ov5mZD/7sJG9iLHQIgG1B5tHal33SVXU0uGnRuxHRwnX+mGSglzz06DDR45MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":634091},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"bf1263b621eb9124981b0cc5c77842f431f6aae5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.33.1_1791454866418_0.30094362098073657","host":"s3://npm-registry-packages-npm-production"}},"1.33.2":{"name":"pi-freeflow","version":"1.33.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.33.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"d9ac05424c79bf5ab649e018f6850e0f5bf2ea56","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.33.2.tgz","fileCount":32,"integrity":"sha512-7opKVKv5efxB2a81s2A0apJXAh9kPhgc9OTCbrevXhcgiLMk8FQtqiMhXlhRW5mDzhX5lOuB0/o/J9Gy56X4yg==","signatures":[{"sig":"MEYCIQCxuR2Eu1rUyfHKrlrCeERUmTTRa4XdQKOK/aextYJtuwIhAK0JdtYQYT6M1mn0DJlK8ESb/H6nIf/TQGwM6mfUe4Ad","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDD7XoK2E6AXkrNsi7gnJFQ22siZ8JevJ0fnj/84i62MQIgGFfRdCnYHV2rtTsHpm4TsQREictw43FDbGmXanS7RCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":662387},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"bdde77db4c9788ac65b459f1791eb2cc9786d0ea","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.33.2_1791482457017_0.01937652516155719","host":"s3://npm-registry-packages-npm-production"}},"1.33.3":{"name":"pi-freeflow","version":"1.33.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.33.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"7b2c1867712ee3a80da7e21873cd155a40085d1f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.33.3.tgz","fileCount":32,"integrity":"sha512-RH53qLJNOo15oiJ8pNJuCHGcsN9/BCv64PqQkiujWS/zwNIhelJc9XfXLphrocNS91+3u87T3siFJF3xN4eluQ==","signatures":[{"sig":"MEYCIQDSRzQObAPtQcA+CIT9lsqK6f0aQpzqk8HRfYk4TwNFcAIhAJqGkBn+A/qqnaKCv6607jfoozZwZ3pOdrybM1xdh9Gh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDNPtcLGKI7JJACsFXpzsinTFzjquVoT3wf6tBamXL8XAIhAP5wEsCVgOY9MQVQiSwdfkK/OgN/QaqAHJvNzUaBGuxx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":663851},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c5d96648c811adfc45f88d0bfc0582c5fea0d6b1","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.33.3_1791484702693_0.6004009710245883","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"name":"pi-freeflow","version":"1.34.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.34.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"25c34903c38dcc841a0c815a7895b855bbfa558c","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.34.0.tgz","fileCount":32,"integrity":"sha512-F5pRkNTrrpTjyU+PoU88Ig/+0KmHNrEk4maLfZJk1rJ9TLPF8yC8bcVA1iPFaC/bs+q7t7p1OvNCsWtUK0IFRA==","signatures":[{"sig":"MEQCIC8xtqI4SCUFs23DlS0xT9tLb6fRSp9afpAb7mO0UGtIAiB7fy9J8DIPCMQh1kgHBzeDBuAuD3MEMZmPs5ZFt1r1Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnijxg4BGs7CFM0VsAQRioCpKi6hI1mAGrE9V4PpvAHwIgMtkgI8zVeeC24281bZTK5u7J1Tu93GB574/65FQQL1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":669977},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"4bbebfaa5d9b1e39608d1c551fe397daad10b275","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.34.0_1791564604103_0.05593060693941854","host":"s3://npm-registry-packages-npm-production"}},"1.35.0":{"name":"pi-freeflow","version":"1.35.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.35.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"a7346897446656494e6aaefab0519d378e703397","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.35.0.tgz","fileCount":32,"integrity":"sha512-G2PHcBgZxyl1ZVpqYIoQRCQo6Z8Wk8OWkzRdypLL1kPhhaVr3QkRzFaLuJy3HV76kDcpy636AT5q6EK3az52ew==","signatures":[{"sig":"MEYCIQCB2unKii/Ft1GYq23FPz0RTHjGfFk49g6P9lXEPlelVAIhAPm0Bb9352jDV8Zmp5O3NUQ6ku/Iq94syWX8oSVI6gma","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDY7FhLYmePxI/G691Q909N3/bRbod3sDIh2Eswlu3AVQIgc98P+hsNDKi5azNQNpQ1AXQAan0H73i3N0G+H5ZMtCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699760},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"4fee78caa5f39b7522bf992c7fc50e2599b82566","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.35.0_1791894059976_0.03746191011043343","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"pi-freeflow","version":"1.36.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.36.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"8e8511a7e8ee43ba0631129a87ef6858e10adb7b","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.36.0.tgz","fileCount":32,"integrity":"sha512-jGSsY7FA/z53uWmPtNjugL13NfxckgQZX5iBR3HBBkAzeNMsgRdxep1opeZHrXeeahKvPA6iZNZJCcc7rkwbxA==","signatures":[{"sig":"MEUCIDjPK8zih9+80qWiXd46BBN9YkVXnN6bt7R1ivzowpQyAiEA0njTKoOHTnopwWxlULwPkN3N8ERVDTopIGK1AuXkQ4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0owLnPmNHhuOX8NBzKt41vkrux/K8jVuxy3ToWAeV3gIhAPdgtFcdjcPUUxyZIC6D324SbnhvE11Ke5ctkXYqVgZt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705201},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"d1a2a79fbfb3628e09ef43caa2c740f44064ae4e","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"24.21.0","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.36.0_1791897024960_0.10887120100720615","host":"s3://npm-registry-packages-npm-production"}},"1.36.1":{"name":"pi-freeflow","version":"1.36.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.36.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"a3265dd32f7e5100bc8ebf7f8115fd5fd2090b81","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.36.1.tgz","fileCount":32,"integrity":"sha512-X9S6QjUsXvvKGc4piTX4ne8YaQKlmfRd57fWJb0lofrUvjqCNMmd/AnmH3YvWzwnh3CmgTz7Y5oN1CC9SWwzMA==","signatures":[{"sig":"MEUCIQD81Z7XpBHxzCrS38XhWzvJTXPdLWDFqWCAy+hGannyuAIgP5Mqquga84S69H+5Wif8UfX5ebYaHkyWpE17aEl7dMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDiBCfYuS8v3/NyDmxEJwJ802/CxeawJH2SLpuxFXRVMQIgXvvTV7gkBRFkYBJX8meuL02+Jtb76YSfKMFW5hFqSYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":725045},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"cb4b0838f398922da30f30202a93b79cf5c009ca","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.36.1_1791962844507_0.06630589349014415","host":"s3://npm-registry-packages-npm-production"}},"1.36.3":{"name":"pi-freeflow","version":"1.36.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.36.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"299cbbd43bc851f69eb70deef2a5ce99abc66d73","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.36.3.tgz","fileCount":32,"integrity":"sha512-/8sKmiIw2dqZcym2Es1OXifWBJSkV9L1AxLu0+qVjibaU9wJx5o2tYGF2HSFNkPbmdth02XYePX7j46+o5PXMQ==","signatures":[{"sig":"MEUCIQCKzGCNDAtWbOzUOIUzIFn4J2JJbrszJ1FS56HFLjlB2gIgL2DM9HIsRpi6G/kIBmuGc6JjP369Wtmrp+QiM6x1l+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHdY3CntrFYyr1G/AFxNWfQmSuwEnBc4FLAPqW3+bXLqAiEAp/l9yxussEfL9k+5MuesI2pVV5AxHPZov2P1cCwqONg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":729712},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"89be5d61d1e0b5a0314c79fc437f9e0d275c3ed3","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.36.3_1792046195444_0.6572188413882945","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"name":"pi-freeflow","version":"1.37.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.37.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"859339144297da3386e8925e3fe6f1602480bd45","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.37.0.tgz","fileCount":32,"integrity":"sha512-KhIA0geeEtlwDhhql0JKFpgVAwfBMTrdKGDLpem5qKRrhAGBobeUBrKelzToDUgiBtMUULomV4rY0+yJypfdQg==","signatures":[{"sig":"MEUCIQCKK/WrVbtYc9ivBs4eNIGOos1HsMDwW3hfRl8c4XESAAIgHRTX4+tTxA2+KytRdqrFX1LfoRQH+WawwcjPjU5U7d4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDeSHicBy2URN8U45E+U8WcpCb81Pzz+tCg3RMgScPU+gIgP78w3br4tTCf1RVTcO7Oy4f/0yIweRDy8JDSvkNuJBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":732287},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"ede808a4020b68a6fc8f5b011b1f7a0553ec3918","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.37.0_1792060203603_0.6977142847999787","host":"s3://npm-registry-packages-npm-production"}},"1.37.1":{"name":"pi-freeflow","version":"1.37.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.37.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"ae431861be1962ebe1c8b1ba6391b3d000c09d5f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.37.1.tgz","fileCount":32,"integrity":"sha512-i2M+akA+dLS6NjY4CGr/jn9uMXTBHrOUBWWH2x3HMzvNFx4A4rSRcAMkCQPqHN9ejv55prUQ+hU8xKSnHtwvDw==","signatures":[{"sig":"MEUCIQCZvlbppFVTBIBSQ9N8VGsrEE5/NkURKM9pmGImikINXwIgCmMXFkYcsQYvw5FgzSSZjMWh3RjmPu3Dc87PrKtxlnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLlRxro/Egxsj5AySoEoZkegrh3x3P9qky3ny93p3SmQIgAS9dgFCmPpvfU5wYXtaTLvCBUCNl+a08T0Xi+tcUSEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735133},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"6367006dedab7e4ef99a4e4a0e1ec4ad7fc35aca","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.37.1_1792068443077_0.42930381841232634","host":"s3://npm-registry-packages-npm-production"}},"1.38.0":{"name":"pi-freeflow","version":"1.38.0","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.0","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"1231a06b615c146c892156edb9189c14dbfd3e66","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.0.tgz","fileCount":32,"integrity":"sha512-aP3r3LD2yGXY9VsmFGrDkvDB42Qi+F2wG+jNN1VTBq9u0O7/y5b7kYSXkPlrK9Rik5kpZBVJuKd46Vfo9jwcLQ==","signatures":[{"sig":"MEQCIDjfgBi6xAkd+bxFd1CpXzgY44be6MRxUfLGK9OklJ+RAiAeuw6ZaCe3NfCviaY8vWtkLrXAJWwcPInA78Gw3dQQAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFSFp+28yO5a7yfAFGQfCux1nFaEtEnOcQbKz0YsiQvuAiAUC5LgAxcPlvV5E/IPsdesEULI8Auhib4FkC1qVuB5Og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745528},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"d1f12dd445c905be53667af87ae7b33899ae6f53","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.0_1792081435355_0.2401148466240859","host":"s3://npm-registry-packages-npm-production"}},"1.38.1":{"name":"pi-freeflow","version":"1.38.1","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.1","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"606637a10727bfde33a6542782177cdcd2c2b9ef","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.1.tgz","fileCount":32,"integrity":"sha512-3w8njWomYFw6yZAcZ71B2WDcSAKXz7brlWKfaR9b/R4K7cbbhIG0V3XU4fSTeJNxBFGj+BuLrGEgvYdQiVgbqQ==","signatures":[{"sig":"MEYCIQDJSCXphwQuK9GdAlw5xb9y0rmBIWraxAf8Qfnh99lkTQIhANVVkxRF39ZpeHMCjFrmvE77N/7uOXx4P33C0tVg55Ds","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDKOlyH51ZV4mKW0HV4V1vwcrbGBSOrnmy8JTicCL0DgAIgDhAFsA4ZMrGjoFV1lgPWgF52H7yyCCozlM01Vz8u0ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":772752},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"7e9a2e1b4fe816656e06648a8e0f5652692cab00","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^4.1.0","vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.1_1792142054827_0.020487223157850787","host":"s3://npm-registry-packages-npm-production"}},"1.38.2":{"name":"pi-freeflow","version":"1.38.2","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.2","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"aab5bd57e8dd99176b683b3b1047b22b0a6ecf64","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.2.tgz","fileCount":32,"integrity":"sha512-csI3YzDJsVA0kuPe+vniZukGRU9mwkxTc1RpLDDumarnL6RD4aIa/tlMGUFQqCJI1WUHz1XOUuHB7yzQw3gkrQ==","signatures":[{"sig":"MEUCIDHU3cSKN6VcFzOIz//nVAmX1FBiVSXorjnZCiVrRTi3AiEA6d5h+jwHuGnBoEmgBdCbvzpMKKoXPMx2uic2i4lUaiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH7PDy6qcAlLeLNPE5YAxv2FZH+5pda3NMVTuMuW0uj8AiEA/3QHlbLXMAiXtLsX0f2JCsEbvfex9ho2DV+pAPH9ub4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":776826},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"0d35b621d1de56f9b4ab59b165058f0c496577d5","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^4.1.0","vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.2_1792157032491_0.6001429454751745","host":"s3://npm-registry-packages-npm-production"}},"1.38.3":{"name":"pi-freeflow","version":"1.38.3","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.3","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"c9aa353c4a0cc54667b0099b412b0f771c16c7e9","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.3.tgz","fileCount":32,"integrity":"sha512-NfVXNh5kn+D7y6J0GhTl22pYlFVGS+XMqMH7V2M+ST5UA00gZRxrielB0Sof59iaD2gFaW483c2YrhpSqlUKoQ==","signatures":[{"sig":"MEUCIQDY6GO4xiWWz8MoKAq90jdBvo4bNpttZIFEcs3l77xUvAIgBoe6JL+HgQ/ulPsnh7EERmqNrCNalXnONvNJAR9srgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAiwcmRBh7Jgikv2522vfYBilqM+1iSSzRKLY6CUVysKAiBR2zvU6gTaz0Y4GyrwGH6jU1g/hSadPYBOwMMBbboPMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778243},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"8a6f884b91e5d9680f75d1ca6e4ebbfbbba44a7f","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^4.1.0","vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.3_1792223963863_0.3905881680400636","host":"s3://npm-registry-packages-npm-production"}},"1.38.4":{"name":"pi-freeflow","version":"1.38.4","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.4","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"f5a1c636e0ad7a44f1ab36de4d705ccd62c8217d","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.4.tgz","fileCount":32,"integrity":"sha512-+RNjGRNV3onDH2dZxkBWLvg3SHJdmffnFSHu/rOs1HqG4MD7vabUd5XHYfn0S1dfYQfancfPn/GVpEwO2d9/dQ==","signatures":[{"sig":"MEYCIQD5uq873PLKUOVn9GBU/8oXlhHpe3Fiz/EOIk7QHI4NiQIhAMMi6TjoG5ZJsXMmOBM93RRGLhUefWdzT47rhvNU9vOi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDo/n6p0MA5HXcIaTEJfT01z6G5LYtJGDfQp19If/WmhgIhAKNpmrfJ9j1ECFZEkiGMZ65jj5OvPtlXaANYAc5G7jL7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783860},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"99a012ce7cad325835e051b53e90efe804af5cc3","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^4.1.0","vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.4_1792312792549_0.41751297734332926","host":"s3://npm-registry-packages-npm-production"}},"1.38.5":{"name":"pi-freeflow","version":"1.38.5","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"author":{"name":"trefeon"},"license":"MIT","_id":"pi-freeflow@1.38.5","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"homepage":"https://github.com/trefeon/pi-freeflow#readme","bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"pi":{"extensions":["./extensions"]},"omp":{"extensions":["./extensions"]},"dist":{"shasum":"d65de3a7f57b4cd6db4ed295c0f4f5cfc57ba07f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.38.5.tgz","fileCount":32,"integrity":"sha512-aneFWUxPx7LSkrMffl7//YaAA/FxQupcNyYxn8hOOKoUh2tNrgDcvbxppUHNeweAfIWwCw6hzHmckTeQuJ9Ocw==","signatures":[{"sig":"MEUCIQDm4m+xrLbfRqr2Bdo9eUXeJjM7Ss9OkfAQBIodWS4orgIgbEPOI8XMi8uSX6aiE1jgNqKr93aOFyqt2d8sN/NP2K4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5Gk0Ai4psvrOMfNE/2NEX6XKJKwtRP7tfIvw1A0aUEQIhAIhWJ0t4O0QcXdK5cZ2iQi6bWsP3hHwj9dcsjSdPmtZ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785305},"main":"extensions/index.ts","type":"module","types":"src/index.ts","engines":{"node":">=22.19.0"},"gitHead":"c505983c92b1186ec6ec240cd08368677ddc5f6b","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.0"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^4.1.0","vitepress":"^1.6.4","typescript":"^5.8.2","@types/node":"^22.13.9","@changesets/cli":"^2.27.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-freeflow_1.38.5_1792352711538_0.5326257318783845","host":"s3://npm-registry-packages-npm-production"}},"1.39.0":{"pi":{"extensions":["./extensions"]},"_id":"pi-freeflow@1.39.0","omp":{"extensions":["./extensions"]},"bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"dist":{"shasum":"8803ddbd16b02ef698d04a15560ed9447a59ef1f","tarball":"https://registry.npmjs.org/pi-freeflow/-/pi-freeflow-1.39.0.tgz","fileCount":35,"integrity":"sha512-5y71ATq+bTpTIW9whqnn06oP3y0H2+33XsF3shx1zNyPgEh7M7nQHW/YRcFhmd+oCF3vc2frZKmqhIQwjFuClQ==","signatures":[{"sig":"MEUCIG6sAD1vHKooTCPxB0xKNBD4cSWkaMFPa9/wp0uM0QmaAiEAwdd6T+F83Xr22eiUUiH08yWmtCJfOUlfb51J7tgA+F0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDTTyAS0tsfmnu8BUSwktdagYWRg5aJ65rsfSLZm5NSNgIgSgVg6DCJbIwwlBw/c5Dps41L8zFkzm2+m/uwnfBFHGs="}],"unpackedSize":825045},"main":"extensions/index.ts","name":"pi-freeflow","type":"module","types":"src/index.ts","author":{"name":"trefeon"},"engines":{"node":">=22.19.0"},"gitHead":"958a03be5497cfac99c84b6d6f8aae4c1c45f70e","license":"MIT","scripts":{"test":"node --experimental-strip-types --import ./test/setup.mjs --test --test-concurrency=1 test/**/*.test.ts","smoke":"node --experimental-strip-types -e \"import('./extensions/index.ts').then(() => console.log('✓ Smoke test passed: extensions/index.ts loaded successfully')).catch(err => { console.error(err); process.exit(1); })\"","docs:dev":"vitepress dev docs","changeset":"changeset","typecheck":"tsc --noEmit","docs:build":"vitepress build docs"},"version":"1.39.0","_npmUser":{"name":"trefeon","email":"trefeon@gmail.com"},"homepage":"https://github.com/trefeon/pi-freeflow#readme","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","directories":{},"maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"_nodeVersion":"26.11.1","dependencies":{"undici":"7.30.1"},"_hasShrinkwrap":false,"devDependencies":{"js-yaml":"^5.5.0","vitepress":"^1.6.4","typescript":"^7.0.2","@types/node":"^22.13.9","@changesets/cli":"^3.0.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-freeflow_1.39.0_1792425712526_0.4091775419234165"}}},"time":{"created":"2026-08-24T19:17:15.673Z","modified":"2026-10-19T16:01:52.841Z","1.0.0":"2026-08-24T19:17:16.017Z","1.0.1":"2026-08-24T19:44:01.514Z","1.0.2":"2026-08-24T20:04:56.249Z","1.0.3":"2026-08-24T21:09:26.090Z","1.0.4":"2026-08-24T21:10:38.658Z","1.0.5":"2026-08-24T21:11:49.685Z","1.0.6":"2026-08-24T21:12:31.594Z","1.0.7":"2026-08-24T21:13:37.600Z","1.0.8":"2026-08-24T21:19:18.716Z","1.0.9":"2026-08-24T21:19:51.475Z","1.1.0":"2026-08-24T21:23:25.017Z","1.1.1":"2026-08-24T21:32:02.404Z","1.1.2":"2026-08-24T21:39:50.922Z","1.1.3":"2026-08-24T21:50:46.303Z","1.1.4":"2026-08-24T21:52:43.320Z","1.1.5":"2026-08-24T21:55:14.400Z","1.1.6":"2026-08-24T22:01:29.038Z","1.1.7":"2026-08-24T22:03:03.546Z","1.1.8":"2026-08-24T22:25:09.659Z","1.1.9":"2026-08-24T22:29:30.149Z","1.2.0":"2026-08-24T22:54:21.086Z","1.2.1":"2026-08-25T01:23:20.345Z","1.3.0":"2026-08-25T07:49:08.647Z","1.3.1":"2026-08-25T07:52:46.797Z","1.3.3":"2026-08-25T09:20:28.978Z","1.3.6":"2026-08-25T11:42:52.938Z","1.3.7":"2026-08-25T17:31:04.190Z","1.3.8":"2026-08-25T20:00:44.536Z","1.3.9":"2026-08-25T20:19:41.634Z","1.4.0":"2026-08-25T20:23:11.331Z","1.4.1":"2026-08-26T07:10:44.352Z","1.4.2":"2026-08-26T09:40:21.783Z","1.4.3":"2026-08-26T16:26:26.141Z","1.4.4":"2026-08-27T06:12:09.390Z","1.4.5":"2026-08-27T06:22:51.110Z","1.4.7":"2026-08-27T06:44:28.493Z","1.4.8":"2026-08-27T07:18:11.893Z","1.4.9":"2026-08-27T11:51:30.114Z","1.4.10":"2026-08-27T12:43:58.430Z","1.4.11":"2026-08-27T13:01:47.774Z","1.4.12":"2026-08-27T13:25:00.434Z","1.5.0":"2026-08-27T17:59:02.640Z","1.6.0":"2026-08-29T05:40:13.661Z","1.7.0":"2026-08-29T19:43:45.290Z","1.7.1":"2026-08-29T19:58:00.901Z","1.8.0":"2026-08-29T21:24:47.639Z","1.8.1":"2026-08-29T21:51:37.443Z","1.8.2":"2026-08-30T04:15:59.641Z","1.9.0":"2026-08-30T17:54:22.981Z","1.9.1":"2026-08-30T19:07:19.583Z","1.9.2":"2026-08-30T22:07:42.422Z","1.9.4":"2026-09-02T16:59:05.672Z","1.9.5":"2026-09-03T07:24:04.268Z","1.9.6":"2026-09-03T09:54:54.695Z","1.9.7":"2026-09-05T18:24:27.009Z","1.9.8":"2026-09-05T21:29:24.515Z","1.9.9":"2026-09-06T06:13:59.879Z","1.10.0":"2026-09-09T10:38:15.587Z","1.11.0":"2026-09-09T13:02:26.002Z","1.11.1":"2026-09-09T14:26:05.314Z","1.11.2":"2026-09-09T16:53:01.410Z","1.12.0":"2026-09-12T16:55:29.294Z","1.12.1":"2026-09-13T19:19:46.415Z","1.13.0":"2026-09-14T14:43:18.153Z","1.14.0":"2026-09-16T18:46:37.697Z","1.15.0":"2026-09-17T07:56:56.685Z","1.15.1":"2026-09-17T09:19:26.870Z","1.15.2":"2026-09-17T10:08:17.491Z","1.16.0":"2026-09-17T12:18:54.971Z","1.17.0":"2026-09-17T21:09:02.305Z","1.17.1":"2026-09-17T21:57:56.239Z","1.18.0":"2026-09-18T05:09:33.058Z","1.19.0":"2026-09-18T06:04:19.118Z","1.20.0":"2026-09-19T14:28:25.584Z","1.21.0":"2026-09-20T20:59:34.960Z","1.22.0":"2026-09-20T21:30:48.443Z","1.22.1":"2026-09-20T21:41:01.374Z","1.22.2":"2026-09-20T22:25:07.452Z","1.22.4":"2026-09-21T07:15:49.777Z","1.23.0":"2026-09-21T08:19:40.851Z","1.23.1":"2026-09-21T10:06:46.327Z","1.23.3":"2026-09-21T11:51:30.586Z","1.24.0":"2026-09-22T06:00:48.107Z","1.26.0":"2026-09-23T18:45:14.144Z","1.26.1":"2026-09-24T12:07:03.278Z","1.27.0":"2026-09-25T09:30:02.440Z","1.28.0":"2026-09-28T13:05:20.583Z","1.28.1":"2026-09-28T14:11:47.606Z","1.29.0":"2026-10-01T13:06:19.285Z","1.30.0":"2026-10-03T07:27:58.710Z","1.31.0":"2026-10-03T07:30:36.114Z","1.32.0":"2026-10-03T12:59:51.512Z","1.32.1":"2026-10-06T03:13:25.516Z","1.32.2":"2026-10-07T13:08:17.004Z","1.33.0":"2026-10-07T20:26:32.931Z","1.33.1":"2026-10-08T10:21:06.586Z","1.33.2":"2026-10-08T18:00:57.103Z","1.33.3":"2026-10-08T18:38:22.792Z","1.34.0":"2026-10-09T16:50:04.214Z","1.35.0":"2026-10-13T12:21:00.146Z","1.36.0":"2026-10-13T13:10:25.054Z","1.36.1":"2026-10-14T07:27:24.624Z","1.36.3":"2026-10-15T06:36:35.538Z","1.37.0":"2026-10-15T10:30:03.717Z","1.37.1":"2026-10-15T12:47:23.194Z","1.38.0":"2026-10-15T16:23:55.646Z","1.38.1":"2026-10-16T09:14:14.951Z","1.38.2":"2026-10-16T13:23:52.600Z","1.38.3":"2026-10-17T07:59:23.963Z","1.38.4":"2026-10-18T08:39:52.698Z","1.38.5":"2026-10-18T19:45:11.642Z","1.39.0":"2026-10-19T16:01:52.626Z"},"bugs":{"url":"https://github.com/trefeon/pi-freeflow/issues"},"author":{"name":"trefeon"},"license":"MIT","homepage":"https://github.com/trefeon/pi-freeflow#readme","keywords":["pi-package","pi-extension","oh-my-pi","omp","free-models","opencode","kilocode","ai-models","relay"],"repository":{"url":"git+https://github.com/trefeon/pi-freeflow.git","type":"git"},"description":"Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization","maintainers":[{"name":"trefeon","email":"trefeon@gmail.com"}],"readme":"# pi-freeflow\n\n> 35 free models with up to 1M context. No API keys to manage. Add your own relays to spread requests across more IPs.\n\nThin by design: a model list, a relay proxy, and a log. The host (`pi-ai`) handles thinking, normalization, and provider behavior.\n\n[![npm version](https://img.shields.io/npm/v/pi-freeflow?style=flat-square&color=00E5FF)](https://www.npmjs.com/package/pi-freeflow)\n[![npm downloads](https://img.shields.io/npm/dm/pi-freeflow?style=flat-square)](https://www.npmjs.com/package/pi-freeflow)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![Pi](https://img.shields.io/badge/Powered%20by-Pi-7c3aed?style=flat-square)](https://github.com/earendil-works/pi)\n[![Oh My Pi](https://img.shields.io/badge/Compatible-OMP-black?style=flat-square)](https://github.com/can1357/oh-my-pi)\n\n---\n\n### What you get\n\n| Feature | What it does | Cost |\n| :--- | :--- | :--- |\n| **35 free models** | 12 from OpenCode Zen, 13 from KiloCode Gateway, 2 from Cline, 8 from OVHcloud AI Endpoints, context windows up to 1M. Full list below. | **$0** |\n| **Relay pool** | Route requests through your own relays: a self-hosted egress pool (many egress IPs on one small host) or Cloudflare Workers / Deno Deploy / Vercel Edge workers. Traffic spreads across the pool, or stays on one sticky relay. A relay that rate-limits, times out, or drops the connection cools down while healthy ones take its traffic. | **$0** beyond your host or platforms' free tiers |\n| **Automatic fallback** | When every relay is cooling down, requests go direct to upstream instead of failing. | **$0** |\n| **Short model names** | Most models have a slash-free, colon-free alias, plus an optional `:effort` suffix for thinking depth. You type `freeflow/<name>`; the two Cline models have no alias and must be typed in full. | **$0** |\n| **Shared local proxy** | One daemon on `127.0.0.1:28180` serves every session on the machine, so parallel subagents reuse it instead of opening their own connections. Loopback-only and token-gated: hosts send the token automatically, external tools read `~/.pi/agent/token`. | **$0** |\n| **Logs you can read** | `~/.pi/agent/pi-freeflow.log`, rotated at 10MB. Tail it with `/freeflow logs`. | **$0** |\n\n---\n\n### Install\n\n**On Oh My Pi (OMP):**\n```bash\nomp plugin install pi-freeflow\n# or local dev (repo checkout)\nomp plugin link /path/to/pi-freeflow\n```\n\n**On Pi:**\n```bash\npi install npm:pi-freeflow\n```\n\n> Both commands fetch the same npm package from the registry. pi-freeflow\n> is an extension loaded by the host, not a standalone CLI. It works on OMP\n> and Pi only (they share the extension API).\n\n### Pick a model\n\n**OMP, interactive:**\n```bash\nomp\n/model → freeflow → deepseek-v4.1-flash-free (1M) → max\n```\n\n**OMP, one shot:**\n```bash\nomp -p --model freeflow/deepseek-v4.1-flash-free \"build me a SaaS\"\nomp -p --model freeflow/space-bunny:high \"solve this bug\"   # alias + thinking level\n```\n\n**Pi, interactive:**\n```bash\npi\n/model → freeflow → pick\n```\n\n**Pi, one shot:**\n```bash\npi -p --model freeflow/space-bunny:high \"solve this bug\"\n```\n\nModel IDs accept a full canonical ID, a short alias (see the tables below),\nand an optional `:effort` suffix (`:minimal` through `:xhigh`, `:max` where\nsupported). The host resolves the rest.\n\n### Add relays\n\nThe default setup talks to upstream directly. Add relays when shared IPs start\nhitting rate limits — the OpenCode Zen free tier counts them per egress IP, so\nhow many dedicated egress addresses you control decides how much you can run at\nonce.\n\n**Option A: Self-hosted WARP relay pool (recommended for OpenCode Zen)**\n\nOne Linux VPS runs a pool of isolated Cloudflare WARP egress addresses with\nautomatic rotation of rate-limited IPs — [trefeon/warp-relay-pool](https://github.com/trefeon/warp-relay-pool):\n\n```bash\ngit clone https://github.com/trefeon/warp-relay-pool.git\ncd warp-relay-pool && ./setup.sh\n```\n\n- **Many egress IPs, tiny footprint**: each relay node is ~1.8 MiB of RAM; the\n  default five-relay pool fits a 512 MB VPS (~50 MB of stack over a private\n  mesh-VPN URL, ~160 MB with public tunnel URLs).\n- **Auto-rotation**: a background service probes each egress for HTTP 429 and\n  rotates only the throttled node — the rest of the pool keeps serving and your\n  client URLs stay put.\n- **No platform quotas, no request rewriting**: your host's bandwidth, and\n  requests arrive upstream with the client's own fingerprint.\n- **Same contract as edge relays**: implements `x-relay-target`, so it can sit\n  in a pool alongside worker deployments.\n- The setup wizard prints ready-to-paste `/freeflow add <url> <label>` commands;\n  pair the pool with `/freeflow spread` so parallel sessions and subagents land\n  on different egress IPs.\n\n**Option B: Cloudflare Workers, auto deploy (zero-infra)**\n```bash\n/freeflow deploy cloudflare  # prompts token in-memory, auto-adds to pool\n# or /freeflow deploy with no argument to pick the platform interactively\n```\nManual fallback: `dash.cloudflare.com` → Workers → Create → Deploy → Edit code → paste the canonical worker source (see below) → Deploy → `/freeflow add https://your.workers.dev cf-worker-1`\n\n**Option C: Deno Deploy, auto deploy (Kilo models only)**\n```bash\n/freeflow deploy deno  # prompts token in-memory, auto-adds to pool\n```\nManual fallback: `dash.deno.com` → New Project → Playground → paste the canonical worker source (see below) → Deploy → `/freeflow add https://your-project.deno.dev deno-relay-1`\n\nDeno Deploy rewrites the outbound `User-Agent` at the platform layer, so OpenCode Zen free-tier traffic through a Deno relay is refused with `403 FreeTierError`; Kilo models still work. The deploy flow warns up front and its post-deploy inference probe reports what the relay can actually serve.\n\n**Option D: Vercel Edge Relay (last resort, paid plan only)**\n```bash\n/freeflow deploy vercel  # prompts token in-memory, auto-adds to pool\n```\nOnly use with a paid plan: the Hobby plan caps Fast Origin Transfer at 10 GB (~1.2 MB per streaming turn, about 8,000 turns), then every deployment in the project returns HTTP 402 until the quota resets.\nManual fallback: push 2 files (`api/relay.js` + `vercel.json`) to GitHub, then Import on `vercel.com`, then `/freeflow add https://your.vercel.app vercel-relay-1`\n\nFor `api/relay.js`, use the canonical worker source (see below); `vercel.json` stays:\n\n```json\n{ \"rewrites\": [{ \"source\": \"/(.*)\", \"destination\": \"/api/relay\" }] }\n```\n\n**Canonical worker source (all platforms)**\n\nThe relay worker template is generated per deployment by `/freeflow deploy`, with one shared core adapted for Vercel, Cloudflare, and Deno. Every deploy embeds a random 32-byte secret, and the generated worker answers `401` to any request without a matching `x-relay-auth` header; the client sends that secret to each relay in the pool. Only a hand-pasted legacy worker built without a secret is open to anyone. Either way, a relay forwards only to an allowlist (`https://opencode.ai`, `https://api.kilo.ai`) with private-host and path checks.\n\n```js\n// Minimal Cloudflare illustration. Prefer /freeflow deploy: the generated\n// worker is the hardened source for all three platforms.\n// This example omits the private-host guard, path validation, and auth.\nconst ALLOWED_TARGETS = [\"https://opencode.ai\", \"https://api.kilo.ai\"];\nexport default {\n  async fetch(req) {\n    const target = req.headers.get(\"x-relay-target\");\n    const relayPath = req.headers.get(\"x-relay-path\") || \"/\";\n    if (!target || !ALLOWED_TARGETS.includes(target.replace(/\\/$/, \"\"))) {\n      return new Response(JSON.stringify({ error: \"Forbidden target\" }), { status: 403 });\n    }\n    const headers = new Headers(req.headers);\n    headers.delete(\"x-relay-target\"); headers.delete(\"x-relay-path\"); headers.delete(\"host\");\n    return fetch(target.replace(/\\/$/, \"\") + relayPath, { method: req.method, headers, body: req.method !== \"GET\" && req.method !== \"HEAD\" ? req.body : undefined });\n  },\n};\n```\n\n**Verify your pool:**\n```bash\n/freeflow status        # active relay, pool status, candidates\n/freeflow list          # every relay with health status\n/freeflow logs          # tail -25\n```\n\n### Carry your pool to another machine\n\n```bash\n/freeflow export                        # save pool to ./freeflow-relays.json\n/freeflow export backup/team.json       # save to a path you choose\n/freeflow import backup/team.json       # add its relays to this machine (merge)\n/freeflow import backup/team.json --replace --dry-run  # preview a full swap first\n```\n\nMerge is the default and never deletes anything. Replace swaps the whole pool\nand always asks first. Passwords stay out of the file unless you pass\n`--include-secrets`; a file without passwords still imports, and you re-enter\neach password once afterwards.\n\n---\n\n### Commands reference (`/freeflow`)\n\nThe same command set works identically in OMP and Pi:\n\n```bash\n/freeflow status                  # View active relay, pool status, and candidates\n/freeflow hide|show               # Hide or restore the status-bar widget (also `widget hide`/`widget show`)\n/freeflow list                    # List all relays with real-time health badges\n/freeflow use <url|index|label>   # Switch active relay\n/freeflow url <url>               # Set the active relay URL directly\n/freeflow add <url> [label]       # Add new relay to the pool\n/freeflow label <index|url> <name># Assign a friendly label to a relay\n/freeflow remove <index|url|label># Remove a relay from the pool\n/freeflow test <index|url|label>  # Probe a relay for reachability and latency\n/freeflow on|off|auto|sticky|spread  # Relay mode (auto/sticky = sticky primary, spread = rotate pool)\n/freeflow deploy <platform>       # Guided relay deploy: vercel|cloudflare|deno, token in-memory, auto-adds\n/freeflow logs [lines]            # Inspect recent proxy logs\n/freeflow trace [req-id]          # Tail logs filtered by request correlation ID\n/freeflow refresh                 # Reload the model catalog from live upstreams\n/freeflow reload models           # Alias of refresh\n/freeflow update                  # Check for and install a package update\n/freeflow autoupdate [on|off]     # View or toggle automatic background updates\n/freeflow install-startup         # Install the login-startup hook so the daemon comes up with your session\n/freeflow uninstall-startup       # Remove the login-startup hook\n/freeflow debug on | off          # Toggle full HTTP lifecycle debug logging\n/freeflow kill                    # Stop the shared proxy daemon now (restarts on next use)\n/freeflow cline login               # Sign in through the browser, save to the per-user pool\n/freeflow cline accounts            # List saved Cline logins\n/freeflow cline logout              # Remove a saved Cline login\n/freeflow cline signout             # Link to sign out of Cline in your browser (to add another account)\n/freeflow export [path] [--include-secrets]  # Save the relay pool to a file (default freeflow-relays.json; passwords left out unless asked)\n/freeflow import <path> [--merge|--replace] [--dry-run]  # Load a relay pool from a file (merge is default; replace asks first; dry-run previews only)\n```\n\n---\n\n### 35 models, one command\n\n```bash\n/model → freeflow → pick\n```\n\nEvery model specification is reconciled against [models.dev](https://models.dev/), [OpenRouter](https://openrouter.ai/), and OMP's built-in catalog, configured with the highest verified context, output ceiling, and reasoning capabilities across twin models.\n#### OpenCode Zen (12 models), Chat Completions API\n\nGood defaults for long coding sessions and agentic work.\n\n| Model ID | Creator / Lab | Context | Max Output | Thinking | Vision |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| `cat-jam-free` | Cat Jam | **256K** (262.144) | **131K** (131.072) | `low … max` | ❌ |\n| `mimo-v2.6-flash-free` | Xiaomi MiMo | **1M** (1.048.576) | **131K** (131.072) | `minimal … xhigh`\\* | ✅ |\n| `nemotron-3.5-lightning-free` | NVIDIA | **1M** (1.000.000) | **262K** (262.144) | `minimal … xhigh` | ❌ |\n| `nemotron-3.5-super-vl-free` | NVIDIA | **1M** (1.000.000) | **131K** (131.072) | `minimal … xhigh` | ✅ |\n| `nemotron-3-ultra-free` | NVIDIA | **1M** (1.000.000) | **128K** (128.000) | `minimal … xhigh` | ❌ |\n| `big-pickle` | Big Pickle | **200K** (200.000) | **32K** (32.000) | `high / max` | ❌ |\n| `space-bunny-free` | Stealth preview (lab undisclosed) | **1M** (1.048.576) | **512K** (524.288) | `low … max` | ✅ |\n| `longcat-2.5-preview-free` | Meituan LongCat | **1M** (1.000.000) | **131K** (131.072) | `minimal … max` | ✅ |\n| `glm-5.3-flash-free` | Zhipu AI | **1M** (1.000.000) | **32K** (32.000) | `minimal … max` | ✅ |\n| `beam-free` | Reflection AI | **1M** (1.048.576) | **131K** (131.072) | `low … max` | ❌ |\n| `exo-free` | Undisclosed | **1M** (1.048.576) | **131K** (131.072) | `high` | ✅ |\n| `deepseek-v4.1-flash-free` | DeepSeek | **1M** (1.000.000) | **384K** (384.000) | `minimal … max` | ✅ |\n\n#### KiloCode Gateway (13 models), OpenRouter compatible\n\nKeyless access. Short aliases work for every row (the full ID is in parentheses).\n\n| Model ID | Creator / Lab | Context | Max Output | Thinking | Vision |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| `dots-3-note-preview` (`dots-studio/...:free`) | Dots Studio | **512K** (512.000) | **512K** (512.000) | `minimal…xhigh`\\* | ✅ |\n| `nemotron-3-nano-omni` (`nvidia/...:free`) | NVIDIA | **256K** (256.000) | **131K** (131.072) | `minimal…xhigh`\\* | ✅ |\n| `nemotron-3-ultra-550b` (`nvidia/...:free`) | NVIDIA | **1M** (1.000.000) | **128K** (128.000) | `minimal…xhigh`\\* | ❌ |\n| `nvidia/nemotron-3.5-lightning:free` | NVIDIA | **1M** (1.000.000) | **262K** (262.144) | `minimal…xhigh`\\* | ❌ |\n| `nemotron-3-super` (`nvidia/...:free`) | NVIDIA | **262K** (262.144) | **262K** (262.144) | `minimal…xhigh`\\* | ❌ |\n| `north-mini-code` (`cohere/...:free`) | Cohere | **256K** (256.000) | **64K** (64.000) | `minimal…xhigh`\\* | ❌ |\n| `laguna-s-2.1:free` (`poolside/...:free`) | Poolside | **262K** (262.144) | **32K** (32.768) | `minimal…xhigh`\\* | ❌ |\n| `laguna-xs-2.1:free` (`poolside/...:free`) | Poolside | **262K** (262.144) | **32K** (32.768) | `minimal…xhigh`\\* | ❌ |\n| `lfm-2.5` (`liquid/lfm-2.5-2.6b:free`) | Liquid AI | **65K** (65.536) | **32K** (32.768) | `minimal…xhigh`\\* | ❌ |\n| `kilo-auto` (`kilo-auto/free`) | Kilo Gateway Auto | **256K** (256.000) | **10K** (10.000) | `minimal…xhigh`\\* | ❌ |\n| `openrouter` (`openrouter/free`) | OpenRouter Free | **200K** (200.000) | **65K** (65.536) | `minimal…xhigh`\\* | ✅ |\n| `glyph-cluster` (`stealth/glyph-cluster`) | Stealth preview (lab undisclosed) | **256K** (256.000) | **256K** (256.000) | `minimal…xhigh`\\* | ❌ |\n| `inkling-small` (`thinkingmachines/inkling-small:free`) | Thinking Machines | **1M** (1.048.576) | **262K** (262.144) | `minimal…xhigh`\\* | ✅ |\n\n\\* Levels are forwarded as-is through the OpenRouter-style nested `reasoning` parameter; effort mapping is decided by each model. MiMo collapses `minimal→low` and `xhigh→high` upstream, so its selector shows 5 labels but only 3 distinct effort values.\n\n#### Cline (2 models), OpenAI compatible\n\nRotating per-account promo, direct only (never through the relay pool). Sign in through your browser with `/freeflow cline login`, manage with `/freeflow cline accounts` and `/freeflow cline logout`. Requests roll across saved logins when one hits its daily free limit.\n\nAdd as many logins as you want — each one gets its own slot (`default`, `slot-2`, `slot-3`, …) and a request that hits a limit on one rolls straight to the next. To sign in with a different email, sign out of Cline in that browser first (`/freeflow cline signout` prints the link), or use a private window so your current session stays put.\n\nEach account can only be saved once: an extra login for an account you already have shares the same free quota, so it is refused rather than saved. If a pool already holds two logins for one account (saved before this check), `/freeflow cline accounts` marks the later one `— same account as [default]`, and `/freeflow cline logout <slot>` drops it.\n\n| Model ID | Creator / Lab | Context | Max Output | Thinking | Vision |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| `cline-free/muse-spark-1.3-contributor` | Meta Superintelligence Labs | **1M** (1.048.576) | **131K** (131.072) | `minimal…xhigh`\\* | ✅ |\n| `z-ai/glm-5.3-flash` | Zhipu AI | **1M** (1.048.576) | **131K** (131.072) | `low/high/max` | ✅ |\n#### OVHcloud AI Endpoints (8 models), OpenAI compatible\n\nAnonymous access — no account, no key, nothing to sign in to. Direct only (never through the relay pool), because OVH has no per-IP gate for relays to route around. OVH rate-limits anonymous callers per IP, so a burst of parallel subagents can hit `429 API rate limit exceeded`; the model list itself never costs anything.\n\nPick them with the slash-free short name (the full ID is in parentheses). Only `low` and `high` thinking levels are offered, because those are the two OVH confirmed.\nAll eight talk the normal chat API. Hosts that prefer the responses API work too — the proxy maps that shape to chat and maps the answer back, so tool calls and streamed output behave exactly as they do on the other providers.\n\n| Model ID | Creator / Lab | Context | Max Output | Thinking | Vision |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| `gpt-oss-120b` (`ovh-free/gpt-oss-120b`) | OpenAI | **128K** (131.072) | **32K** (32.768) | `low/high` | ❌ |\n| `gpt-oss-20b` (`ovh-free/gpt-oss-20b`) | OpenAI | **128K** (131.072) | **32K** (32.768) | `low/high` | ❌ |\n| `qwen3.5-397b` (`ovh-free/Qwen3.5-397B-A17B`) | Alibaba Qwen | **256K** (262.144) | **64K** (65.536) | `low/high` | ✅ |\n| `qwen3.5-9b` (`ovh-free/Qwen3.5-9B`) | Alibaba Qwen | **256K** (262.144) | **64K** (65.536) | `low/high` | ✅ |\n| `qwen3.6-27b` (`ovh-free/Qwen3.6-27B`) | Alibaba Qwen | **256K** (262.144) | **64K** (65.536) | `low/high` | ✅ |\n| `qwen3.8-27b` (`ovh-free/Qwen3.8-27B`) | Alibaba Qwen | **256K** (262.144) | **32K** (32.768) | `low/high` | ✅ |\n| `mistral-small-3.2` (`ovh-free/Mistral-Small-3.2-24B-Instruct-2506`) | Mistral AI | **128K** (131.072) | **16K** (16.384) | ❌ | ✅ |\n| `llama-3.3-70b` (`ovh-free/Meta-Llama-3_3-70B-Instruct`) | Meta | **128K** (131.072) | **16K** (16.384) | ❌ | ❌ |\n\n---\n\n### Logs and debugging\n\n```bash\n/freeflow logs\ncat ~/.pi/agent/pi-freeflow.log | tail -n 50\n\n# full debug logging is on by default; `off` restores info level\n/freeflow debug on\n```\n\n---\n\n### Design\n\nThis package stays thin. It ships three things: a model catalog, a relay proxy, and a log. There is no build step and one runtime dependency (`undici`). Thinking and prompt normalization stay with the host (`pi-ai`).\n\nAbout 52k lines including tests: `src/` is roughly 19.4k across 30 files, and the 90 test files add roughly 32.4k more. The full suite (sandboxed, network-mocked) and typecheck pass before every release. See CHANGELOG.md.\n\n---\n\n### FAQ\n\n**Do I need API keys?**\nNo. OpenCode and Kilo free models need no key of your own. The proxy strips the placeholder credential the host provider registers with — forwarding it upstream gets a `401` (for Kilo, `Bearer kilo-free` answers `401 INVALID_TOKEN`) — so your key, if any, never leaves the machine. For OpenCode Zen it then adds the fixed `Authorization: Bearer public` the current `/inference/v1` gateway requires; the Kilo and OVHcloud lanes go out with no `Authorization` header at all. You never paste a key. Cline free models need a browser login instead: `/freeflow cline login` saves it to a per-user pool on your machine. OVHcloud AI Endpoints models need no account and no key at all.\n\n**What if all relays hit rate limits?**\nThe proxy tries direct upstream. If that is also rate-limited, the host shows the limit. That number is the shared upstream cap; without relays you would hit the same wall sooner.\n\n**Can I use it without relays?**\nYes. `/freeflow off` talks direct. Add relays later when you need them.\n\n**What happens when I update to a new version?**\nThe local proxy daemon is shared across sessions on port 28180. On upgrade, the new extension\ndetects a stale daemon (an older version still running) and replaces it automatically, with no manual\nkill and no restart of other sessions. Replacement only happens when the running daemon is\nidle: sessions with in-flight requests are never interrupted (busy or newer daemons are reused\nwith a log note instead). If a daemon cannot be replaced (for example the port is held by an unrelated process),\nit falls back to reusing it with a warning. To disable replacement entirely, set the no-kill env\nto `1` before starting a session.\n\n**What happens when I close a session?**\nNothing visible to your other sessions. The proxy daemon is a separate background\nprocess shared by every OMP/Pi session on the machine. Closing one session just\nunregisters it; the daemon keeps serving the rest and retires itself automatically\nonce the last client disconnects and no client re-attaches within a short grace window.\nTo stop it manually, run `/freeflow kill`. The next freeflow use starts it again.\n\n**Why did my long session stop with a \"reasoning was not issued to this caller\" error?**\nThe upstream backend signs each thinking block so only the backend that produced it can read it back. When a later turn reaches a different backend, the old blocks get rejected and the session stalls. pi-freeflow keeps each conversation on the relay that produced its thinking while that relay is healthy. When the relay has to change anyway (rate limit, relay removed, direct-mode switch), that turn is sent without the old thinking blocks so the new backend accepts it, and only the rejected blocks are dropped afterwards. Messages, tool calls, and tool results are always kept.\n\n**Why is it installed via npm?**\nThe npm package is the distribution channel only. Both hosts resolve it internally:\n`omp plugin install pi-freeflow` and `pi install npm:pi-freeflow` install the same\npackage from the npm registry. pi-freeflow is an extension, not a standalone CLI.\nThe host (OMP or Pi) loads and runs it. A plain `npm install` just downloads the\nfiles; it is not a supported way to run the extension.\n\n**Which hosts can use it?**\nOh My Pi (OMP) and Pi only. They share the same extension API, so one\npackage serves both. Other AI agents (OpenCode, KiloCode, Cursor, and similar) have their\nown plugin systems and do not load this extension.\n\n---\n\n### Contributing\n\nContributions welcome: bug fixes, new relay platforms, model additions, docs improvements.\n\n#### Prerequisites\n\n- **Node.js ≥ 22.19.0** (uses `--experimental-strip-types`, no build step)\n- **pnpm** (package manager)\n\n#### Setup and verify\n\n```bash\ngit clone https://github.com/trefeon/pi-freeflow\ncd pi-freeflow\npnpm install\n\n# run all three before opening a PR\npnpm test        # full suite; sandboxed and network-mocked\npnpm typecheck   # tsc --noEmit, must pass clean\npnpm smoke       # verifies extensions/index.ts loads without crashing\n```\n\n#### Project structure\n\n```\n├── models.ts                # 35-model catalog definitions\n├── index.ts                 # extension entry, lifecycle hooks\n├── catalog.ts               # model catalog cache (24h disk)\n├── proxy.ts                 # local proxy server (127.0.0.1:28180)\n├── client.ts                # session-side daemon attach/spawn and heartbeat\n├── daemon.ts                # detached proxy daemon process (owns the port)\n├── lease.ts                 # client lease registry and TTL retirement\n├── health.ts                # loopback /_health relay snapshot\n├── responses.ts             # Responses-API reasoning portability\n├── tool-translation.ts      # tool reshape across chat/responses/messages\n├── tool-args.ts             # schema-driven repair of model tool-call arguments\n├── relay.ts                 # relay fetch, rolling on retryable failures\n├── relay-state.ts           # relay pool state, health tracking\n├── probe.ts                 # relay reachability and latency probe\n├── upstream-health.ts       # Zen free-tier gating watch and Kilo failover\n├── stream-pipe.ts           # SSE stream piping and truncation resilience\n├── opencode-fingerprint.ts  # Zen free-tier client fingerprint enforcement\n├── system-ca-fetch.ts       # OS-trust-store retry for intercepted TLS\n├── commands.ts              # /freeflow CLI subcommands\n├── deploy.ts                # guided relay deploy (vercel/cloudflare/deno)\n├── cline-accounts.ts        # per-slot Cline key pool with failover\n├── cline-device-auth.ts     # Cline WorkOS device-flow login\n├── update-checker.ts        # npm registry version check, cached\n├── updater.ts               # package-manager choice for /freeflow update\n├── config.ts                # constants, whitelists, paths, and runtime settings\n├── logger.ts                # file logger with 10MB rotation\n└── types.ts                 # shared type definitions\nextensions/\n└── index.ts                 # OMP/Pi extension manifest\ntest/\n└── *.test.ts                # mirrors src/, node:test runner\n```\n\n#### Guidelines\n\n- **Stay thin.** One runtime dependency (`undici`), no build step. If it belongs in the host (`pi-ai`), don't add it here.\n- **Test what you touch.** Every `src/*.ts` has a matching `test/*.test.ts`. Add or update tests for your change.\n- **Keep model IDs clean.** Slash-free, colon-free aliases for CLI compatibility. See existing patterns in `models.ts`.\n- **One concern per PR.** Bug fix? One PR. New relay platform? Separate PR. Easier to review, faster to merge.\n\n#### Reporting issues\n\nFound a bug or want a feature? [Open an issue](https://github.com/trefeon/pi-freeflow/issues) with:\n- What happened vs what you expected\n- Your relay setup (`/freeflow status` output helps)\n- Relevant logs (`/freeflow logs` or `~/.pi/agent/pi-freeflow.log`)\n\n---\n\n### License\n\nMIT © trefeon\n","readmeFilename":"README.md"}