{"_id":"@monotykamary/pi-better-openai","_rev":"36-50620003ec5c98099ae086b55db0f1b4","name":"@monotykamary/pi-better-openai","dist-tags":{"latest":"0.2.12"},"versions":{"0.1.23":{"name":"@monotykamary/pi-better-openai","version":"0.1.23","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.23","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"d0c28b3373aa761c5d8427880b36e0c0437c39e8","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.23.tgz","fileCount":25,"integrity":"sha512-9MR57OVot6wBxu3ZxrpO5HnhlG03gtyYsu31hjO6ae1maKLEa9wTydMhTKoPTF3zPkGFm4jLS3xzqJn3sQ2A6g==","signatures":[{"sig":"MEYCIQCNAbhP110r/cr83CBDXVrDHW/gkUP4oAmXNQppcjh5mQIhAPdNopuGqRPXr7p1MCV/9r1jpRgRdk3CR3kWuT+k59T1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259825},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"postcss":"8.5.25"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.80.6","@earendil-works/pi-coding-agent":"0.80.6"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.23_1785928887420_0.20212689993749589","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@monotykamary/pi-better-openai","version":"0.1.24","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.24","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"cf07616ad480f9b6015b33b386a654ab99194587","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.24.tgz","fileCount":25,"integrity":"sha512-E32QaQjGwwBDR+2+8gJ85GcSaM3c5wuEvHwitBfQPi1d73rB3HYeLgC27U+5rZZtwpiLK3uF/QeSaWpSbA45Kg==","signatures":[{"sig":"MEQCIE45tc859ymk6dZqQ/g0/oKOJi3CQq1j5OWuTDp9YIp6AiAK3Jfvp/7eQ398bBwOB9Dbf1MVyOPxwXyYDh1VwGf4ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259041},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.80.6","@earendil-works/pi-coding-agent":"0.80.6"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.24_1785931872617_0.5272056053189647","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@monotykamary/pi-better-openai","version":"0.1.25","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.25","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"6df136a90421c532bef6160e54077b6faf39af11","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.25.tgz","fileCount":27,"integrity":"sha512-yW6V5St5QsivRKvkWmuSINHT0ZPmcm3TrKaDHF4C1Hbsop3K8pR6zOHLYDUKrsHBZz7p5+masJdaJaLqgxMblQ==","signatures":[{"sig":"MEUCIQCI7LJBxJZw7uv5gMiEsRBqAAmwWzYWIm2TgaDOWJItKwIgHkVqdWDdJQCUgxOwa4doFlzqP5LInmmcZKmmtBiK8xI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279309},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.80.6","@earendil-works/pi-coding-agent":"0.80.6"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.25_1786082468187_0.9283634244747898","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@monotykamary/pi-better-openai","version":"0.1.26","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.26","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"e15341b4f1a6fce797f3112cb5c80ade94e3c445","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.26.tgz","fileCount":28,"integrity":"sha512-3qeeAwXMvTK0WgJwJnbpONblK+DnE1/ioVpgLODo/LsW1WxPaf9F4Y2khj+k2veL++3URrSvfy/TJowdMmipDg==","signatures":[{"sig":"MEUCIQD96ZLgIqdLBw9Kuhcl/l57JYwsYcPfrXe+BncWxxEY6QIgaTC9Hxa4VMkhWqIO8tvg3m4utTBXxBwc24Xez5SbYRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300926},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.80.6","@earendil-works/pi-coding-agent":"0.80.6"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.26_1786243730196_0.8160235357823258","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@monotykamary/pi-better-openai","version":"0.1.27","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.27","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"5884a246a01dbd1415b25be02ac3cff99ffb6bb7","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.27.tgz","fileCount":28,"integrity":"sha512-xM8m26upNhFvbhG8sEhIvIDGECTdtpzs/qIJjsjUycMsApKsNxfEH3NAP1Kt0noi0aNM31ZE+g8ew1jmM397Jw==","signatures":[{"sig":"MEUCICfM2+/go2A7lqmBUE2PWT1Nzchyu7krxa8dHnDQkUVdAiEAoEehCzo9rJFIqJjsWP2jcjDC+n4CT5YxYKUkAa6LtPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300926},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.27_1786752761339_0.06438085123362747","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@monotykamary/pi-better-openai","version":"0.1.28","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.28","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"afb173607a200db00d7cf9211c8a4918d22f9340","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.28.tgz","fileCount":28,"integrity":"sha512-BQHc2EeU/HfsrXhJtR9MVeSILojvgT68cNyb4ZVnHvS5qkw5EdjMaHvX6SiFAwh1lOCJWfF+g3df1jbauegdZQ==","signatures":[{"sig":"MEYCIQCc+/W4ANd1N35w/4pnWfBil06mijBWWxIbi0DrDXDOmwIhAPb/Px2e6/iCozD1Vr3tPYE9Qzw24ZgoeOFsDesNzrA7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301681},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.28_1787328626431_0.9919000182828155","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@monotykamary/pi-better-openai","version":"0.1.29","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.29","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"88ea2282dbd48f30b5dc2ea668d99f4d7c094550","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.29.tgz","fileCount":28,"integrity":"sha512-tnZjqXltRl7BKXTOJWgGhRJcAV5TTWCJa0ShuRrv8ystlEBWVj+ETOrSE4vYXPBJSpvCMWV1/YsiEWXQ62Umxw==","signatures":[{"sig":"MEYCIQDOqrXUKP/COXKX6DntvHUpN7hpCwsvOQsDXinC4MTpJAIhANr5kG0WnXFSQ2b34fJRDzjsGsmGsfcVe88gShRKj+DN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301681},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.3","@earendil-works/pi-coding-agent":"0.84.3"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.29_1787586034248_0.156504443375725","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@monotykamary/pi-better-openai","version":"0.1.30","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.30","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"13e7b324256dca4c32009b93f3e99133a02c0adf","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.30.tgz","fileCount":28,"integrity":"sha512-F+3XFr3mwwfbIOAl5v638pu80bd1vYwGUw/hmVvB9vx4BM9+V7yI7uOOIqQA5OSfnGkorYSEa/9FHzovCQ+Diw==","signatures":[{"sig":"MEUCIQDNUDkkO2t8N7+7cUhNCJ6PJ9dIyCrxlJhknTrAepOXgAIgWeabHAhfOCoJ7NL/rb7ueLT3QMDfHDacN/lpk4mqDUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH1IcvxEDhOSgiWo65AVInR6Vt7EbtoyokqR2yQdaY5hAiEAyGcvxwY1HL0pNfnSA88mlLeQTnEgh6yfGIvsM8wbGRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301681},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.30_1788005559611_0.18728409400088242","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@monotykamary/pi-better-openai","version":"0.1.31","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.31","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"1a5dac9666e31a867a89166157cc87081e5036e6","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.31.tgz","fileCount":28,"integrity":"sha512-5ulEvs3NaptA6KfdeB26YfnuEvu8c5kQqX3gRhdTt9BnjtXHdqgLE14prle5e3mcbI0HWFaoHgOxSDUVzlNgyQ==","signatures":[{"sig":"MEUCIHc+lSnCUnl203KOxYuWYare3KdmDfwxVOu8QpgNBos5AiEA8le1yOIl6uZJJBLjh5fTvP+c3UwXqV/5U4L5NZ7ISUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfPQbFce8J12RMWR99W6a0nuEKz4IjhlAIUhkH//CzCQIgcialRaXJZWKUQunuQsd8IGjVh36GwodiVCbABpGqhP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301685},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.31_1788077913768_0.05831616464850864","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@monotykamary/pi-better-openai","version":"0.1.32","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.32","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"f82debac82c0e51ca6d5e2822c357f410229f232","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.32.tgz","fileCount":28,"integrity":"sha512-FOxfU2ZgNio6gSDblKyjq7vXCmbPuX94wCziZmK5l99V3nN1bh4+cdm4q0HjXc8GdzvmdM4eFBc6UFE+9R0MCQ==","signatures":[{"sig":"MEUCIGlZNNYW3hNp2rftFnTnzuP4D0U7gmy00Vsjm8XiWRF2AiEAwtjnPmffuX8s47cQjlOXqNtUZflT4cOwty8FMmA9f0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDe13xlBm6mow6Y9sEG2DzuvxIi5+mYo37LWQuE1XD7qAiBgWDLmXBrGOK6U7AwQYuXf+waiOuZufeMFpetsCgYSOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302165},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.32_1788080490599_0.8816386896717552","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@monotykamary/pi-better-openai","version":"0.1.33","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.33","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"3c3d0aa5dfe585ac1822de10c8b2daaa97ca4240","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.33.tgz","fileCount":28,"integrity":"sha512-Hjwomir4wueBksezWoKrKby3JTo/MvEFk6OnhN9n2WjifVm4FbmFxuUo2AwRmH2yLTsm0VCRV6B7b/nLXCHFyg==","signatures":[{"sig":"MEYCIQDfS8Mn1s6TPwvtM2RGQMDjHcrQQiFzAl120oUDWBCqdgIhAPYA9WrqAHUQfE4F2P0hYHharvY5zjskfe+NV6RTc8mL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDF2sR/ht1JCNDoIpGQgPckphj8+/Y2gV5bxi47rEhD0QIgD+m2nXOA0d3IlHhMHe5NvmSYkB4v+RevTM7Ma1IRkSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302002},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.33_1788118542169_0.9400501028160695","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@monotykamary/pi-better-openai","version":"0.1.34","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.34","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"0ef976063f0ab4408ac373c7c26b1b70eee737b8","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.34.tgz","fileCount":28,"integrity":"sha512-5mJpl89POW0svMDDV+qMEwPFJTWZrRvN/ltOej3v937ZbElF/BLIVwrK8eWd3aiKURW78Rj7zqS6xj/cqTv3Og==","signatures":[{"sig":"MEQCIHEziUmV+pL5aAjRvT8adPbJOaAmqwnt2gM/XDYgeLNKAiAR1cpu8wPf5QVTw8iWqJl0haetGDCTj6MeDf2f5odVpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIETSXGE030jy3G9i7YkBld+iO87Zh+PEhMJ13kcmXNGkAiA/bfUpqOlnnZHUqVDADxVU7Jzhwz0gWVImofpD+uFkwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302275},"type":"module","shasum":"0ef976063f0ab4408ac373c7c26b1b70eee737b8","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.84.4","@earendil-works/pi-agent-core":"0.84.4"},"_integrity":"sha512-5mJpl89POW0svMDDV+qMEwPFJTWZrRvN/ltOej3v937ZbElF/BLIVwrK8eWd3aiKURW78Rj7zqS6xj/cqTv3Og==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.34_1788190180805_0.7131912022893911","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"@monotykamary/pi-better-openai","version":"0.1.35","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.35","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"63a1882d2c6d4122b3f8d52271b846cf265eb209","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.35.tgz","fileCount":28,"integrity":"sha512-1JH/9nYkzJJJE9sg6mn+A4t8VjCO1QT7NalKVyIuChtjrtlOpldxblmvP95mSLIBBiOxbuvkX1egvWJFVyK2OQ==","signatures":[{"sig":"MEYCIQCCMMr9DjI3cQU29iwasPxPnmCEa+dFCqtCaaN4J+XGpgIhAPRQMkUrMxXZewcDOKHuntlNeJQx4YVkblniSxIdEqBz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCyJWBxVZocAqhMMydCQ+vWTmKHnA859Yi52MjpykN8dwIgVvvEEo9sBX7P5QSeC6LcX2o+d8v4g13JZGFRP3btpHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302275},"type":"module","shasum":"63a1882d2c6d4122b3f8d52271b846cf265eb209","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.0","@earendil-works/pi-agent-core":"0.85.0"},"_integrity":"sha512-1JH/9nYkzJJJE9sg6mn+A4t8VjCO1QT7NalKVyIuChtjrtlOpldxblmvP95mSLIBBiOxbuvkX1egvWJFVyK2OQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.0","@earendil-works/pi-coding-agent":"0.85.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.35_1788530224919_0.9772753318184229","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@monotykamary/pi-better-openai","version":"0.1.36","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.36","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fdc46f3da949906ee2b07e22e492b5d2f396c78a","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.36.tgz","fileCount":29,"integrity":"sha512-yuJEEaWqoZt7WNIzhVLhcLAO5s4NCYZGz49GfDK46EbxX/JkpT/2G3os+KOzNRqRJgace0NySnzgCqMH948LWA==","signatures":[{"sig":"MEQCIAkX++cgYTmcujsexnq26/zXY3rQhQWoayNbNDitPwh7AiAp75c7HUfM3Esi7iPI5eqAUJz80VgsXzTALT7GYdCAXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZ9TttgsgnyrR48TEOrJRh3timjqW+FU6Jc3vTVA1AbgIgYxw33fURoHdfWSmqI5UaDwXqcohkJbgHpZmBRkZHHhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308789},"type":"module","shasum":"fdc46f3da949906ee2b07e22e492b5d2f396c78a","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.0","@earendil-works/pi-agent-core":"0.85.0"},"_integrity":"sha512-yuJEEaWqoZt7WNIzhVLhcLAO5s4NCYZGz49GfDK46EbxX/JkpT/2G3os+KOzNRqRJgace0NySnzgCqMH948LWA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.0","@earendil-works/pi-coding-agent":"0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.36_1788551471033_0.44831760448697455","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"@monotykamary/pi-better-openai","version":"0.1.37","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.37","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"5a00a2ff4dd91ac7e6fa556e1feedba6f050b111","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.37.tgz","fileCount":29,"integrity":"sha512-5K5nNXjpZKTIHfJAQseV05IJ6uvir/Ktcoc4R0to2HzsnJFsD189ZiGmFKrLLJE/LprR4mYdBtSlj8PPgB0lZA==","signatures":[{"sig":"MEYCIQC+wiMlBoT/vXGrc7CppVB21GIRXweRTqwR4wtmNasnuAIhAPrxQp2Nwk3HC7cwXqeSXuUqdtnegWH9JakOzYw+jBx+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICJmHi+G3gmgzuyFNIwk6eLmSEe2P0HARRM23m3vlRIvAiB6tJnZ8c3IIT4GbADm2iku1whnu05Wqwgl/6L9m5D3IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309964},"type":"module","shasum":"5a00a2ff4dd91ac7e6fa556e1feedba6f050b111","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.0","@earendil-works/pi-agent-core":"0.85.0"},"_integrity":"sha512-5K5nNXjpZKTIHfJAQseV05IJ6uvir/Ktcoc4R0to2HzsnJFsD189ZiGmFKrLLJE/LprR4mYdBtSlj8PPgB0lZA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.0","@earendil-works/pi-coding-agent":"0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.37_1788552907275_0.20481355573131355","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"@monotykamary/pi-better-openai","version":"0.1.38","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.38","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"d40d69fa783ff7278a6307b04c5d13634afcd2ed","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.38.tgz","fileCount":29,"integrity":"sha512-OH10IKFtLty1wH2rmzqQCs+j57OIJAwztX9Is40cUA2x7PnpE1vkDLoRF7nDePLMiZeo7BaIDdS9/0WHzYFAZA==","signatures":[{"sig":"MEUCIQDlHD2K00fndAI7hT6m2is/3ys/GgDQCLoSr4thIyeCrAIgGHQtkdeT99185F3lZTSPPON7IC69l+pl/eKm9P0Syhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIACtk3cZvTW0mTq5AP61EzLEeGRa7JZzXgF25AH4dM3MAiBOgIdIPyn4ocKMZLSPKdCIl+N5v714My5nr1X/tTW4cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309964},"type":"module","shasum":"d40d69fa783ff7278a6307b04c5d13634afcd2ed","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.0","@earendil-works/pi-agent-core":"0.85.0"},"_integrity":"sha512-OH10IKFtLty1wH2rmzqQCs+j57OIJAwztX9Is40cUA2x7PnpE1vkDLoRF7nDePLMiZeo7BaIDdS9/0WHzYFAZA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.0","@earendil-works/pi-coding-agent":"0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.38_1788637725520_0.4506559167641351","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@monotykamary/pi-better-openai","version":"0.1.39","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.39","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"6c30d63cd5497789ca1ea860c3484178de41f0ae","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.39.tgz","fileCount":29,"integrity":"sha512-w5KOvWU4rJe8zyHqjUEmvBhqMURUVSpQIPK5kT29i2Wm68SBbmEStOP2QBrFvS02+9nZ7QwnOMPvMWX0i2eS3g==","signatures":[{"sig":"MEUCIGbohYK7LZ/ycPV2WbGTkVn+8DNHz375LbT9lQLYleUsAiEA0lNK2lonHTtFgStoj8jVmfM/EO2DZw5q3YT06qItd1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFploSOfnsp5riaZaAOmGim39XGdJSFpfPIID/6n76zeAiEA5DqxV2QaNB9vnUKnf61q7Zbd0c8lUyjyoS9ROy+Z1Qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310102},"type":"module","shasum":"6c30d63cd5497789ca1ea860c3484178de41f0ae","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-w5KOvWU4rJe8zyHqjUEmvBhqMURUVSpQIPK5kT29i2Wm68SBbmEStOP2QBrFvS02+9nZ7QwnOMPvMWX0i2eS3g==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.3","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.39_1788647878306_0.670385232558985","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"@monotykamary/pi-better-openai","version":"0.1.40","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.40","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"f220c8c6ec5a9b6bd787d590e66e0e94e6a24af0","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.40.tgz","fileCount":29,"integrity":"sha512-VqoVNHGfHd9EQ1/S4zOJ4R/a0Sip12RDXNJDd/2mUitbdaRTuEP2djHODLIkz1nnf5VBMoZM8wivUgNbW/ZonQ==","signatures":[{"sig":"MEUCIH/4flm6DlkxB+gLCmdwzU6aUvC11hxbiLqkRihJ/L1bAiEA7cZHeq/VNSV0eAVomUb/en/HaCOswcoLfuZjLgp99UE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHzVrnXRfJvVYUK0ANN4wLQlpzeui9KI0kLKDH1PY2J4AiBk5hr4Phi6WYcax7Hz815pMyGRDFTO7uK8awR2PqzhsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310347},"type":"module","shasum":"f220c8c6ec5a9b6bd787d590e66e0e94e6a24af0","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-VqoVNHGfHd9EQ1/S4zOJ4R/a0Sip12RDXNJDd/2mUitbdaRTuEP2djHODLIkz1nnf5VBMoZM8wivUgNbW/ZonQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.40_1788927176300_0.8575641926286608","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"@monotykamary/pi-better-openai","version":"0.1.41","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.41","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"30bfc3c58ad7b8009eda971d6d42164d40a2d0ce","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.41.tgz","fileCount":30,"integrity":"sha512-yzwPVlFZfnzn8cd3eORXMMNJpSRE926RchPERoo/ySvHl4I8Ds7dzwDsbvDsUDuq1oViA2mKgzws+deEy65Tzg==","signatures":[{"sig":"MEUCIQCDcjBEpQMsxAFNxUzis8qVoolNd2z99T8CDR0cmNK43gIgC/yaoPbml0l30Q1XniXw/xSoIC6icj/4BwmaAPwv0Lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDvntVv1LeJ3iK+ip8GDpJUFocGjywkm16s7iTOJ0WzhQIgJS8YNfOtJUfcmVHp/brJXmuYS+6pIrQmX92Dg7W86G8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315171},"type":"module","shasum":"30bfc3c58ad7b8009eda971d6d42164d40a2d0ce","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-yzwPVlFZfnzn8cd3eORXMMNJpSRE926RchPERoo/ySvHl4I8Ds7dzwDsbvDsUDuq1oViA2mKgzws+deEy65Tzg==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.41_1788939865723_0.284729892534346","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"name":"@monotykamary/pi-better-openai","version":"0.1.42","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.42","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"84611a4ca5944387f7f7a284041cbe76428d5b64","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.42.tgz","fileCount":31,"integrity":"sha512-OMpaq54KdhuZCVN5VTOsmXy9qpAjZZNEzrGOc4c26Jfgwerq0hcDXAYSTyK5/yQ3ykv3ks/u3o+qZZED2iLHcw==","signatures":[{"sig":"MEQCIDvb6f+ZD8vk5boz0AXvm1eWn0Qs4QZwlHTb1LRpTepfAiBlRkGdjnzECYDOopIO/LfqhTlYmkYhwkNcEOlmPaETOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF32i/rSwTvYu15KgOyThrKLDOOlIQgpkPEnoCYYmfEoAiAEbixSoOvzirBCxx5l8AglRsXZtQBu03JEsIkfNCZnTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328695},"type":"module","shasum":"84611a4ca5944387f7f7a284041cbe76428d5b64","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-OMpaq54KdhuZCVN5VTOsmXy9qpAjZZNEzrGOc4c26Jfgwerq0hcDXAYSTyK5/yQ3ykv3ks/u3o+qZZED2iLHcw==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.42_1788944667264_0.3945162429718809","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"@monotykamary/pi-better-openai","version":"0.1.43","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.43","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"b84c12e64b5e333b701c39bea6451495443c5b0a","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.43.tgz","fileCount":32,"integrity":"sha512-aVyXxrO5k5BIxS0hXIPcPIAzaIvlC6+ukfXtZB+YqC6614W+IXeCZg013Ryuvl6PimUh9GtxAT5CkHiqobFy4Q==","signatures":[{"sig":"MEUCIEoKZ1giBnFqJvDcQtwr4MT+vG9Xl2l0h+fX5uuQjYo+AiEAxYxWa//ga7ZVvh8txIQAmnyuRsvqABlRYQKDCXIrJN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnO/UUkuNuO+Rz0RepN61eIechMUtTj5ejaxEGONFlYAIhAOFUK3hv5NCxQuiP12Eh+qsb3Q8gRsi/yOXKfpOTPWPn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332245},"type":"module","shasum":"b84c12e64b5e333b701c39bea6451495443c5b0a","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-aVyXxrO5k5BIxS0hXIPcPIAzaIvlC6+ukfXtZB+YqC6614W+IXeCZg013Ryuvl6PimUh9GtxAT5CkHiqobFy4Q==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.43_1788946217097_0.15708158361046443","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"@monotykamary/pi-better-openai","version":"0.1.44","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.44","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"35e5993c168ae40dbf7782f660d3543eb322d76e","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.44.tgz","fileCount":32,"integrity":"sha512-kC9HvpA0LgH8APcV7Kg91qXiXj3NoYbrnxufG/zc9mOytv+vtGy475cf3Ja8J5n7y2WkyzP85iHb72mIiuImSQ==","signatures":[{"sig":"MEUCIBcVzwGRtkihsnYq671U7t23eqJP5rM1hf4ne73+IxD8AiEA9ECS28sqM19yYSmejwMnROEz6j9R9d5pCP/1eIpn3Gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/N0Jd1f/KzJaqI1hg7ABann4WsAyXzBz1BSWxATVIKAIgTna3G4Xdz9LSJKynYP1H9FfTfv6ImwbmO1NSc1IKg60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335059},"type":"module","shasum":"35e5993c168ae40dbf7782f660d3543eb322d76e","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-kC9HvpA0LgH8APcV7Kg91qXiXj3NoYbrnxufG/zc9mOytv+vtGy475cf3Ja8J5n7y2WkyzP85iHb72mIiuImSQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.44_1789113748270_0.35675794370454295","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"@monotykamary/pi-better-openai","version":"0.1.45","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.1.45","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"d750bb15ee850bad8ef1f399d37944da632244bd","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.1.45.tgz","fileCount":32,"integrity":"sha512-DyfKlJmti9qqsVPIRUGCikPGQq1b1RgEuPCzwG7UxWVylK3F6/svffaO9nWg6s/Art/onOlEBq9eiY/2H/flBA==","signatures":[{"sig":"MEUCIQDc86chgbz4SEVsrQCqJCA6aiEkY7DzQX8bEJg7s8ZnDgIgfmqtH06lVqDJmWBj8qiZxZW3eBWGJFha6/Ehb7OoUUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCv+ZM1DMaJNZuQlH8z92e0V+haSDKWUaXJP8rw7LvfKQIhAKOMFk5gcTNCXVJR+337U/Z7CXX5+FZXybsSBBy5eYQT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335174},"type":"module","shasum":"d750bb15ee850bad8ef1f399d37944da632244bd","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-DyfKlJmti9qqsVPIRUGCikPGQq1b1RgEuPCzwG7UxWVylK3F6/svffaO9nWg6s/Art/onOlEBq9eiY/2H/flBA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.1.45_1789365630064_0.28948979088684546","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@monotykamary/pi-better-openai","version":"0.2.0","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"f9958e283e7511ba5d01f46406a6d83729932569","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.0.tgz","fileCount":32,"integrity":"sha512-x2VnxzywKvZXLGNHQFoRJf9aEHd7BcG3GjPSKOirTpD+aWT6P9byxJfCjL96oTDVteEUFEoF5b8hThyKvl6HqA==","signatures":[{"sig":"MEQCIC84E073in0BNaAOEUH70+uZrRui9YgPcUFaBrctK1U0AiBwRsmUsOMkCT4Z1obb2gYLo5oLdHtz0R7w9zlW5A7BTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBnWP7I2YucAOm+Kj3KIlE/1ZYshOmvw4qrM2AUq7Jy2AiBGZ3IhrJHQyDVIQn1/E2VBh5lqyD3kVO6lgThn6tvhvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335923},"type":"module","shasum":"f9958e283e7511ba5d01f46406a6d83729932569","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-agent-core":"0.85.1"},"_integrity":"sha512-x2VnxzywKvZXLGNHQFoRJf9aEHd7BcG3GjPSKOirTpD+aWT6P9byxJfCjL96oTDVteEUFEoF5b8hThyKvl6HqA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.85.1","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.0_1789808059798_0.7098738999010867","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@monotykamary/pi-better-openai","version":"0.2.1","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"7c23792efaf022ab98782cbafffb0bfc66d50183","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.1.tgz","fileCount":32,"integrity":"sha512-TfO82ZPNwwRPRXpzg9CmRLP8aiLpag0d6rH/G3qzu35FADhFqIP59gCmquOHaFEcB680Vp4qiZaRJSfFWEPyww==","signatures":[{"sig":"MEYCIQCN+QF6wcIhxwzekY2pKIKAtX3hfWI+GJyfTUZmb+eDqAIhAMoS4blg/xA/s+7Spd6XZoRSg+msmYlo45cQ8D9W2Cjm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH6kKva1dXos/ALC3qbYLtUgrTs/17vYVXjxwv2ET85cAiB6cxUp9Ie1yN7aRPgRSqcuOSka2WltmpXJ5UE1OsAPlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335923},"type":"module","shasum":"7c23792efaf022ab98782cbafffb0bfc66d50183","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.86.0","@earendil-works/pi-agent-core":"0.86.0"},"_integrity":"sha512-TfO82ZPNwwRPRXpzg9CmRLP8aiLpag0d6rH/G3qzu35FADhFqIP59gCmquOHaFEcB680Vp4qiZaRJSfFWEPyww==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.86.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.1_1789893123451_0.5887738809204806","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@monotykamary/pi-better-openai","version":"0.2.2","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"e39d4129134afb4a2b5b0dd689476815b68dd923","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.2.tgz","fileCount":33,"integrity":"sha512-aIcTSZHe74CyniPMOT1gOUuUqguOFie76vVWJDf8Av2xt10u9F2SPTK6mC6fjBXaW+O6hCLeZDE8FRfx7JXUkQ==","signatures":[{"sig":"MEUCIQDN5f3TDS4dA6oAQGWn7E8uVImHtoMGaDSYFB/nkyaqnwIgPYhq+F9CPrfiU+bmp5cS06qdTlxM1v2eiWa7uKwITtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAmI6AenjhW868gj9FnPzMnzytYxxlUaQGpRWoHpRUA1AiBa7mrMppqvD0ZkM90G/ehytn6aJ41s3+nB3lapnIpk2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348721},"type":"module","shasum":"e39d4129134afb4a2b5b0dd689476815b68dd923","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.86.0","@earendil-works/pi-agent-core":"0.86.0"},"_integrity":"sha512-aIcTSZHe74CyniPMOT1gOUuUqguOFie76vVWJDf8Av2xt10u9F2SPTK6mC6fjBXaW+O6hCLeZDE8FRfx7JXUkQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.86.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.2_1789924770054_0.874686322788905","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@monotykamary/pi-better-openai","version":"0.2.3","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.3","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"8606412ae58a1e4c2b3092bb1894c719f7c77d27","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.3.tgz","fileCount":33,"integrity":"sha512-0frf2V2jmI8lhiUaN5EpnzQLUyF5TU9oL2UbUWatSgzJ5V9nYF6d5ETO4Qe6NbnSUqPiMwq+Tygk4qfIX0d4yw==","signatures":[{"sig":"MEUCIQDR+KOAOgOADFI606FsjY1/xvaJqpIv+7OxGLIruis1AAIgPO0GUQnnEzFDU0Qid4LFGiL0tjqj94USpzSmyBnAG5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDFyETcRrqzZq2/qBi8/hNdoAd35NEePfMEnIHa5Pg/DgIgYHTl1gjk7qgIitAKO39CBsSh6BnUJfexymdDTaOxQ10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351037},"type":"module","shasum":"8606412ae58a1e4c2b3092bb1894c719f7c77d27","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.86.0","@earendil-works/pi-agent-core":"0.86.0"},"_integrity":"sha512-0frf2V2jmI8lhiUaN5EpnzQLUyF5TU9oL2UbUWatSgzJ5V9nYF6d5ETO4Qe6NbnSUqPiMwq+Tygk4qfIX0d4yw==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.86.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.3_1789928522336_0.15723120510251176","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@monotykamary/pi-better-openai","version":"0.2.4","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.4","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"c1d8c971cd763c84f022877d73cdb5c7beb57db0","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.4.tgz","fileCount":33,"integrity":"sha512-PSYKkLD9yR8bBYsk++KcdmSjy3AhlsLIeYpTu3N3X8cA70IYztrbqsT5tYuBcFBOju/u/88SEu6kW9MTZnkq1w==","signatures":[{"sig":"MEQCIFrnbEOxvTdlFx6L2cV8bJ8RlY2O7zzMK2jraEP0eIqDAiArboNysa+lI0FMF9zlu3SUwXZHtVBxvvZcKpYwHkp7oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBsi3vmuWW2sOKpRKyHSkwrNjOlge0ZxDtidpGcuXwDIAiALJFI93d8+wKM8ys6JSm3vm/4WVOgx1TZBWiEskR1qzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352453},"type":"module","shasum":"c1d8c971cd763c84f022877d73cdb5c7beb57db0","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.86.0","@earendil-works/pi-agent-core":"0.86.0"},"_integrity":"sha512-PSYKkLD9yR8bBYsk++KcdmSjy3AhlsLIeYpTu3N3X8cA70IYztrbqsT5tYuBcFBOju/u/88SEu6kW9MTZnkq1w==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.86.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.4_1789934849278_0.3623117296964522","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@monotykamary/pi-better-openai","version":"0.2.5","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.5","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"06860c7be39242289749d1544636f4b239a43f98","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.5.tgz","fileCount":33,"integrity":"sha512-NZKSCf+HYlEBeqt8uysn30jqE13rjUazPqC6deyBrBSEyEyt+OTKW0aMeoYrPgUp+zxcjLN5RbxMWnwv7F8/xQ==","signatures":[{"sig":"MEQCIGO/ap4qKhu4wVwJC6tq6tInyxfgaRJ0TsmIQjJK0HfBAiASrOozU/w7m0bMyy2NTls33zhGJE2jJKNqcFFm36x8Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9Y3CdLnukttV1nlN7ru4T+4W4iDvHNcqudtm3dCo0KAIhAO9m9VR+O5ghkS3tDb/ZD8URqPYOykKqflVvtPYKRhub","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352745},"type":"module","shasum":"06860c7be39242289749d1544636f4b239a43f98","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.86.0","@earendil-works/pi-agent-core":"0.86.0"},"_integrity":"sha512-NZKSCf+HYlEBeqt8uysn30jqE13rjUazPqC6deyBrBSEyEyt+OTKW0aMeoYrPgUp+zxcjLN5RbxMWnwv7F8/xQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.86.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.5_1789961678540_0.3248857158460401","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@monotykamary/pi-better-openai","version":"0.2.6","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.6","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"26eb42b7c8ad011fce9de702f91cfb87e6fb050d","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.6.tgz","fileCount":33,"integrity":"sha512-eQ43dJbPtzS8ClTeqSVbTIXUMVfFL/crPeZbUCYFRETxMkdx2xZGjf+BhaKhaFcaFc2fY+o11EpwCP7TwUjCVA==","signatures":[{"sig":"MEYCIQCGIJjaCn5a8OAkcc9SxfD16JtePYyefSGE/AKY+et8egIhANY5jct1RzdHPq3Ep4qrW/HbaQZ2acG24MCd7eQjwUXR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB/cbOQ1zlvaqI/77Vf+7W+Xo1azr5rwhkdotAq/nV1eAiBbznviyC2mEpt68E2lRbIkXqXJ6COXS2pTMMPLeMl1Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352745},"type":"module","shasum":"26eb42b7c8ad011fce9de702f91cfb87e6fb050d","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.87.0","@earendil-works/pi-agent-core":"0.87.0"},"_integrity":"sha512-eQ43dJbPtzS8ClTeqSVbTIXUMVfFL/crPeZbUCYFRETxMkdx2xZGjf+BhaKhaFcaFc2fY+o11EpwCP7TwUjCVA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.87.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.87.0","@earendil-works/pi-coding-agent":"0.87.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.6_1790028729581_0.6354263165149991","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@monotykamary/pi-better-openai","version":"0.2.7","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.7","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"2901938ed9060a6ed5621fbe69fa204cfe61ea2e","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.7.tgz","fileCount":33,"integrity":"sha512-l9lq9kFdrg4DhBfWp69ytkL7r32YZO3wHnZImyiVvrClMmomVCkWtFCiHsTPhi4OhNAOY2HM0jOg0nU/S4fIcA==","signatures":[{"sig":"MEYCIQCgHsHZnYRsKbr/2kYSlxt1wE0jnCAJLJpoo5UuOilVbAIhANwWHryDQRB0LA5kOr1/GZLkgPxvug8TQonvSzbF5wxO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEMCIE5kOzA8f0SyCxESBhKeNFNPWuvvxl4mNj7n8WVQ1Ow3Ah9ZPYn+ZvaAiOMTb6S2UqqCeleaWmyyUxicOJ1qeKRm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352795},"type":"module","shasum":"2901938ed9060a6ed5621fbe69fa204cfe61ea2e","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.99.0","@earendil-works/pi-agent-core":"0.99.0"},"_integrity":"sha512-l9lq9kFdrg4DhBfWp69ytkL7r32YZO3wHnZImyiVvrClMmomVCkWtFCiHsTPhi4OhNAOY2HM0jOg0nU/S4fIcA==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.99.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.99.0","@earendil-works/pi-coding-agent":"0.99.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.7_1790707892481_0.7070432501547641","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@monotykamary/pi-better-openai","version":"0.2.8","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.8","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"cc71a451823e3eb313a80759956c0c6093114c4b","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.8.tgz","fileCount":36,"integrity":"sha512-tpMdjRc4Aymj5gBXh2Tp5y/mlS5SB3+DstqgYSJfalZTM+xE4kln/B4a1yFw8GS5x8G6U+5D5bcqcVpwocO1RQ==","signatures":[{"sig":"MEUCIDTDUXzyt3JEdthFIk1jNMWrYqYnnTFU0uRoLL6Y4EF8AiEAtR1R/JlmQVH365sf+W4537jrAGCxt6rEhLknPpDEZBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB39DXeXcFWxE/wWGwSo1iM6CEP9K9DURdshtHtvZ6lvAiBFoVQitSStD4yOE6j1BATpT/s9ZMejLBCdsZ/WPDbJvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390327},"type":"module","shasum":"cc71a451823e3eb313a80759956c0c6093114c4b","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"0.99.0","@earendil-works/pi-agent-core":"0.99.0"},"_integrity":"sha512-tpMdjRc4Aymj5gBXh2Tp5y/mlS5SB3+DstqgYSJfalZTM+xE4kln/B4a1yFw8GS5x8G6U+5D5bcqcVpwocO1RQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"0.99.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"0.99.0","@earendil-works/pi-coding-agent":"0.99.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.8_1790712217761_0.9001076325769339","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@monotykamary/pi-better-openai","version":"0.2.9","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.9","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"d661d2badd688b9c30ceff0a35f03db5d6354525","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.9.tgz","fileCount":36,"integrity":"sha512-9Z1Y4OB4GSw+DnQSjzZjV6y6K82bln5FkYsmbWOIf/qrcFHA5Pku0WtWMgZug3qQGcQO22st71VFn3gqwmImHQ==","signatures":[{"sig":"MEYCIQCsqKqlqL1rZ8o9hKmQcEP9bz6HeViohAiPjJjAPs2OGgIhAK7yYjz8E5S1AwY3kKfeUhAZQwU0QARbVeTnvO91dk1V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBqSRexV9s7SNs+d8nxmOun0vghqEMMfvksoAFsADt0/AiEA9XpBHefVbk+3gq7y42QvQLg7nCNJEiqSaND3/YQqXBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390570},"type":"module","shasum":"d661d2badd688b9c30ceff0a35f03db5d6354525","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.0","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.9","@earendil-works/pi-ai":"1.0.0","@earendil-works/pi-agent-core":"1.0.0"},"_integrity":"sha512-9Z1Y4OB4GSw+DnQSjzZjV6y6K82bln5FkYsmbWOIf/qrcFHA5Pku0WtWMgZug3qQGcQO22st71VFn3gqwmImHQ==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.0","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"1.0.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.9_1790885210162_0.26952858740508123","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@monotykamary/pi-better-openai","version":"0.2.10","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.10","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"de82e9093c19311c0f69d513c600a9c27f787cc1","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.10.tgz","fileCount":37,"integrity":"sha512-WSwfbojCxNzMpOL1q1i/NT/72706ZVDCbWfvfrNgkfxTRkpHB7N4+i572DHjmLrn5jm2sVOnBzX2kHXY/5FG+Q==","signatures":[{"sig":"MEQCIBxtWdJLR+tzH4CO3matpnFfpTJZs7VJPNjOAQBSFoJ3AiBqalei/Sg7JHhfH8zLhv5GO2n3BhygjnWprnOX3JhqgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHZO37Rr2dg5tVXVDveRDNZyDxckeJZ0rWJHuZjFRmycAiEAqlWWjMLgn9jvSIex/5ZHA2Rgf5osxeJOqY7U3B+av8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393159},"type":"module","shasum":"de82e9093c19311c0f69d513c600a9c27f787cc1","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.2","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.11","@earendil-works/pi-ai":"1.0.0","@earendil-works/pi-agent-core":"1.0.0"},"_integrity":"sha512-WSwfbojCxNzMpOL1q1i/NT/72706ZVDCbWfvfrNgkfxTRkpHB7N4+i572DHjmLrn5jm2sVOnBzX2kHXY/5FG+Q==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.2","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"1.0.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.10_1791058016523_0.3865933754227293","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@monotykamary/pi-better-openai","version":"0.2.11","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"author":"monotykamary","license":"MIT","_id":"@monotykamary/pi-better-openai@0.2.11","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"homepage":"https://github.com/monotykamary/pi-better-openai#readme","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"cf4d39b55e5719e9fe6df7a84312a3a10d904c0d","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.11.tgz","fileCount":37,"integrity":"sha512-7pHcP3WyUQs2Y3HkoIS2AgcdXWstfgQNj2kzo5rbxvJGaXbY/gYYvwdIhPYaIOpVK3m+wj45KZYUxrTP/oNTdw==","signatures":[{"sig":"MEQCIHRbPw7h/JuFroYEU/023lMbPGdYjPkAiF75YQ+KkfBMAiAvzPeBpTdPqKyQBCkFh99Nl2P69Pnq9eWDyyG6Pxj6yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBzmaedBrPvActpF76IFijJ5YFSWDLQw1WBWeVGZ2jmtAiEA+UCCthuuaMQV1ogNCa+MzBJeHEJyt/1wWjcDZAqhA1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393689},"type":"module","shasum":"cf4d39b55e5719e9fe6df7a84312a3a10d904c0d","engines":{"node":">=22.19.0"},"scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"overrides":{"nanoid":"3.3.18","undici":"8.10.2","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.11","@earendil-works/pi-ai":"1.0.0","@earendil-works/pi-agent-core":"1.0.0"},"_integrity":"sha512-7pHcP3WyUQs2Y3HkoIS2AgcdXWstfgQNj2kzo5rbxvJGaXbY/gYYvwdIhPYaIOpVK3m+wj45KZYUxrTP/oNTdw==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.2","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"1.0.0","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-better-openai_0.2.11_1791086771762_0.7632805928411017","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"pi":{"extensions":["./index.ts"]},"_id":"@monotykamary/pi-better-openai@0.2.12","bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"dist":{"shasum":"e904800ea8d981e2ba45fa3fcd35719a0e30c23d","tarball":"https://registry.npmjs.org/@monotykamary/pi-better-openai/-/pi-better-openai-0.2.12.tgz","fileCount":37,"integrity":"sha512-R5Ci+O5RTe0htrq5u9/oV1e7CFAqRXiQyQTXc/Q6ZdLk4dSTjuaDOQ2W8TskKx1YWaUKWRcFwkXu1IbDqUvvDg==","signatures":[{"sig":"MEUCIA6SMAJaVxjN3An8cfkPXxGoJw6G4UU+IhPKYYQTOjCuAiEAkPzMVB51JrfHZG1ah9XBuD8sNEnMQmhmm+6+HITdT7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTE8oBBHQc38ZXonXFLFSwTSBPblTVLsMqz0zNGDl2kgIgarOwZavHo2a8wLYPdr5OimINAtiDMV0RYUPzaQZtES0="}],"unpackedSize":396531},"name":"@monotykamary/pi-better-openai","type":"module","author":"monotykamary","shasum":"e904800ea8d981e2ba45fa3fcd35719a0e30c23d","engines":{"node":">=22.19.0"},"license":"MIT","scripts":{"lint":"oxlint --deny-warnings index.ts src/*.ts src/*/*.ts tests/*.ts","test":"vitest run","check":"bun run typecheck && bun run lint && bun run format:check && bun run test","format":"oxfmt .","test:pi":"node scripts/test-pi-compat.mjs","lint:fix":"oxlint --fix index.ts src/*.ts src/*/*.ts tests/*.ts","typecheck":"tsc --noEmit","format:check":"oxfmt --check ."},"version":"0.2.12","_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"homepage":"https://github.com/monotykamary/pi-better-openai#readme","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"overrides":{"nanoid":"3.3.18","undici":"8.10.2","postcss":"8.5.25","protobufjs":"7.6.5","brace-expansion":"5.0.11","@earendil-works/pi-ai":"1.0.2","@earendil-works/pi-agent-core":"1.0.2"},"_integrity":"sha512-R5Ci+O5RTe0htrq5u9/oV1e7CFAqRXiQyQTXc/Q6ZdLk4dSTjuaDOQ2W8TskKx1YWaUKWRcFwkXu1IbDqUvvDg==","repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","directories":{},"maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"_nodeVersion":"26.3.0","contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"dependencies":{"ws":"8.21.2","sharp":"0.35.4","undici":"8.10.2","proxy-from-env":"2.1.0","https-proxy-agent":"9.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","vitest":"^4.1.5","@types/ws":"8.18.1","typescript":"^6.0.3","@types/node":"~22.19.0","@earendil-works/pi-ai":"1.0.2","@types/proxy-from-env":"1.0.4","@earendil-works/pi-tui":"1.0.2","@earendil-works/pi-coding-agent":"1.0.2"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@oh-my-pi/pi-natives-linux-x64":"17.2.9","@oh-my-pi/pi-natives-win32-x64":"17.2.9","@oh-my-pi/pi-natives-darwin-x64":"17.2.9","@oh-my-pi/pi-natives-linux-arm64":"17.2.9","@oh-my-pi/pi-natives-darwin-arm64":"17.2.9"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-better-openai_0.2.12_1791094696830_0.05628721678504256"}}},"time":{"created":"2026-08-05T11:21:27.201Z","modified":"2026-10-04T06:18:17.198Z","0.1.23":"2026-08-05T11:21:27.566Z","0.1.24":"2026-08-05T12:11:12.781Z","0.1.25":"2026-08-07T06:01:08.354Z","0.1.26":"2026-08-09T02:48:50.352Z","0.1.27":"2026-08-15T00:12:41.523Z","0.1.28":"2026-08-21T16:10:26.586Z","0.1.29":"2026-08-24T15:40:34.421Z","0.1.30":"2026-08-29T12:12:39.695Z","0.1.31":"2026-08-30T08:18:33.908Z","0.1.32":"2026-08-30T09:01:30.674Z","0.1.33":"2026-08-30T19:35:42.283Z","0.1.34":"2026-08-31T15:29:40.912Z","0.1.35":"2026-09-04T13:57:05.020Z","0.1.36":"2026-09-04T19:51:11.134Z","0.1.37":"2026-09-04T20:15:07.401Z","0.1.38":"2026-09-05T19:48:45.643Z","0.1.39":"2026-09-05T22:37:58.403Z","0.1.40":"2026-09-09T04:12:56.389Z","0.1.41":"2026-09-09T07:44:25.868Z","0.1.42":"2026-09-09T09:04:27.377Z","0.1.43":"2026-09-09T09:30:17.176Z","0.1.44":"2026-09-11T08:02:28.368Z","0.1.45":"2026-09-14T06:00:30.144Z","0.2.0":"2026-09-19T08:54:19.887Z","0.2.1":"2026-09-20T08:32:03.553Z","0.2.2":"2026-09-20T17:19:30.173Z","0.2.3":"2026-09-20T18:22:02.420Z","0.2.4":"2026-09-20T20:07:29.368Z","0.2.5":"2026-09-21T03:34:38.663Z","0.2.6":"2026-09-21T22:12:09.682Z","0.2.7":"2026-09-29T18:51:32.589Z","0.2.8":"2026-09-29T20:03:37.851Z","0.2.9":"2026-10-01T20:06:50.301Z","0.2.10":"2026-10-03T20:06:56.618Z","0.2.11":"2026-10-04T04:06:11.891Z","0.2.12":"2026-10-04T06:18:16.954Z"},"bugs":{"url":"https://github.com/monotykamary/pi-better-openai/issues"},"author":"monotykamary","license":"MIT","homepage":"https://github.com/monotykamary/pi-better-openai#readme","keywords":["fast","gpt","image","openai","pi","pi-extension","pi-package","priority","service-tier","voice","webrtc"],"repository":{"url":"git+https://github.com/monotykamary/pi-better-openai.git","type":"git"},"description":"Improve OpenAI in pi with fast mode, usage stats, realtime voice, image generation, and footer polish.","contributors":[{"url":"https://github.com/mattleong","name":"Matt Leong"}],"maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"readme":"# pi-better-openai\n\nA pi extension for OpenAI subscription workflows: fast mode, usage visibility, realtime voice, footer polish, custom Codex pets, and image generation through `openai-codex` auth.\n\n## Install\n\nRequires Node.js 22.19.0 or newer.\n\nInstall from GitHub:\n\n```bash\npi install git:github.com/monotykamary/pi-better-openai\n```\n\nOr install from npm:\n\n```bash\npi install npm:@monotykamary/pi-better-openai\n```\n\n## Authentication\n\nPi 1.0.2 supports **Sign in with ChatGPT** under `/login openai`, using the native Responses API at `api.openai.com`. Use `openai/*` models for that subscription login or an OpenAI API key; the extension preserves pi's native authentication and transport. Standard/Fast tier overrides work with both login methods on supported models.\n\nPi labels `openai-codex` **legacy**, but this extension's usage polling, banked resets, image generation, web search, and live voice still call separate `chatgpt.com/backend-api` endpoints. They require the legacy Codex login, not the new direct-OpenAI OAuth grant. Credentials are never copied or substituted between providers.\n\n1. For those backend features, also run `/login openai-codex`. You can keep an `openai/*` model selected.\n2. Inspect the Codex account's usage with `/openai-usage`, or open `/openai-settings` and check **Diagnostics**. While using `openai/*`, the footer labels it **Codex Usage**: it is not verified against your active OpenAI login and could belong to a different account. For your OpenAI subscription, check [ChatGPT usage](https://chatgpt.com/settings/usage).\n3. The extension reads auth from pi's agent auth store, normally `~/.pi/agent/auth.json`. Do not copy, paste, or commit values from this file.\n4. If `PI_CODING_AGENT_DIR` is set, the auth store, global extension config, and global generated-image directory use that agent directory instead of `~/.pi/agent`. A leading `~/` is expanded to your home directory.\n5. When [pi-multiprovider](https://github.com/monotykamary/pi-multiprovider) 0.8.0+ pools several `openai-codex` accounts, the session's active **Codex** account (chosen with `/switch-account`) is resolved first for usage display, banked resets, image generation, web search, and live voice; the usage widget refreshes on Codex account switches and session restores. An independently selected `openai` account does not select the Codex backend account. Without that extension, credential resolution is unchanged.\n\n## Features\n\n- GPT-6.1 Sol, GPT-6 Astra, and Daybreak Blue/Red model fallbacks for the built-in `openai-codex` provider.\n- Standard, Fast, and capability-gated Ultrafast service tiers via `/openai-tier` or `/openai-settings`; `/fast` remains a quick Fast toggle.\n- Opt-in typed decisions through `openai_decide`, using an explicitly selected Pi classifier provider (including Jev). Native OpenAI Decisions remains gated on a published adapter.\n- OpenAI subscription usage display via `/openai-usage` and the footer.\n- Interactive settings picker via `/openai-settings`.\n- Footer customization for model, thinking, fast mode, usage, and token/cost context.\n- OpenAI image generation/editing through the `openai_image` tool and `/openai-image` command.\n- Live web search through the `openai_websearch` tool and `/openai-websearch` command, backed by the ChatGPT Codex search backend.\n- Codex-backed realtime voice through `/live`, with an animated microphone waveform and coding-task delegation into the active pi session.\n- Animated Codex custom pets rendered in the Better OpenAI footer.\n- Commands:\n  - `/fast` toggles Fast and Standard; it never enables Ultrafast.\n  - `/openai-tier [standard|fast|ultrafast]` shows or selects the requested service tier.\n  - `/openai-decisions [models|use provider/model|off]` inspects or configures typed decisions.\n  - `/openai-image <prompt>` generates an image directly.\n  - `/openai-websearch <query>` searches the web and inserts the cited answer into the session.\n  - `/live` starts or stops realtime voice mode. `Ctrl+Shift+L` is the keyboard toggle.\n  - `/pets [help|list|wake [slug]|tuck|select <slug>]` renders or manages custom pets from `${CODEX_HOME:-~/.codex}/pets`.\n  - `/openai-usage` shows current OpenAI subscription usage.\n  - `/openai-resets` inspects and manually redeems a banked Codex reset.\n  - `/openai-settings` opens settings, diagnostics, and config details.\n\n## Banked resets\n\nUnused banked Codex resets **auto-redeem by default, 10 minutes before expiry**, while an interactive pi session is running and Codex credentials are available. Starting pi within that final ten-minute window also triggers the check; expired credits are skipped. This runs independently of the usage display and current model. The reset picker and confirmation show each credit's actual local auto-redemption date and time (expiry minus ten minutes) beside its expiry. Disable **Auto-redeem banked resets** in `/openai-settings` or set `usage.autoRedeemBankedResets` to `false` to opt out.\n\nFor safety, each attempt targets one explicit, freshly checked credit ID, with no fallback to another credit and no automatic retry after a consume request (including errors or `nothing_to_reset`). A persistent per-account guard permits at most one redemption attempt in ten minutes across pi sessions sharing the same agent directory; manual redemption uses the same guard. Automatic reservations recheck the ten-minute eligibility window while holding an exclusive filesystem lock, and attempted credit IDs remain blocked even after later redemptions or restarts. Simultaneously expiring credits are not drained, and later credits wait for their own final ten-minute window. Reservations live under `$PI_CODING_AGENT_DIR/pi-better-openai/reset-redemptions` (default `~/.pi/agent/pi-better-openai/reset-redemptions`); unreadable state or an orphaned lock blocks redemption rather than risking a duplicate. Update/restart all pi instances to use the current guard. Separate machines/agent directories cannot coordinate this local guard; instances using the same account should share an agent directory.\n\nPi must remain running and awake; this is not an OS-level scheduled task. No eligible usage window or unavailable credentials can prevent redemption.\n\n## Configuration\n\nThe extension reads JSON config from two locations:\n\n- Project config: `.pi/extensions/pi-better-openai.json`\n- Global config: `$PI_CODING_AGENT_DIR/extensions/pi-better-openai.json`, defaulting to `~/.pi/agent/extensions/pi-better-openai.json`\n\nProject overrides global. Global values fill fields omitted by the project file. Invalid enum values are ignored, and numeric settings are clamped to safe ranges.\n\nDefault supported models:\n\n```json\n[\n  \"openai/gpt-5.4\",\n  \"openai/gpt-5.5\",\n  \"openai/gpt-6-astra\",\n  \"openai/gpt-6.1-sol\",\n  \"openai/gpt-6-sol\",\n  \"openai/gpt-6-luna\",\n  \"openai-codex/gpt-6-astra\",\n  \"openai-codex/gpt-6.1-sol\",\n  \"openai-codex/gpt-6-sol\",\n  \"openai-codex/gpt-6-luna\",\n  \"openai-codex/gpt-5.6-sol\",\n  \"openai-codex/gpt-5.6-terra\",\n  \"openai-codex/gpt-5.6-luna\",\n  \"openai-codex/gpt-5.4\",\n  \"openai-codex/gpt-5.5\"\n]\n```\n\nExample config:\n\n```json\n{\n  \"persistState\": true,\n  \"notifyOnModelSwitch\": true,\n  \"serviceTier\": \"standard\",\n  \"decisions\": {\n    \"enabled\": false,\n    \"model\": \"\",\n    \"timeoutMs\": 10000\n  },\n  \"usage\": {\n    \"enabled\": true,\n    \"refreshIntervalMs\": 60000,\n    \"showOnlyOnSubscriptionModels\": true,\n    \"showResetTimes\": true,\n    \"autoRedeemBankedResets\": true\n  },\n  \"footer\": {\n    \"mode\": \"status\"\n  },\n  \"image\": {\n    \"enabled\": true,\n    \"defaultModel\": \"gpt-image-2.5\",\n    \"defaultSave\": \"project\",\n    \"outputFormat\": \"png\",\n    \"timeoutMs\": 180000\n  },\n  \"live\": {\n    \"enabled\": true,\n    \"voice\": \"sol\"\n  },\n  \"pets\": {\n    \"enabled\": false,\n    \"slug\": \"\",\n    \"placement\": \"inline-right\",\n    \"state\": \"idle\",\n    \"thinkingState\": \"review\",\n    \"toolState\": \"running\",\n    \"failedToolState\": \"failed\",\n    \"idleEmotes\": true,\n    \"idleEmoteIntervalMs\": 30000,\n    \"sizeCells\": 10\n  }\n}\n```\n\nSetting `image.enabled`, `websearch.enabled`, or `decisions.enabled` to `false` hides that tool and removes its system-prompt guidance, including from pi-fabric capture. Changes in `/openai-settings` or `/openai-decisions` apply immediately; use `/reload` after editing config files manually. Configuration commands remain available.\n\n## Service tiers\n\n`/openai-tier fast` requests `service_tier: \"priority\"`. `/openai-tier standard` explicitly requests `\"default\"`, clearing an inherited Fast/Ultrafast request tier on OpenAI providers. Legacy disabled configurations without an explicit tier leave payloads untouched. `/fast` and the `--fast` flag never select Ultrafast.\n\n`/openai-tier ultrafast` explicitly opts into **6x Standard token prices** for **API-key-authenticated** `openai/gpt-6-astra` over the Responses API. Only the documented global (`https://api.openai.com/v1`) and US (`https://us.api.openai.com/v1`) endpoints are enabled. EU/regional endpoints, custom proxies, other models, and ChatGPT subscription Ultrafast (both `openai` OAuth and legacy `openai-codex`) are not enabled without verified support. This does not promise account entitlement or available rate limits. Unsupported selections remain requested but inactive; the extension does not inject a lower-tier fallback or retry a rejected request.\n\nThe footer shows `fast` or `ultrafast` only when supported by the current model. Diagnostics distinguish the requested tier and last injected payload from server-confirmed service or billing. **Pi's host cost estimates may omit the Ultrafast premium**; use OpenAI billing for actual charges. The host's native transport is preserved; WebSockets are recommended by OpenAI but HTTP is also supported. See [Ultrafast documentation](https://developers.openai.com/api/docs/guides/ultrafast-mode) and [pricing](https://developers.openai.com/api/docs/pricing?latest-pricing=ultrafast).\n\n`serviceTier` takes precedence over legacy `desiredActive`/`active` within each config layer; project state still overrides global state. `persistState: false` keeps tier changes session-only. `supportedModels` overrides the Fast allowlist, not Ultrafast capabilities. Unknown config fields and customized model lists are preserved.\n\n## Typed decisions\n\nThe `openai_decide` tool returns typed judgments through Pi's classifier API, **not chat completions**. It is disabled by default and never chooses a provider automatically. To use an existing Jev classifier explicitly:\n\n```text\n/openai-decisions models\n/openai-decisions use typesafe/jev-latest\n```\n\nConfigure that provider's credentials through Pi (for example, `TYPESAFE_API_KEY` for TypeSafe). The model list shows registered classifiers, not guaranteed credentials or entitlement. `/openai-decisions use` saves the selected model and enables decisions in the active project/global config; `/openai-decisions off` disables requests. These settings are independent of service-tier persistence. Provider-qualified IDs containing further slashes, such as `openrouter/typesafe/jev-1.13`, are supported when registered by the host. Prefer pinned versions for stable evaluations.\n\n**Native OpenAI Decisions is not yet implemented:** as of the September 29, 2026 research checkpoint, no verifiable public endpoint/schema or SDK adapter was found. The bridge accepts OpenAI only once a classifier adapter is registered in Pi; it does not invent an endpoint, forward Codex OAuth to another service, or silently substitute a chat model. See the [integration status and remaining gates](plans/devday-integration.md).\n\nExample tool input:\n\n```json\n{\n  \"state\": { \"testFailure\": \"connection to local test database timed out\" },\n  \"questions\": {\n    \"route\": {\n      \"type\": \"choice\",\n      \"instructions\": \"Classify the failure for human review.\",\n      \"criteria\": { \"environment\": \"Environment problem\", \"code\": \"Code defect\" }\n    }\n  }\n}\n```\n\n- `state`: JSON object; send only the necessary context, never credentials or the entire session.\n- `questions`: 1–32 named questions. `choice` uses 2–64 labeled criteria; `bool` uses `true`/`false` criteria; `score` uses 2–64 ordered criteria. Pi maps boolean questions to Jev's `noul` representation.\n- Total input is capped at 64 KiB. `decisions.timeoutMs` defaults to 10000 and is clamped to 1000–60000. Cancellation/deadlines abort the provider request; there are no automatic retries. A timed-out upstream request may still incur charges.\n- Results have `status: \"ok\"`, provider/model provenance, and typed `answers`; errors have `status: \"error\"` and mark the tool failed. Structured output is available to programmatic callers. Provider error text is withheld to prevent credential/state leakage.\n- Probabilities and confidence remain uncertain judgments; scores retain their provider-specific scale. No claim of cross-provider calibration is made. Decisions never authorize tools, execute commands, change the active model, or start background polling.\n- Reported classifier token usage/cost is included in tool results and the Better OpenAI footer. Missing usage or catalog pricing is not evidence that a request was free.\n\n## Codex model fallbacks\n\nThese fallbacks remain scoped to the legacy provider. The native `openai` provider and its catalog are not replaced or redirected to Codex.\n\nThe extension adds `gpt-6.1-sol`, `gpt-6-astra`, `gpt-daybreak-blue-latest`, and `gpt-daybreak-red-latest` to the built-in `openai-codex` provider without requiring local `models.json` entries. Existing built-in models remain available, and metadata from pi's live catalog takes precedence when pi publishes an official entry with the same ID.\n\nThe GPT-6.1 Sol fallback uses Codex's conservative 272K context default, 128K output limit, and published short/long-context pricing. It maps Pi's `minimal` level to `low` and disables `off`; the model does not accept `none` or `minimal` reasoning efforts. See [model documentation](https://developers.openai.com/api/docs/models/gpt-6.1-sol) and the [upstream Codex catalog change](https://github.com/openai/codex/commit/b1e72963c3b71a9265a551e54beff078384efed9).\n\nDaybreak models require separate OpenAI approval and provisioning. pi currently exposes reasoning levels through `max`; Codex's `ultra` automatic-delegation mode is not a pi thinking level.\n\n## Live voice\n\nRun `/live` or press `Ctrl+Shift+L` to open the realtime voice panel. `Ctrl+L` remains pi's model selector, so the extension deliberately uses the shifted chord. While live mode has focus:\n\n- `Space` toggles microphone mute.\n- `Escape`, `Ctrl+C`, or `Ctrl+Shift+L` ends the call.\n- The waveform reacts to microphone RMS level and the panel footer shows connecting, listening, working, speaking, muted, or error state.\n- Streaming speech transcripts stay in the live panel. Coding and repository requests are delegated into the current pi agent session; normal tool and assistant output continues in the transcript, and the final result is spoken back through the live session.\n\nChoose the spoken voice under **Live voice** in `/openai-settings`. Supported values are `arbor`, `breeze`, `cove`, `ember`, `juniper`, `maple`, `sol`, `spruce`, and `vale`.\n\nLive mode requires interactive TUI mode, microphone/speaker access, `openai-codex` OAuth, and one of these native targets: macOS arm64/x64, Linux arm64/x64, or Windows x64. Standard `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, and `NO_PROXY` settings are honored for signaling and sideband traffic. Audio/WebRTC uses the MIT-licensed native platform packages from [`can1357/oh-my-pi`](https://github.com/can1357/oh-my-pi). The adapted implementation is attributed in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). On macOS, launchd-managed LocalTerm users should rerun `localterm install` after upgrading LocalTerm and allow its microphone prompt.\n\nThe feature uses Codex Desktop's experimental `gpt-live-1-codex`/Quicksilver protocol rather than the public OpenAI Realtime API. Upstream protocol or entitlement changes may temporarily break it.\n\n## Image generation\n\nUse the command for quick generation:\n\n```text\n/openai-image draw an otter reading a terminal\n```\n\nAgents can call the `openai_image` tool directly. Supported parameters:\n\n- `prompt` (required): pass the user's image wording verbatim.\n- `action`: `auto`, `generate`, or `edit`. `auto` uses the edit endpoint when `images` are supplied; explicit `edit` requires images, while explicit `generate` does not accept them.\n- `images`: up to five distinct project-local reference/edit image paths. Paths must stay inside the current workspace and point to readable PNG, JPEG, WebP, or GIF files; each file is limited to 20 MB and the combined input to 50 MB.\n- `model`: GPT Image model override for the standalone Codex Images API, for example `gpt-image-2.5` or `gpt-image-2`. Values outside the `gpt-image-` family, including legacy Responses chat models, are replaced with the configured default image model.\n- `outputFormat`: `png`, `jpeg`, or `webp`. Codex returns PNG and the extension converts other formats locally.\n- `save`: `project`, `global`, `custom`, or `none`.\n- `saveDir`: required for `save: \"custom\"` unless `PI_IMAGE_SAVE_DIR` is set.\n\nSave modes:\n\n- `project` writes to `.pi/generated-images/` in the current project.\n- `global` writes to the agent `generated-images` directory, normally `~/.pi/agent/generated-images/` or `$PI_CODING_AGENT_DIR/generated-images/`.\n- `custom` writes to `saveDir` or `PI_IMAGE_SAVE_DIR`; relative paths are resolved from the current project.\n- `none` returns the image without saving it.\n\nThe repository ignores `.pi/`, so generated images and local config should not be committed.\n\n## Web search\n\nUse the command for a quick search:\n\n```text\n/openai-websearch latest tanstack query release\n```\n\nAgents can call the `openai_websearch` tool directly. Supported parameters:\n\n- `query` (required): the web search query.\n- `responseLength`: `short`, `medium`, or `long`. Defaults to the configured value.\n\nThe tool returns a synthesized answer plus cited source URLs. It calls the\nundocumented `chatgpt.com/backend-api/codex/alpha/search` endpoint with your ChatGPT\nOAuth credentials (`openai-codex` login), so it can change or break without notice;\nOAuth/API-key-only setups without ChatGPT login are not supported.\n\nSettings under `websearch` in the config file or the `/openai-settings` picker:\n\n- `enabled` (default `true`), `model` (default `gpt-5.6-luna`),\n  `reasoningEffort` (default `max`), `responseLength` (default `short`),\n  `maxOutputTokens` (default `4096`, clamped to 256-100000), and\n  `timeoutMs` (default `25000`, clamped to 5000-120000).\n\n## Codex pets\n\nCodex pets are an OpenAI Codex app feature, so the floating overlay and pet picker are still controlled by Codex (`Settings → Appearance → Pets` or `/pet`). This extension can also render compatible custom pet spritesheets directly in pi's Better OpenAI footer.\n\n```bash\n/pets wake          # render the selected pet, or pick one if none is selected\n/pets wake <slug>   # render a specific ready pet\n/pets select <slug> # select a ready pet without changing visibility\n/pets tuck          # hide it\n/pets list          # list local custom pets and readiness diagnostics\n```\n\nYou can also enable **Footer pet** in `/openai-settings`, cycle installed pets with the **Pet** row, preview the selected pet in the footer, and tune placement (`inline-right` by default), idle, thinking/streaming, tool-execution, and any failed-tool animation states, plus random idle emotes and size.\n\nTo create a custom pet for the Codex app:\n\n```bash\n$skill-installer hatch-pet\n```\n\nThen reload Codex skills (`Cmd/Ctrl+K → Force Reload Skills`) and ask:\n\n```text\n$hatch-pet create a new pet inspired by pi-better-openai\n```\n\nCustom pets should end up in `${CODEX_HOME:-~/.codex}/pets/<pet-name>/` with `pet.json` and `spritesheet.webp`. The spritesheet must be a 1536×1872 atlas arranged as 8 columns by 9 animation rows. Animated footer rendering also requires a terminal image protocol supported by pi. Refresh custom pets in Codex settings and toggle the overlay with `/pet`.\n\n## Attribution\n\n[`pi-better-openai`](https://github.com/mattleong/pi-better-openai) was originally created by [Matt Leong](https://github.com/mattleong). This fork is maintained and published under the `@monotykamary` namespace while retaining Matt's authorship and the original Git history. Realtime voice adaptations have separate attribution in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).\n\n## Screenshots\n\n<!-- Add screenshots here. -->\n\n<img width=\"983\" height=\"851\" alt=\"Screenshot 2026-04-29 at 11 53 23 PM\" src=\"https://github.com/user-attachments/assets/07a2fb87-ef48-4396-8b12-124825c8d360\" />\n<img width=\"1327\" height=\"102\" alt=\"Screenshot 2026-04-29 at 11 34 49 PM\" src=\"https://github.com/user-attachments/assets/22042782-c94e-491d-b5af-095f7f0810f9\" />\n","readmeFilename":"README.md"}