{"_id":"pi-quiver","_rev":"44-015ca250412fba3afbf9ed9b1c66e159","name":"pi-quiver","dist-tags":{"latest":"6.11.0"},"versions":{"3.0.0":{"name":"pi-quiver","version":"3.0.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.0.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts"]},"dist":{"shasum":"13baf7609adaa259141753b749c6428430ea3855","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.0.0.tgz","fileCount":11,"integrity":"sha512-eI3zXiVbIO+SrpjLKzZokBIcod6VIPCYe0TlPOxBioexauvOcHKaO35F/Hhn02ESNUaMyrnWawPBYgu3zWo1og==","signatures":[{"sig":"MEYCIQC78+OEad3STaJVpRK47fq5I/5JPwrkfdbU0Xh7KHla3AIhAPNIF7IcbIOGd+CbFC61mk/P/DnjY+ddhuyWbC7J5Bul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78702},"type":"module","engines":{"node":">=20"},"gitHead":"2391f660a76cbc36be6212eb9e0bc00466709fd2","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts"},"_npmUser":{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"11.5.1","description":"Personal pack of Pi coding-agent extensions. First-party-quality tools that keep context clean. Ships a context-safe fetch tool and a doc_to_md PDF/DOCX/PPTX-to-Markdown converter.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.0.0_1783003386934_0.8733801651759141","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"pi-quiver","version":"3.0.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.0.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts"]},"dist":{"shasum":"0f44899fd6e4d3a71405cd25acb7b99f7a49e98e","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.0.1.tgz","fileCount":11,"integrity":"sha512-TxWd5fVQ7CZaaKFgGWp0CsxX4G52G9aLvrfx8zGuIBPdNXdpKM5sWOJ2gddu3SBMrLvNjXHLMDxP7Bj8MR/vSw==","signatures":[{"sig":"MEQCIDy7USE0R9rskHXCSn4W98a0xnBlD3ZdBXgRsdhCg3HDAiB4fd+KHH075ylW/IN26ag389SRSHfT/iXjhFuB4Z3UwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79142},"type":"module","engines":{"node":">=20"},"gitHead":"4f23590af675803d8c07a8be2e675aaa0bef1536","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"11.18.0","description":"Personal pack of Pi coding-agent extensions. First-party-quality tools that keep context clean. Ships a context-safe fetch tool and a doc_to_md PDF/DOCX/PPTX-to-Markdown converter.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.0.1_1783191393714_0.9944888177838949","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"pi-quiver","version":"3.1.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.1.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts"]},"dist":{"shasum":"883d046d9854b4d20af93d1a088e1bdfba913354","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.1.0.tgz","fileCount":11,"integrity":"sha512-boylorE/tscr0QvutVQPbZIdRxua9b1OtkRwwJtSofnqbiQrDt52LUreoBtFyjbO/+bcTSXW6gBXRi2Y2Xlf8g==","signatures":[{"sig":"MEUCIBk9OtZevKxclj8UWIkHm4bAiTLj58gOQFo/4YrZXrcjAiEA1y9QsgceT7xg2nkwdr6XN1Hk5oRPs7I9THHfEqxPV3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86941},"type":"module","engines":{"node":">=20"},"gitHead":"36d4c08b9f8d3bf6f6820a1a4df22d67c3d670a1","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"11.18.0","description":"Personal pack of Pi coding-agent extensions. First-party-quality tools that keep context clean. Ships a context-safe fetch tool and a doc_to_md PDF/DOCX/PPTX-to-Markdown converter.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.1.0_1783199052676_0.6527055473226047","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"pi-quiver","version":"3.1.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.1.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts"]},"dist":{"shasum":"4595ab48a68467fe40d5255d767d5559f96e6bba","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.1.1.tgz","fileCount":11,"integrity":"sha512-C+FFb2Zd96jBWEWq1AOCMq3pgD+DEX/MXIGq+lEqLlhVFYRZhgf8spomkKU4OJ3YxZD8qNWVoKZpY4NPpfCEPw==","signatures":[{"sig":"MEYCIQDFY4brE9Kq1laIh/NW3i0ytHU7x2/+Ge6WVTrGnSWZLAIhAJAP2jZcuyItKyFQlv+FWBgAQepfksoRHXZgYJOYKtoh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88088},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"ee4a9c34034631311924e4745255f746a1dc02be","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"11.18.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, and a themed ASCII startup header.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.1.1_1783255963958_0.04021321929625454","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"pi-quiver","version":"3.1.2","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.1.2","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts"]},"dist":{"shasum":"14175bdd7ef5c654ce3cc308cb65cd953713f884","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.1.2.tgz","fileCount":11,"integrity":"sha512-CnoipNh50p2F0kK/pVM9LYfP+K514sur1Y8gQBGvHwjvHy8W2iaF8zQQ1qg9I9snxVMLm82abV60baIEurO9VQ==","signatures":[{"sig":"MEQCIAdy9EWlaY6NF459Zlc9HNGDo2QREc6Pu9tnhyldc+WKAiBI6NqxaG5rjw6PVB0Go6b4O6cT4T4F1pG9qw5Rnq24iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83751},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"bdde77a1c9a0878d7d9f437c343dc3e066e259d5","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"11.18.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, and a themed ASCII startup header.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.1.2_1783456610078_0.9226768373676666","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"pi-quiver","version":"3.2.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.2.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts"]},"dist":{"shasum":"f654923e4dde2bb9782bdacf504485dbb766c383","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.2.0.tgz","fileCount":12,"integrity":"sha512-b1wCCMyDOFRx8owARAVKHZVF5z4yJTNdsdl69EYigsuRWBNayweTcU7RVJGs1upBKXGPuc4kyHEVMqCVOWunMQ==","signatures":[{"sig":"MEUCIQCdr5NWZ4YdyhE0oVKb2BUVmekSP93BSqIAA9jKpwPgWwIgVDauiKOhmsTzITgWAZKnsWGhS4Qn9KL+bVoXh2GhnLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91640},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"794e23b40508edea4de09b401602e89bc750b5bc","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.1","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, and a themed ASCII startup header.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.2.0_1783883898861_0.9011135341228751","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"pi-quiver","version":"3.3.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.3.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts","./provider-stall-watchdog.ts"]},"dist":{"shasum":"11cedaa0efb122f22825cf7fd4caaa8da952a66c","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.3.0.tgz","fileCount":13,"integrity":"sha512-+poQfiepR1CL7ELhL+na3KxSnJw9z6fWy+z+VMJcSLz1UWLhxM7aPbsOrHm6B/+yk1t3l5AXyH6BR6xJo6bFLQ==","signatures":[{"sig":"MEUCIQC882hiy4qbGtcMAbP4yfyM8vbt3aL1OxOrvzHuFA9VNQIgUYaVl75QkdsMh/Jajo6qXlBD8lakmRBJrA4hpvjL048=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103669},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"53c6188d0d7fcf246d2bc5881c98282aa0e517fd","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts provider-stall-watchdog.ts provider-stall-watchdog.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.1","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.3.0_1784475556623_0.22984128976784546","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"pi-quiver","version":"3.3.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.3.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts","./provider-stall-watchdog.ts"]},"dist":{"shasum":"7e083fa65aef50b60aea8cc785f26b715a2599a4","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.3.1.tgz","fileCount":13,"integrity":"sha512-Mv9IS+rqDB8R+C4zzjbqZahckl6/3spQh5R2rBZR65EGfwogiSOLgzQXbLR1Iy7QkG+rKvNcTVo4a/IMPLM4eQ==","signatures":[{"sig":"MEUCIQCcDalVIWQrfx74iHJHIiJkiGjgZfhnwnS1K+8eLj+kJQIgFMEkfo+xS6s+ms3HdDGaxHuU65LHc/dO9vUULE4Nplo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106168},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"66d55dbb208c151b28d025a642c24faee80257aa","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts provider-stall-watchdog.ts provider-stall-watchdog.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.1","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.3.1_1784483700951_0.03942359453159017","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"pi-quiver","version":"3.3.2","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.3.2","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts","./provider-stall-watchdog.ts"]},"dist":{"shasum":"37fe7ea67f57fc1a504d62e417ca9fdf8f93b0e1","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.3.2.tgz","fileCount":13,"integrity":"sha512-tYyUVnReB1YctJ78dg5Nzfrm0Tv8LIr5IcMkbNk7PXn4zzvLkUQM4kL34kNIMIuvWLPqrT53Pe2SuHhgW4inOQ==","signatures":[{"sig":"MEYCIQCBH3BbwpDkPbud5CfBKQ7wi5nCt7TedA6rsRom9o5rEQIhALdG5jRgnKl/YNhwHiUYNP9Y5L9F9ID2k74NJIpWFQao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106638},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"2f1a45234aae7e857a18d523630c8521b113052b","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts provider-stall-watchdog.ts provider-stall-watchdog.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.3.2_1785362682779_0.5906850111009256","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"pi-quiver","version":"3.4.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.4.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts","./provider-stall-watchdog.ts"]},"dist":{"shasum":"dccf646a3ba8a409a8170c2ad9f19e56b6ee4465","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.4.0.tgz","fileCount":13,"integrity":"sha512-3kWZXC7y4lhPepey/spnlm/ivSHml37X7+Q6/pgrYgNtJ3Wk6bQ98xlWnvi6qSGxQkbUy3hq8Y3zh/iNEtx3Qg==","signatures":[{"sig":"MEYCIQDeWUbe/BmLYR54i34gxhXjAhz9QIBlDhgQK/xEx8feCAIhAItmDbpKMv6UjP/Cp9zB7jw39QlObNCOI15IpkpJINj+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116700},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"b524cf23a5d19285828f3edc0ac20c946d5fa43c","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts provider-stall-watchdog.ts provider-stall-watchdog.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.4.0_1785390135016_0.6914135366331664","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"pi-quiver","version":"3.4.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@3.4.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./fetch.ts","./doc_to_md.ts","./session-name.ts","./sword-header.ts","./fast-mode.ts","./provider-stall-watchdog.ts"]},"dist":{"shasum":"11335ed250cba05ded4319d14df6e2298b166593","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-3.4.1.tgz","fileCount":13,"integrity":"sha512-fo31TqBR7LkkKFsWCHHuHqyCY1Jk3Jsg3hibDV6SATd8Zkxu9vE7+alrd+pmLxU8FNAqiLGc8JId3VYN6Db5WA==","signatures":[{"sig":"MEYCIQCqHIt6XA5zI+nqqyOol79YoYevg0ek8AbWGoVP5GRS8AIhALwX9k2WniXXQ+8YP/gfOB9NcMJUjOOs6Y10gm8EymHn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@3.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119759},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"113f8602f936cbe3123292bb21d0a30c3c51be8b","scripts":{"test":"node --test \"*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit --allowImportingTsExtensions --target es2022 --module nodenext --moduleResolution nodenext --strict --skipLibCheck --esModuleInterop --resolveJsonModule --lib es2022 --types node fetch.ts fetch.test.ts doc_to_md.ts doc_to_md.test.ts session-name.ts session-name.test.ts sword-header.ts sword-header.test.ts fast-mode.ts fast-mode.test.ts provider-stall-watchdog.ts provider-stall-watchdog.test.ts extension-config.ts types/turndown-plugin-gfm.d.ts","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_3.4.1_1785844385729_0.5506436862125883","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"pi-quiver","version":"4.0.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.0.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"dist":{"shasum":"8d722021b6e39630b3bf0005073cad32fe5b20cd","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.0.0.tgz","fileCount":13,"integrity":"sha512-xxrVJdSaaADeHzOA9wJfz6qlqFfzZqRARlCFWQv5OaXsPKrUyVegyKx1Pk9HK4k6W+WFEIXJhEL2HY/KOEKFNA==","signatures":[{"sig":"MEQCICqG2HQk7Qz0OcMURHsbeEj3ir7DGhwAmr/GTdg43hVnAiBK9tznRaRnYMXbBKvu8aerZomE616xUCtAG4OEbcLEmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119857},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"4355308b765ec321180b8cf3dccaf670c9cf6b30","scripts":{"test":"node --test \"test/*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.0.0_1785879230398_0.08786365302961552","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"pi-quiver","version":"4.0.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.0.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"dist":{"shasum":"1d683041ec2795f62af877a81b087b55369f5294","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.0.1.tgz","fileCount":13,"integrity":"sha512-mcg60EDqtQqOIxOF8xWiB09m20kQN6NYsPwwxmI0VwwseT7ltPOFslNsnk5OWjBWaTnGjypXIAFqFSdCQSai+g==","signatures":[{"sig":"MEUCIAMynghqDv+zBYVHwZUKglqylSfKU78k3J9cN6MbXNxbAiEA3nKYyd1zGhBxl/ZilU7dhtts9C9M3rcuaVJcLdrk7qM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119257},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"202d52b40d503be1554a4846549a750334f4e55d","scripts":{"test":"node --test \"test/*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.0.1_1786088745978_0.7658491926493001","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"pi-quiver","version":"4.1.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.1.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"dist":{"shasum":"97cae97b7206fda3fdc4d7e15bc79e6f04498e00","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.1.0.tgz","fileCount":13,"integrity":"sha512-eph0nn++5oRs1nCIuMpu/jV7hF/a93gRt1y1ng+cU/tlZMK0xVnaRAYv/YzsLkIVQZl2J5nBRDRay8f2CSU+QQ==","signatures":[{"sig":"MEYCIQDZnhoEnM3z2Ho5iC5ukDyKWrEwKFQgaqIrY4fbIbKbNwIhAIhJxVQrUQMVj/mu5ZT6AjHVplz+gcw0bAsnMEv1TK+H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133348},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"fadf41472b75053f3358bb65bd15e14c610ff579","scripts":{"test":"node --test \"test/*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.80.3","@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.5"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.1.0_1786694964130_0.6685543615089262","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"pi-quiver","version":"4.1.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.1.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"dist":{"shasum":"8280a58380cdb1819e84b0c7c2eca4c1d4f91500","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.1.1.tgz","fileCount":13,"integrity":"sha512-liJsVwO7Aza2twLBsP3KWGoQQu9nRlNb5Z8eSHG5LUxLnrQt9me+cF5ZrQxZmXpqS6ZFpjt+6w/Zbwdemmo48w==","signatures":[{"sig":"MEUCIGXxk8iZz0sIQCnOcd5P+qjrkVtiIeVoUSkjEctiuja6AiEA9rD/H039f6akDY2KMMHxicaONKNoF/GK9zO+U/wgPRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134370},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"cd6b0369a725706ca64283c7c0dcd2be4ee53774","scripts":{"test":"node --test \"test/*.test.ts\"","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.1.1_1786967846165_0.9616536661454187","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"pi-quiver","version":"4.2.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.2.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"657b3646f399e8b07bd21220e0ffd357b542e86c","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.2.0.tgz","fileCount":15,"integrity":"sha512-voiVVWy03EBSacPsdHD1QltoDi4lJHvDS+Z3nN38U9t27wpKhssMLpJFOkXCubupR61zSPi8ddyink6/lTt2Qg==","signatures":[{"sig":"MEUCIHGeAghkEn/jbKKwoIiI06uftqbbutBWwFs+fic9zbh1AiEAzOR80AIK32fnHDPWhxM9HqApD2q1cbM85HywtSJO7oA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":156517},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"8946460c800bdcb9da66fc3f57a26ea1a67240a4","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.2.0_1787218480490_0.1949456645142913","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"pi-quiver","version":"4.3.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.3.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"fe3be566434b620ab0b18196f85af9a714a126fb","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.3.0.tgz","fileCount":15,"integrity":"sha512-e9MZXE99WUmAiPt+UD51rPdHUXeqtHasHgwWsHkwuend6icbwH/Rzguh01IClMhSdFwHBizmH0YrEATdOmEegw==","signatures":[{"sig":"MEQCICVGEzXnNuLFgNSnBdQNGjjhk3csTn8SxDGm22d8GwnJAiBd3FExLpNqKz+UTt8WbaFAhQ7qdCGnE1dNDhtF3FdM/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160523},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"d9cee5da7db24627f5f13d0633dac6c92cbf01f8","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.3.0_1787649425829_0.4728122774424146","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"pi-quiver","version":"4.4.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.4.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"49afd88d47e7c4763cdd436ad7d3778884c91f9a","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.4.0.tgz","fileCount":16,"integrity":"sha512-jYMFnI71P9OYBGJkLU4n8w9CWeLDLwos2k1s1D5AyC1hs7ISrBhUh+PYbYvAilRHvTbRX25Pzjub/nh6rL3OzA==","signatures":[{"sig":"MEQCIAxEhdVmDSDeRFsZaImTpvFypqKeBK/xahzLacRhjxtbAiANp7tXB+wASbUycRQW95OhKvbkIivDccK4XjrZFRg6Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":190105},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"92ab8ccd2334b9ef52beb874d46c94fa066c1e4b","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.4.0_1787766563990_0.5886721005538822","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"pi-quiver","version":"4.5.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@4.5.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"0c52934b75781fefb3f3024dd686f6faf308a038","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-4.5.0.tgz","fileCount":16,"integrity":"sha512-19ys6esgrNg+ZUbK6WzuZJuBE8gokF53H/ImJT0Eid18WAgMUGzI3dBthujyhWuX61SDjxAH0h1tyboosPHD5w==","signatures":[{"sig":"MEUCIE+NP3Bj74/UPKLHu9ksIserweOqBjeSPulQdo/7OchoAiEAkklHw+3pyFcei2lhH2t7NWLsYmUvbik9wRgkblEHPe0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":195291},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"869807d2b56aa0cc1f12cf3bf385212bde709770","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_4.5.0_1788020850422_0.3464909297275318","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"pi-quiver","version":"5.0.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.0.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"70026bb92ef2f80d68626e0d567c4709b6b12a85","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.0.0.tgz","fileCount":19,"integrity":"sha512-RuaGAMYyXFR8cbyAd+yeNaEoNasce/CHdvwuADq9SYZjw/b6kFwAOZ8Orej0e+dGzgQYPG4sV5cROJYRTfMl9g==","signatures":[{"sig":"MEYCIQD2MH+jsy03ESdEsJ/d+yyI+mDrsOj5+CXl4v69VfnbaAIhAMxLIInxVV8071OWzgGvWOJ+A6GSSd/n/IRdaIzo4Gad","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":271450},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"55d64f53bb4756f0e43df1498fffb99c85f5c7dc","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.0.0_1788043228546_0.7849753805221444","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"pi-quiver","version":"5.1.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.1.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"b2f1b5a02722a1f5610c88189155c170b5bda1d7","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.1.0.tgz","fileCount":19,"integrity":"sha512-iDq7Aj6UjB3PeO7E9PZwX5ucg9hsBS5VwQt0eZwBVJnfCoo9sRzQpw20ZoDfxu6iqdo44g++Ahxh8K8BT7Or1A==","signatures":[{"sig":"MEQCICoJu6dcc23ILZ0Y6vIrplqdtiSlmQP5lSCHgOrrqG/gAiBcuhKyAT3CCORg5P3/6OcyUaxve4sqneGF3ZHfpoU8FQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287601},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"afff69f9760fee36ad744a35c3eb7512907164cf","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.1.0_1788272056678_0.665962800519811","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"pi-quiver","version":"5.2.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.2.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"abb29c9a5f219cfe127a49412ce7eb1fade70fa0","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.2.0.tgz","fileCount":20,"integrity":"sha512-gYYj11dO49PDzO50IlwwUaJoqU7s3oQE/7iZrzXpInyhO2XysbqlkQKiNLJVzwWax7r8h7igjm8fCx08kJ4hmQ==","signatures":[{"sig":"MEQCIDuWFlfkGoc3IxSeUnl55+wu3FIHEWVvqqSSeZ2guHpOAiAwUzIjlBLEcasyJm0V9rdruZX7CENKkol6f2xq02bWmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296551},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"0bb76447b770964725413a516167eabd9d08c497","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.2.0_1788277554887_0.7768136658491382","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"pi-quiver","version":"5.2.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.2.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"c92c8d962179c46a6961ad2741bdc5350ba4b616","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.2.1.tgz","fileCount":20,"integrity":"sha512-kqeftWr0Fdl0CSJmCPp4xJTFTDGJvuB7UBdjB8qysnkqIkrZ/MfSHVTC5jpMu6JlQ4sbeZPR2jb8fqzFXnHiFA==","signatures":[{"sig":"MEUCIQDtiUMY1HvFUJFgFow86G1b931F9CYGJ/K7NVtBIjrXLAIgAqE1UsEI1bh0ObO1fZtHgcevuRczQcfHBbLmaHLCGlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296910},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"824abc25de70b9c58c2e1d7a5f82a6d7738c587b","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.2.1_1788376461410_0.28999489131121714","host":"s3://npm-registry-packages-npm-production"}},"5.2.2":{"name":"pi-quiver","version":"5.2.2","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.2.2","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"ca2e0e8c8cde706bcd66494a95cd5ec821bd9761","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.2.2.tgz","fileCount":20,"integrity":"sha512-+bQ7zU18s60ESxY4SkMvEYOeNl0fep9xgIB8/FTXAD0Q+/Y6BvRtLuAgpYq48VdMl+ioo/am7vBgyXDOOKlGyg==","signatures":[{"sig":"MEUCIQDE1Rz+QtSTLZZ42sCkwN1NoO3RaCbg5EKjsJwAxIIRgwIgRKFIeQPJSnwSj0Ers7N6C9RvCNuF3yE5C0zHt+UzWMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":300496},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"bc1a77b8b2e5977cf96e6d06306d30f85ef6e7de","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.2.2_1788417378602_0.11903937619833505","host":"s3://npm-registry-packages-npm-production"}},"5.2.3":{"name":"pi-quiver","version":"5.2.3","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.2.3","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"7e77f7b11e635fad0a32e4e87443ad8890896b07","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.2.3.tgz","fileCount":20,"integrity":"sha512-BcVu8bACLLjzUveXA1kcMF5lB9YfsS5Nwpf2p2HeYR2nHUK+hzs3lJgJp//Hlo75uh1mbYguaYeYUO3xVuthQw==","signatures":[{"sig":"MEYCIQCExF3vpbmex0IXN9h/VhdmPFmXjJN53vAmFRny9txtUgIhAKzKDBbq47+hK4iFZwkGkHYaVnYy8bqKaAZrAEjm+stB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":301919},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"b2b596e3346bb9fc7dec8efe0405cfdebfd411cf","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.2.3_1788531911114_0.48161325626863305","host":"s3://npm-registry-packages-npm-production"}},"5.2.4":{"name":"pi-quiver","version":"5.2.4","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.2.4","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"b73649a7451b5bebeaf3117d1deb24b2f4eb8675","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.2.4.tgz","fileCount":20,"integrity":"sha512-e7YnXX5up2g05EN0ENbSvkPbX+ACE6522BZpF5Rj5G2CqNmZlMQvrer9bVw4PvZf/i9JRD3XKnpaUDT4UzOWeA==","signatures":[{"sig":"MEYCIQDLJ/ABe5Mu9R4a9QKhXCkrc0Q1d046xaPNDEjmoOP3vgIhAJY6N9yURUxeRlUtFsOrGlDV3GVtrj0Yv6OHI4JB8EmJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302267},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"39157241cf3c8726d0b305b1bfe63c04fb77ea23","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts --bundle --packages=external --format=esm --platform=node --outfile=dist/bin/pi-quiver.js","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.6.0","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.2.4_1788863351434_0.08067444687237191","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"pi-quiver","version":"5.3.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.3.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"3319951f15f212d99ef74ead5df02524f67b9d60","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.3.0.tgz","fileCount":25,"integrity":"sha512-iZb6Lqqgx3QEMLH+PjnZ63n0WyoMzqPchaln6NDkfaPB/BNc5mUh+N4JayYWj0zybSzinRpjQ2sc3QPzwf829Q==","signatures":[{"sig":"MEYCIQCfan2eNeM3DdT6i75wJizH4zKUQUDD4DjONcdbTHbk/wIhAN90kNL2YlE7cpuBWDXrJa+ttrk1BpPs+h2kzkQwRfwY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376769},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"2e97e80b17181af617ed28fb70000d0774590a54","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.3.0_1788957697424_0.07573630397431907","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"pi-quiver","version":"5.4.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.4.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"eb52f654d26f7f9fdee86eff7df349f6206822ec","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.4.0.tgz","fileCount":25,"integrity":"sha512-3jtbWN/g5TN6dRx0RI/EaIGLqhHeoxOGvoB4/G+L3IW8G5Tw1Bm09anFg+kkrVOILCw6ZC9HdRJfxGxUWpnEDQ==","signatures":[{"sig":"MEQCIF1a+UlFFUSrZdrMlm7gft/KVnHfvfdJZdyrzb0t93EJAiBYNiY7D+DX6fIAAARX8KkIB5yxoSboOzahYEMeKqWHgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381038},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"7b9020efb009c74dbb647b21c8d2bf6b40a7f725","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.4.0_1789037085694_0.06381367184378917","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"pi-quiver","version":"5.5.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@5.5.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"77c572b347c5b07f79c697114811600d90b7cf54","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-5.5.0.tgz","fileCount":25,"integrity":"sha512-qPV9ozZAbAJO51Ginfnklud/5LXxTPFoNKtlilx822SO8qDl74PG6+AVSOULXIdWAmqwyRURDoWi2q3tcCTU4g==","signatures":[{"sig":"MEUCIQD5IqDIq62YoE9E+92VRBTfzMbjzj9c63Y34fKdXNmnxwIgKG6FNAuY2v1qa5Oh44ibiTwADS6BDLuS40aIabJW6cQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@5.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385168},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"9be14fa5b9ed6bef7298c2c78b9338442adf3381","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_5.5.0_1789059795328_0.24163188759469856","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"pi-quiver","version":"6.0.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.0.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"5f369ed4882e632bfde75a9db6351a7d79037c76","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.0.0.tgz","fileCount":25,"integrity":"sha512-PXyZw9yvxxsYDMWqoSc21Kg7JOz2fCrky3FMtZpxajgOD2wCh3KS6n9xHWTBBmXIWimyesWltasSsdr49XnJcg==","signatures":[{"sig":"MEYCIQDQTFoICF26RYWDmLmi/dGlMVnGabrOv9YLRjdsqUk0NAIhAP5ZULadAJbxRm8XDVjV4ysQYklx4/PBpXaoVGRRNOOp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFYQSFKaQJknEUNGBfTjzx687PHw58UwJW36XEqFx5qGAiAlen1iOklbC7sH8Fq1sSd7jraxdzDaAs0trcKh//gvfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":406286},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"2a93c7a2e182033381f88f26d145cae134380189","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.0.0_1789109160616_0.05547926507674528","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"pi-quiver","version":"6.0.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.0.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"d9319d43c191e5b5223c6b9b5aad81de2ddea8e2","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.0.1.tgz","fileCount":25,"integrity":"sha512-+ctPbgrIe4xrSRqV5ev5obx7WOKsjGEKnjPgYwofSIni+luHkl8R+yqGMCdZYdBMZL9heTQjC9Q49viiskqFtA==","signatures":[{"sig":"MEQCIFEkUvvkBHYPd6eIewLyeA0Wf/zveFjV44mtA+4+56YbAiBHDibyaKCpnjmUkL/ulQ+YZk/Cpn/2WsJ260qADEEOTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDWFdQP+vMm0KBgDP4jq9Av5/2BCDHoeUYPQSBTOtlk9wIhALW5Vwy0eNarCR561/OISbxqsljyGEdEbb5U5t5QfBkS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":408189},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"31749204a89469ef165db8a0d219bda093e88004","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.0.1_1789315537481_0.528699287139792","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"pi-quiver","version":"6.1.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.1.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"db51837ac2e0c6fb6a225861962fce82a613aecf","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.1.0.tgz","fileCount":25,"integrity":"sha512-aayKEycetIXosx2ktzH0ueHRrciJw7rYmYmG2aztN9eFvYFcNK3sbCFJTj6cYHq2u/W0aYkRnichhEgFsfMBlA==","signatures":[{"sig":"MEUCIQCWf7zQGmuduW/9PUFBxeOZBQHAX321PUopygvqqOFLHgIgF6KuGcrH3aKQAAYKn2xeFiIcaTGBcTDFoI0IlNI2/y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZWb2GR/BXH79rB85LO8ByN7egpYZbyHRPdHdXQ+is2AIhAKyuVC3q6aawoFIjnt0Jsi2qEGG6omHM3v1cmvZHl0FZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":410040},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"42149eee2a269b0106a223e120e6175332c51448","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.1.0_1789497376927_0.35547912892929157","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"pi-quiver","version":"6.2.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.2.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"92f49c6685404c7198323a89f2ad9c8613342c79","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.2.0.tgz","fileCount":25,"integrity":"sha512-EY18A07AivJ9payMysRW28+JubafH0EjQHtOcwEgatx0K9tRaAkaiOMcHBG1oYOOPK1TrOBvsfX7plRok8hjqA==","signatures":[{"sig":"MEUCICZS66Px8K4vEXVe8HSriQUvIP6DJ5drZqFNPl4axVfSAiEA9Xru5kT4qkKxkJ4pj4G+XvZUtbgFaBdgfXfpGFHZzgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDC6sFlTayGUxHtkBIhLqpWisMKXNz8KlixtCeR3FIbfAIhAMfdLllN32Y4bdb5cIteB5nrBuF/jZ6iTzQ4Ngseprcw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414861},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"ba4440a175664e6637b4d62b0abe8973e55fe21a","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.2.0_1789500132768_0.397595441418958","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"pi-quiver","version":"6.3.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.3.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"b41b01f745bfba915f0fc4c14a9e13552da11cfb","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.3.0.tgz","fileCount":25,"integrity":"sha512-Tp+1CzVRFPc7sMO39SRudYORz7BoyUyqSMTporFHLL8q3e6NYieqWbuy5FXbuXYyOOlBHkr08R9XaqCVw6lgag==","signatures":[{"sig":"MEYCIQCRDPXhoX2zDuc5i7RNRKUIp+WR+Il5rTX9BiHRWJakWAIhAKcpfXAgAEHL/vfzdl3jtCT84dJWPC40vyraIL4FD2/0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFRmnM8KtgM42aAeL1hOh9p7flSlman90Ra0TLsVzjkrAiEA10lvhH7897DVWDXkKXU/fFloCcMG56uWRhayumS4CMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416503},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"90b63f86e508925f2a217cd14aedaf7a374a13fe","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.0.2","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.3.0_1789565317808_0.4436208010190186","host":"s3://npm-registry-packages-npm-production"}},"6.3.1":{"name":"pi-quiver","version":"6.3.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.3.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"b98cc578c4bc7bdcf2ae4bf322d4f5561673c707","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.3.1.tgz","fileCount":25,"integrity":"sha512-mY3kw40cfmxXqi9axfg2vclESr9X1HENUcmFDDtc7XBglcPqUTYoHoFtLOeJrhKXchKoL0aB8yzcvrqqSKRO4A==","signatures":[{"sig":"MEUCIQDGZNNufMxNKvQNMEQ2cZPJZAPxOurq45OETQ7sEQtrpQIgAoFfO4z933VULkTrJC/NbPALL+TSGXgLHfxoJfw2aIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC+V4PIBFZtytFC2HZsXrAjHgUot4edEabjNLNwLQy7mwIgSTmzeSAOLitYbexJVx3hti6IMSWNxuBsIEQybAOpIrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":423651},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"49c34e4425a1027b28ea9f4f393d4ad972f73576","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.1.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.3.1_1790339470474_0.901460767999531","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"pi-quiver","version":"6.4.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.4.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"8dd073c37a36cc1b738868c6a3202058423b196f","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.4.0.tgz","fileCount":25,"integrity":"sha512-JfBlZjcPaT9V1Por9C75vmXSFeOvUATY9LEevGQEzAZCZ0Hs8CwA/aWEDHbBRU/kvLiRJfCOjQmh2zs1EYOZtA==","signatures":[{"sig":"MEUCIDZ3rmbytr7vOKB9wWTn453mGc0l/hxTeTMmhNqFJTb0AiEAtSsQL6BiKxPJi6R871dQSm5jBSarejV7pxk3F5FISMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICEViifQ0Zxe27vaJLQNtrak4lhUIO/peG7lIDAWRJ46AiBrk/TlIVlMLS0IzMS7zfUH9NlCpO6bwcXyAKhWOoGnSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":427618},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"cc1752c450521c0920f84ec7321c1b2abf5399a3","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.1.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.4.0_1790618030954_0.5411284625265274","host":"s3://npm-registry-packages-npm-production"}},"6.5.0":{"name":"pi-quiver","version":"6.5.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.5.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"dd34bbb1e86abb15397931b9e7fdba01f1ed57ab","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.5.0.tgz","fileCount":25,"integrity":"sha512-HHcyji84AhucBPF1MTeUhewd26BwkiTsuwg1A9d+ckTatlE5tMVXbRj46LHzOHArhXE0lkvG1nzaH0PBhEqyOA==","signatures":[{"sig":"MEUCID9ZB/DNWuG13pvDflk4/+S11i+kF+JhFSQ0Wj+7M2k6AiEAx1Sz6iEFNh7DkOsr1y2SEfKRhvpcI6Mul6LnobBZT/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDbdLhDpt/NDtMM8UZbSNsMLKlkB7/VV4QQz+1pmonIYgIgXn3WGlaBnMq5XaZ5L8kOUs/G9L9KfC/FQlKi/JDo4DA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":451245},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"cd825519c797205f7b7ec9bdf13298005d941b6d","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.1.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.5.0_1790668981219_0.4919858863811528","host":"s3://npm-registry-packages-npm-production"}},"6.6.0":{"name":"pi-quiver","version":"6.6.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.6.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"b8f83ccb3f11c69155fc7753b4671508b9ed4cc2","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.6.0.tgz","fileCount":25,"integrity":"sha512-y9KCikS9k6IH7R7yHF1pRUO0hg8fZaoySiwlFXtudunD/iGnBJDv/2rxjYhrklIT9fmsydThHj3klLuG8foDRQ==","signatures":[{"sig":"MEUCIDUvhi1fU0O3K9ULcBWY9L0Pw8/QDkvp97G5wTKQjVboAiEA3ma0pkK7RXWf9BKdCMweTQa2JyGIYFycOveGXhs29Yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDe2oGHuneSa8G3yp234mE+NrtUEW2+RwGxKlOAcLPXFAIhAP5khS1+nAtxuuV7BP7QGfACtfyHvdSbn3R0j3YfdwGE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":482960},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"a38f225d13973693aa4bcfe74779796e9d6deb83","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.1.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.6.0_1790688404321_0.6253792546647268","host":"s3://npm-registry-packages-npm-production"}},"6.7.0":{"name":"pi-quiver","version":"6.7.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.7.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"13b5497c8ab648958606668c5ec27d58c2c921db","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.7.0.tgz","fileCount":26,"integrity":"sha512-F0LIYaG50daEPy+lyIICnPJiEuaz3fdPp322Zr4TBNNMkQoJE+PmfEIRaT5vca12nK4rGrTN8j1J/fK+O/e31g==","signatures":[{"sig":"MEUCIQD1+cGrt+QbejMnk1VDga/A66ot/Zfm1+faqwEbulaQvQIgCNbBkOksSkAA/kLk0xoswQUuDX4terloZoUyZ5Z7KDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3KZGbO1N6EzFGEwH9JtfopIzYz+JnpUJjpuT3sWKzLQIhAOHUI3l2L3hjmDqgJzGxwI6F73QqjuvIGnOVBSFFeqke","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516746},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"66a98613680ad2d218158df7bd1c7ad28593f742","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.7.0_1790804024371_0.17251435467413345","host":"s3://npm-registry-packages-npm-production"}},"6.7.1":{"name":"pi-quiver","version":"6.7.1","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.7.1","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"61acd7357683d3093030656744624d696c6fc3e6","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.7.1.tgz","fileCount":26,"integrity":"sha512-q2qthaxvImulBL6ZBCblErE6QErUPBsq+gPsAWyqWsLXty9R0U2kL3gkhOsBTpb1+e3BZXI90R+qM317zx6mhg==","signatures":[{"sig":"MEYCIQCQgAnLHUxgxjMAa9gJlNBwBv6c51rzpS7zBXKuxkNtFgIhAP489NZHb6Yi+qo+IviZyBukYYecWelwLXGJAFW4+vNe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHUmsMs5XR01MBl2YHWWbTYVsYmOk/jcajru9qz8R/IGAiBWGK8LG9y4raXFrINIfqGG4FMyVOX94P1rUT9Ej+gooQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521952},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"12662af229f18ca5e05759333b13205be6854162","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.7.1_1790849976136_0.9233744357247904","host":"s3://npm-registry-packages-npm-production"}},"6.8.0":{"name":"pi-quiver","version":"6.8.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.8.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"9ee4897633469425676b3f7a2d4831eb2eb443e0","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.8.0.tgz","fileCount":26,"integrity":"sha512-18+2euC+JSODKR77KsNW12oL8Prjql/m3ApHLAxWhdGaQeTJaeVURvckDoKBL4oX0D2ltH9BzbnmC4QHYBtIkQ==","signatures":[{"sig":"MEQCIFuFGrNerPmQX6ZWGIQPyHj0GLyUquCN7D7FpdaluYwFAiAHx20/ldVMnd9KnkJP66ZjfI6GiutXQyWWDchFEl9Wfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDX48dyDf+p51WEBe7+VqFMHNmDxEjHoFaGoofpSWJXBAiAw2mLhYgDy06EQBAV/wUt8gPGEsSzYioxyuAHzmac4Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":525365},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"73a73659a06aa467f6c124938c1042d737fde452","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.8.0_1790850329068_0.020160530900565687","host":"s3://npm-registry-packages-npm-production"}},"6.9.0":{"name":"pi-quiver","version":"6.9.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.9.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"3afec5a6fda2e23caeeee286fd4c5cd96f4011b7","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.9.0.tgz","fileCount":26,"integrity":"sha512-ud9Rm0GX/X/qT5Z7myo2rIFpMuBbuQAGcGvH7CcoKxEefyU8qSh2COKnfXn0j58Gf82JHrI3eLYSOpO1Coo2bA==","signatures":[{"sig":"MEUCIQCYYGIbbDqAFxrVc/UuXJSoH/l0/0bkEaJro/30dINDmgIgFN7DuEcMPUlO739sXTpacszvMJ1ia7+3NyrX1LlJSvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDQdStPPV64DVOJUWtko54lPb0wWsCZdQeRC5V8GwUcEAiEApqDNsT41hDOJtRDnULj4XA+2HuvqIjOsOVWv56Hymwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":549259},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"64b439f65ebeb628ac319694e998e7a69ccafece","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.9.0_1790886508410_0.11949734129356915","host":"s3://npm-registry-packages-npm-production"}},"6.10.0":{"name":"pi-quiver","version":"6.10.0","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"author":{"name":"Jacek Juraszek"},"license":"MIT","_id":"pi-quiver@6.10.0","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"homepage":"https://github.com/jjuraszek/pi-quiver#readme","bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"dist":{"shasum":"8052e7c225c584294142d0bf8bd4463be0dbc386","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.10.0.tgz","fileCount":26,"integrity":"sha512-QGm6434Ys68RkBh0K9sppqVRNsimAEn/4PSI8m+kAhG3wzw6MXUgvfDu+Zp3vCIoDn4s3oFAg4yRGaGfD4Rldw==","signatures":[{"sig":"MEUCIQDybrS9c/JHdhGQb/y+ncNtmHJq1zhyippuZJY2++J12AIgCrTkg8br8Ov3GpuUfgWtWwOzMQPQs88ZSTD7a3UFUlA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCi4f6ko8jUF18XFwnLbi4KSmi1F9g+cVCHjNIpPPowIgIhAJXfCgjFkRsebmRoMgaBrilSGNwEEQYACnOEfEhfIJAv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":565537},"type":"module","engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"f8f7f8603a6582449856330723dd36631c15a57c","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-quiver_6.10.0_1790918788393_0.002302342407690894","host":"s3://npm-registry-packages-npm-production"}},"6.11.0":{"pi":{"image":"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png","extensions":["./extensions"]},"_id":"pi-quiver@6.11.0","bin":{"pi-quiver":"dist/bin/pi-quiver.js"},"bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"dist":{"shasum":"3a4b3c809b667efbb9068289683f01862ed8785d","tarball":"https://registry.npmjs.org/pi-quiver/-/pi-quiver-6.11.0.tgz","fileCount":26,"integrity":"sha512-HJ/xQnUy3M+Osy1kputM7lGuWE3jzwEM+VOkpY7gNmMy0ZVTYAqJ3Mt7j37J4baXibPO8U0Lr0CEKAO7rPYpiA==","signatures":[{"sig":"MEUCIQDwr99AuAbbTIJbEJyOoBKfE2M9aIb128eDvwfAwvObuwIgAU61OuzMWw6hVlCPgranc/BGc0PLltUisMwmGte9yEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQColefnTlnVbT+6A62yeUjfAIF35vgGLFjHw8pq8PTnuQIgeZrlGcGRN3/xO06fuv4iSe4ve3PmM5PmdWS4evNpHBE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-quiver@6.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":584542},"name":"pi-quiver","type":"module","author":{"name":"Jacek Juraszek"},"engines":{"node":">=20"},"funding":{"url":"https://buymeacoffee.com/jjurasszek","type":"buymeacoffee"},"gitHead":"5c323ab30e0ebe285fbf3f521bdaf53cd26a5eef","license":"MIT","scripts":{"test":"node --test \"test/*.test.ts\"","build":"esbuild bin/pi-quiver.ts lib/unpdf-worker.ts --bundle --packages=external --format=esm --platform=node --outdir=dist --outbase=.","prepack":"npm run build","test:all":"npm run check:agents-core && npm run test && npm run typecheck","typecheck":"npx -y tsc --noEmit","check:agents-core":"node scripts/check-agents-core.mjs"},"version":"6.11.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45645a76-3132-4a06-aa4a-0baaa61479c8"}},"homepage":"https://github.com/jjuraszek/pi-quiver#readme","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"_npmVersion":"12.2.0","description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","directories":{},"maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"jsdom":"^26.0.0","unpdf":"^1.8.1","turndown":"^7.2.0","turndown-plugin-gfm":"^1.0.2","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","typescript":"^6.0.3","@types/node":"^26.1.0","@types/jsdom":"^28.0.3","@types/turndown":"^5.0.6","@sinclair/typebox":"^0.34.49","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@sinclair/typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-quiver_6.11.0_1790925640014_0.6742053682801921"}}},"time":{"created":"2026-07-02T14:43:06.782Z","modified":"2026-10-02T07:20:40.393Z","3.0.0":"2026-07-02T14:43:07.070Z","3.0.1":"2026-07-04T18:56:33.841Z","3.1.0":"2026-07-04T21:04:12.796Z","3.1.1":"2026-07-05T12:52:44.131Z","3.1.2":"2026-07-07T20:36:50.216Z","3.2.0":"2026-07-12T19:18:18.993Z","3.3.0":"2026-07-19T15:39:16.764Z","3.3.1":"2026-07-19T17:55:01.093Z","3.3.2":"2026-07-29T22:04:42.925Z","3.4.0":"2026-07-30T05:42:15.147Z","3.4.1":"2026-08-04T11:53:05.944Z","4.0.0":"2026-08-04T21:33:50.537Z","4.0.1":"2026-08-07T07:45:46.115Z","4.1.0":"2026-08-14T08:09:24.278Z","4.1.1":"2026-08-17T11:57:26.308Z","4.2.0":"2026-08-20T09:34:40.633Z","4.3.0":"2026-08-25T09:17:05.966Z","4.4.0":"2026-08-26T17:49:24.122Z","4.5.0":"2026-08-29T16:27:30.586Z","5.0.0":"2026-08-29T22:40:28.691Z","5.1.0":"2026-09-01T14:14:16.891Z","5.2.0":"2026-09-01T15:45:55.041Z","5.2.1":"2026-09-02T19:14:21.875Z","5.2.2":"2026-09-03T06:36:18.742Z","5.2.3":"2026-09-04T14:25:11.257Z","5.2.4":"2026-09-08T10:29:11.570Z","5.3.0":"2026-09-09T12:41:37.585Z","5.4.0":"2026-09-10T10:44:45.805Z","5.5.0":"2026-09-10T17:03:15.475Z","6.0.0":"2026-09-11T06:46:00.715Z","6.0.1":"2026-09-13T16:05:37.588Z","6.1.0":"2026-09-15T18:36:17.015Z","6.2.0":"2026-09-15T19:22:12.869Z","6.3.0":"2026-09-16T13:28:37.880Z","6.3.1":"2026-09-25T12:31:10.595Z","6.4.0":"2026-09-28T17:53:51.114Z","6.5.0":"2026-09-29T08:03:01.308Z","6.6.0":"2026-09-29T13:26:44.403Z","6.7.0":"2026-09-30T21:33:44.700Z","6.7.1":"2026-10-01T10:19:36.263Z","6.8.0":"2026-10-01T10:25:29.177Z","6.9.0":"2026-10-01T20:28:28.527Z","6.10.0":"2026-10-02T05:26:28.474Z","6.11.0":"2026-10-02T07:20:40.105Z"},"bugs":{"url":"https://github.com/jjuraszek/pi-quiver/issues"},"author":{"name":"Jacek Juraszek"},"license":"MIT","homepage":"https://github.com/jjuraszek/pi-quiver#readme","keywords":["pi-package","pi","pi-coding-agent","fetch","markdown","pdf","docx","pptx","xlsx","xls","cli"],"repository":{"url":"git+https://github.com/jjuraszek/pi-quiver.git","type":"git"},"description":"Personal pack of Pi coding-agent extensions: context-safe fetch, doc_to_md PDF/DOCX/PPTX-to-Markdown conversion, session naming, a themed ASCII startup header, Opus 4.8 fast mode, and a provider-stall watchdog.","maintainers":[{"name":"jjuraszek","email":"jacek.juraszek@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/jjuraszek/pi-quiver/main/pi-quiver.png\" alt=\"pi-quiver\" width=\"180\">\n</p>\n\n# pi-quiver\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-donate-yellow?logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/jjurasszek)\n\nGround-truth ingestion for the [Pi coding agent](https://github.com/earendil-works/pi): pull real web pages, docs, and local files into context without flooding it.\n\n## The problem\n\nReasoning from a model's training memory instead of the real page, the current docs, or the actual PDF is how agents confidently ship wrong answers about APIs that changed last month. Mature engineering work has to be data-driven - the agent needs to read the real source.\n\nBut the moment an agent does that, one `fetch` or PDF read can dump hundreds of kilobytes of boilerplate into context, degrading every turn after it.\n\n## Why pi-quiver exists\n\n`fetch` brings real web pages and GitHub issues/PRs into context and is size-gated by construction: over 32 KB or 1000 lines spills to a temp file with a preview and a grep/read hint. `doc_to_md` converts local PDF/DOCX/DOC/PPTX/XLSX/XLSM/XLS, MSG/EML, HTML, and image files into a Markdown bundle on disk and returns only a concise handle; OCR is opt-in and uses optional Tesseract language data. Ingestion is what makes data-driven work possible; bounded tool results keep it safe.\n\n`session-name`, `sword-header`, `fast-mode`, `provider-stall-watchdog`, and `slack` are opt-in ergonomics, recovery, and integration controls: session labeling, a themed startup header, Anthropic fast mode, semantic-stall recovery, and context-safe Slack search/threads/posting with repo-policy injection, `@name` mention resolution, cached emails, and per-call unfurl control.\n\n## Part of the pi agent toolkit\n\nFour independent extensions for the [pi coding agent](https://github.com/earendil-works/pi), each owning one concern of running agents seriously:\n\n- **pi-quiver** - capabilities (fetch, doc conversion, session tools)\n- [pi-cohort](https://github.com/jjuraszek/pi-cohort) - coordination (delegate to focused child agents)\n- [pi-condense](https://github.com/jjuraszek/pi-condense) - context economy (prune context, keep it recoverable)\n- [pi-gauntlet](https://github.com/jjuraszek/pi-gauntlet) - process (the gated brainstorm->ship workflow)\n\nNo code dependency between them. pi-quiver is call-level: `fetch` gates the size of what comes *in*, while `doc_to_md` writes a bundle and returns its handle. [pi-condense](https://github.com/jjuraszek/pi-condense) is loop-level: it prunes what's already *in context* once a tool call is done. Different problem, same discipline.\n\n## Mental model\n\nEvery ingestion extension here is context-safe by construction, not by convention: `fetch` size-gates every call, while `doc_to_md` always writes a bundle and returns a handle instead of inline Markdown. `fetch` and `doc_to_md` bring real sources in; `session-name`, `sword-header`, `fast-mode`, `provider-stall-watchdog`, and `slack` are opt-in.\n\n```mermaid\nflowchart LR\n    S[web page] --> T[fetch]\n    T --> E[extract main content]\n    E --> G{\"over 32KB or 1000 lines?\"}\n    G -->|no| I[return inline to context]\n    G -->|yes| F[spill to temp file<br/>return preview + grep/read hint]\n    D[local PDF / Office / Excel] --> B[doc_to_md]\n    B --> H[Markdown bundle on disk<br/>return handle]\n```\n\n## Quick example\n\n```bash\npi install npm:pi-quiver\n```\n\n```\n> fetch https://example.com/some-huge-changelog\nSaved-To: /tmp/pi-fetch/2026-...-example.com-....md\n60-line preview follows. grep '^#' the file for headings, or read a slice.\n```\n\nA 300 KB changelog page never touches your context window - you get a preview and a path.\n\n## Architecture\n\n| Extension | Tool | What it does |\n| --- | --- | --- |\n| `extensions/fetch.ts` | `fetch` | Retrieve URLs over HTTP(S). HTML -> Markdown (Readability extraction, Turndown conversion). Binary saved untouched to a temp file. GitHub issue/PR/repo/actions-run/actions-job URLs auto-route through `gh` (falls back to HTTP); failed runs/jobs include failed-step logs (best-effort, summary-only otherwise). Same size gate as `fetch`. Behavior lives in `lib/fetch-core.ts`; also exposed as the `pi-quiver fetch` CLI (see [Claude Code support](#claude-code-support)). |\n| `extensions/doc_to_md.ts` | `doc_to_md` | Convert a local PDF/DOCX/DOC/PPTX/XLSX/XLSM/XLS, MSG/EML, HTML, or image file to a Markdown bundle on disk (`<stem>.md` + `images/`, spreadsheet `sheets/`, optional `pageImages` in `pages/`, and email `attachments/`) and return a handle (paths, page count, outline, diagnostics) - never inline Markdown. `info` inspects PDF/Office inputs; `pages` selects 1-based PDF/Office pages (DOCX: explicit-page-break segments); HTML, image, and email inputs reject both; every selected PDF/PPTX page or DOCX segment when `pageCount > 1` ends with `--- end of page.page_number=N ---`. Tiers: pymupdf4llm -> PyMuPDF text (degraded) -> unpdf worker (no Python only). Excel -> sheet inventory, full CSVs, bounded previews, and optional rendered views. HTML keeps local and `data:` images in the bundle and remote images as links; image inputs keep the original image. Scanned PDF pages keep a page picture on both Python tiers; eligible single full-page images are delivered as their embedded stream, without re-encoding or render DPI; opt-in OCR needs Tesseract language data. DOCX converts directly (mammoth, python-docx fallback); LibreOffice pagination marks the degraded route. The Outline lists `L<line>` and `p<page>` per heading. Settings under `quiver.docToMd`. Every conversion that goes through the Python PDF tiers (PDF, PPTX, `.doc`, DOCX via LibreOffice) writes `<stem>.pages.json` (per-page chars, image count, image coverage; handle line `Page-Stats:`); unpdf writes no stats. `ocrMode: \"all\"` with `ocr: true` and an explicit `pages` forces OCR on those pages into `ocr/<stem>-pNNN.md` sidecars, leaving the Markdown byte-identical to the same selected-page call without OCR. `words: true` (CLI `--words`, per-call only - no settings key) writes `<stem>.words.json` with every word's bbox per selected PDF/image page (`source` `text` or `ocr`), plus `ocr/<stem>-pNNN.words.json` beside each forced-OCR sidecar; it never triggers OCR. |\n| `extensions/session-name.ts` | `/session-name` | Manual + opt-in automatic session naming, naming rules and deny list, long-session revisits, and Ghostty/Herdr tab rename. OFF by default. |\n| `extensions/sword-header.ts` | `/builtin-header` | Themed ASCII startup header replacing pi's default logo. OFF by default. |\n| `extensions/fast-mode.ts` | `/fast` | Inject Anthropic fast-mode (`speed: \"fast\"` + `anthropic-beta: fast-mode-2026-02-01`) into every Claude Opus 4.8 / Opus 5 request, any thinking level. `--fast` flag + `/fast [on\\|off\\|status]`. OFF by default. |\n| `extensions/provider-stall-watchdog.ts` | - | Opt-in provider-stall recovery, in two tiers: a pre-first-event deadline (`firstEventMs`, 20s) on every provider request in every mode, and the mid-stream pair (warn at 2 min, recover at 4 min) in TUI runs only. Each stall is aborted; while pi's `retry.enabled` is true and the stall retry budget (`maxStallRetries`, default = `retry.maxRetries`) remains, its aborted attempt is hidden from the model and re-driven by the watchdog after pi's backoff; behavior guide: [doc/provider-stall-watchdog.md](doc/provider-stall-watchdog.md). OFF by default. |\n| `extensions/slack.ts` | `slack_search`, `slack_thread`, `slack_post`, `slack_update`, `slack_delete`, `slack_pin`, `slack_upload`, `slack_cache_refresh` | Context-safe Slack search/threads/posting with dual `user`/`bot` token identities, Block Kit flattening and optional raw JSON output for threads, a workspace-keyed channel/user name->ID cache, DM targets by `@name` / user ID, fetch-style output size gating, and a transactional headline+detail-thread announce protocol with a documented recovery path. OFF by default. Behavior lives in `lib/slack-core.ts` and `lib/slack-cache.ts`. |\n\nFull routing rules, size-gate mechanics, and config: [doc/fetch.md](doc/fetch.md), [doc/doc-to-md.md](doc/doc-to-md.md), [doc/slack.md](doc/slack.md).\n\n## Key concepts\n\n| Concept | Meaning |\n| --- | --- |\n| Size gate | Text/Markdown/JSON output over 32 KB or 1000 lines spills to a temp file with a 60-line preview instead of inlining. |\n| Content routing | HTML -> Markdown, binary -> untouched file, GitHub URLs -> `gh` CLI (failed runs/jobs get failed-step logs appended), everything else -> the size gate. |\n| Graceful degradation | Optional binaries (`gh`, `uv`, LibreOffice) are never hard install-time deps; each has a defined, documented fallback or failure mode. |\n| Opt-in extensions | `session-name`, `sword-header`, `fast-mode`, `provider-stall-watchdog`, and `slack` do nothing until explicitly enabled in `settings.json`. |\n| Provider stall recovery | The watchdog detects a missing first stream event and missing parsed semantic progress, not network liveness. The pre-first-event tier covers every mode and origin; the mid-stream tier is TUI-only. |\n\n## When to use\n\n- An agent needs to reason from a real web page, GitHub issue/PR, or local PDF/DOCX/PPTX instead of memory.\n- You want that ingestion to be safe by default, with no risk of a single call blowing the context budget.\n- A Pi run needs an opt-in guard against provider requests that never produce a first stream event, plus mid-stream silence recovery in interactive TUI sessions.\n\n## When NOT to use\n\n- You need a general-purpose web scraper (JS-rendered pages, pagination, auth flows) - `fetch` does plain HTTP + Readability extraction, nothing more.\n- You need in-grid chart/image placement, `.xls` visual detection or range selection - out of scope; chart/image association is per sheet only.\n- You want automatic session naming, a custom header, fast mode, or stall recovery without opting in - all stay off until you flip the config.\n- You need *mid-stream* stall recovery in JSON, RPC, or print runs - only the pre-first-event tier arms there; mid-stream silence falls through to pi's transport timeout.\n\n## Install\n\nPublished to npm as the unscoped `pi-quiver` package.\n\n**User scope** (all repos under your pi profile):\n\n```bash\npi install npm:pi-quiver\n```\n\n**Project scope** (current repo only, committable via `.pi/settings.json`):\n\n```bash\npi install -l npm:pi-quiver\n```\n\n**Try without installing**:\n\n```bash\npi -e npm:pi-quiver\n```\n\n**From a local checkout** (for hacking on the extensions):\n\n```bash\ngit clone git@github.com:jjuraszek/pi-quiver.git ~/repos/pi-quiver\npi -e ~/repos/pi-quiver/extensions/fetch.ts\n```\n\n## Prerequisites\n\nThe npm package's bundled JS deps install automatically on `pi install`. A few **runtime system binaries** are optional; each degrades gracefully when absent:\n\n| Prerequisite | Needed by | If absent |\n| --- | --- | --- |\n| `gh` (GitHub CLI, installed + `gh auth login`) | `fetch` GitHub issue/PR/repo/actions-run/actions-job routing | Falls back to an HTTP fetch of the rendered page (private repos hit a login wall). |\n| `uv` (+ managed Python 3.14, fetched on first use) | `doc_to_md` high-fidelity PDF and Excel conversion and DOCX (preferred route), with `pymupdf4llm`, `openpyxl`, `xlrd`, `pillow`, `mammoth`, `markdownify`, `python-docx`, and `extract-msg` | Falls back to a system Python >= 3.12 or one-time managed venv; PDF degrades to `unpdf` only when no capable Python exists. Excel requires the Python backend (no JS fallback). |\n| Tesseract language data (`tesseract` on `PATH` or `TESSDATA_PREFIX`) | `doc_to_md` OCR with `ocr: true` for scanned pages and images | OCR is skipped and the handle reports `OCR: unavailable` (or an install hint when OCR is off); pages keep their picture. |\n| LibreOffice (`soffice` on `PATH`) | `doc_to_md` PPTX conversion, the DOCX fallback route, and Excel rendered views | PPTX errors with a remedy; DOCX converts directly via the Python backend (LibreOffice fills in when that backend lacks the DOCX packages or its DOCX child exits 1); Excel omits rendered views. |\n\nNone is a hard install-time dependency of the package; they are tools you provide in the environment where pi runs.\n\n### Opt-in extension config\n\nThese extensions are opt-in via `settings.json` (project `.pi/settings.json` overrides the global agent-dir layer), nested under an optional `\"quiver\"` root:\n\n```jsonc\n{\n  \"quiver\": {\n    \"sessionAutoName\": {\n      \"enabled\": false,\n      \"ghosttyTab\": true,\n      \"herdrTab\": true,\n      \"rules\": [],\n      \"deny\": [],\n      \"revisitFirstTurn\": 0,\n      \"revisitEveryTurns\": 0\n    }, // or boolean shorthand\n    \"swordHeader\": false, // or { \"enabled\": true }\n    \"fastMode\": false,                                         // or { \"enabled\": true }\n    \"providerStallWatchdog\": false,                            // or { \"enabled\": true }\n    \"slack\": false                                             // or { \"enabled\": true, ... }\n  }\n}\n```\n\nEach key resolves independently: within a layer, `quiver.<key>` wins over a\nflat top-level `<key>` by presence alone (even when the winning value is\nmalformed); across layers, each layer's candidate is validated into a partial\npatch and `Object.assign`ed over the accumulator in layer order (project\nlast), so project fields override matching global fields while unmatched\nglobal fields survive - a flat-vs-nested shape difference between layers\nnever changes this. The flat top-level form still works, but only for four\nlegacy keys, frozen at `fastMode`, `sessionAutoName`, `swordHeader`, and\n`providerStallWatchdog` - never extended to new settings (see [Migrating from\nflat keys](#migrating-from-flat-keys)).\n\npi-quiver lints the whole `quiver` object in both files each time a setting is\nresolved and emits **one** condensed warning (TUI: a `Warning:` block in the\nchat; headless: stderr) listing every flat legacy key in use, every unknown\n`quiver.<block>`, and every unknown field inside a known block, with the\naccepted names inline. Unknown keys fall back to their defaults. Each distinct\nmessage fires once per pi process; a clean file emits nothing. A wrong value\ntype (`\"fastMode\": \"yes\"`) is a separate per-key `unrecognized value` warning.\nThe accepted names live in `QUIVER_CONFIG_KEYS` in `lib/extension-config.ts` -\na new setting is registered there or it warns as unknown.\n\n```text\nWarning: pi-quiver settings (/Users/x/.pi/agent/settings.json): unknown or misplaced keys - unknown ones fall back to defaults\n  \"providerStallWatchdog\" at top level - move under \"quiver\"\n  \"quiver.providerStallWatchdog.timeoutMs\" - unknown; accepted: enabled, firstEventMs, warningMs, recoveryMs, maxStallRetries, models\n```\n\nWorked mixed-shape example: global `settings.json` has flat\n`\"fastMode\": false`, project `.pi/settings.json` has\n`\"quiver\": { \"fastMode\": { \"enabled\": true } }`. The project layer's\npatch (`{ \"enabled\": true }`) is `Object.assign`ed over the accumulator\nseeded from global's patch, so the resolved config is `{ \"enabled\": true }` -\nsame outcome here because `enabled` is the only field either layer sets, but\nthe merge is per-field: a global field with no project counterpart would\nsurvive untouched.\n\n`sessionAutoName.enabled` starts one background initial naming attempt for an unnamed session after three completed model/tool rounds in the current agent run, not three user messages. A round is one completed assistant turn and its tool results, regardless of how many tools run. If the run ends sooner, it starts the same background attempt at run end. Initial naming is best-effort: preparation and generation have a 30-second local deadline, and the agent, editor return, and shutdown do not wait for naming. The session can remain unnamed if generation fails, times out, or the process exits first; there is no automatic retry during that session activation, though reopening an unnamed session allows another attempt on its next run. An existing name suppresses initial naming, and a human rename while generation is pending takes precedence. `false` (default) makes no automatic naming model calls. `rules` appends house conventions to the naming prompt (later rules win when they conflict with the built-ins). Literal, case-insensitive `deny` phrases are stripped from every name; whitespace inside a phrase is loose, so `\"acme corp\"` also catches `AcmeCorp`. `revisitFirstTurn` re-evaluates the name once that many model round trips have completed, while `revisitEveryTurns` does so at every multiple; both default to `0` (off) because each revisit costs another short LLM call. For example, `10` and `100` mark round trips 10, 100, 200, 300. Revisits only run when the agent has fully settled (idle, nothing queued) - an automated multi-turn run such as a subagent chain is never renamed or delayed mid-flight by a revisit; cadence points it crossed fire once, at the settle. A machine-generated name is replaced when stale. A name set by a human is never overwritten: the extension strongly prefers it, and announces a suggestion only when the work has clearly moved on. Revisit counts come from the persisted transcript, so they survive resume.\n\n`herdrTab` (default `true`) mirrors the same curated label to the Herdr tab bar over Herdr's unix socket, independent of `ghosttyTab` - either sink can be toggled off without affecting the other. A tab is claimable while its label is a bare number (`1`, `4`, ...) at any position - Herdr's vocabulary for \"unnamed\" - so reordering tabs before or after naming never matters; a tab you deliberately name `3` is taken over too. A non-numeric label is treated as a human's and is never overwritten; the check repeats every turn, so renumbering the tab by hand hands it back. Exactly one leading `* ` (herdr-ntfy-notify's armed marker) is not a human rename - it is preserved across renames and the shutdown restore, and removing it keeps the claim. Every session claims afresh: on each shutdown (quit, reload, `/new`, resume, fork) a claimed tab is restored to its then-current position number, and the successor session in the pane claims it again on its first name. The label the extension writes is never digits-only - a bare `1234` becomes `#1234`, and the naming prompt asks the model for `PR 1234` / `issue 123` / `ticket ABC-123` instead of a bare ID. It only ever runs in TUI mode, on an attached TTY, under Herdr (`HERDR_ENV`/`HERDR_TAB_ID`/`HERDR_SOCKET_PATH` all set) - `pi -p`/json/rpc runs and background subagents never touch the tab. Caveat: the restored number is internally a custom name (Herdr has no clear-to-auto API), so that tab keeps a number-looking label but stops renumbering on later tab closes/reorders.\n\n`swordHeader` swaps the header at `session_start`, which runs after pi has already drawn its built-in pixel logo, so the logo shows for a moment before the sword replaces it. To skip that flash set pi's own `\"quietStartup\": true` in `~/.pi/agent/settings.json`: pi then draws an empty header slot at startup and the sword fills it. Quiet startup also drops pi's key-hint lines, which the sword header does not reproduce.\n\n`fastMode` only affects `claude-opus-4-8` and `claude-opus-5` requests on Anthropic's `anthropic-messages` API; enabling it opts into premium fast-mode pricing. `--fast` forces it on for one launch; `/fast on|off` toggles live. Proxy providers (opencode, cloudflare-ai-gateway) are excluded. `fastMode`'s header injection needs the `before_provider_headers` hook (pi bundling `@earendil-works/pi-coding-agent` >= 0.80.5); on older pi the beta header is silently not sent. The `anthropic-beta` header is discovered at request time by probing pi's own request assembly (no network), so conditional betas pi adds - e.g. `server-side-fallback-2026-07-01` for models with server-side fallback - are preserved alongside `fast-mode-2026-02-01`. If the probe fails, the header falls back to the static OAuth-identity + fast-mode list. See [doc/fetch.md](doc/fetch.md) and [doc/doc-to-md.md](doc/doc-to-md.md) for the ingestion tools' full reference; session-name/sword-header behavior above is complete.\n\n`pi-ai` prices every fast request at standard rates - it has no `usage.speed` support and no request-level pricing modifier - so `fastMode` corrects the reported cost itself: a `message_end` handler scales all four `usage.cost` components by `FAST_MODE_COST_MULTIPLIER` (2x) and returns the corrected message. Persisted session JSONL and pi's own native cost display are always exact, since they're written from this corrected message. pi-cohort's live `Σ$` reflects the correction only when pi-quiver's `message_end` handler runs before pi-cohort's - best-effort, depending on extension load order - and is reconciled on pi-cohort's next `session_start` regardless. The upstream fix (teaching `pi-ai`'s `Usage`/`calculateCost` about `usage.speed`) is the better long-term path and is tracked separately.\n\nRecommended explicit retry and watchdog settings - `providerStallWatchdog`\nnests under `quiver`, while pi-core's own `retry` stays flat beside it (it is\nnot a pi-quiver setting and is never nested):\n\n```json\n{\n  \"quiver\": {\n    \"providerStallWatchdog\": {\n      \"enabled\": true,\n      \"firstEventMs\": 20000,\n      \"warningMs\": 120000,\n      \"recoveryMs\": 240000,\n      \"maxStallRetries\": 3,\n      \"models\": {\n        \"lmstudio/*\": { \"firstEventMs\": 600000, \"recoveryMs\": 600000 }\n      }\n    }\n  },\n  \"retry\": {\n    \"enabled\": true,\n    \"maxRetries\": 3,\n    \"baseDelayMs\": 2000\n  }\n}\n```\n\n| Key | Default | Where it arms | What it measures |\n| --- | --- | --- | --- |\n| `enabled` | `false` | - | Master switch. OFF means the extension does nothing. |\n| `firstEventMs` | `20000` | every provider request, every mode (`tui`/`print`/`json`/`rpc`), every origin | Silence between the request and the first assistant `message_start`. |\n| `warningMs` | `120000` | mid-stream, `ctx.mode === \"tui\"` only | Silence since the last non-empty text/thinking/toolcall delta; notifies. |\n| `recoveryMs` | `240000` | mid-stream, `ctx.mode === \"tui\"` only | Same clock; aborts and converts. Must be `> warningMs`. |\n| `maxStallRetries` | layered `retry.maxRetries`, else `3` | shared by both tiers | Watchdog aborts that may convert to a retryable error before stopping. |\n| `models` | `{}` | per-model overrides of the three thresholds | Glob keys match `provider/model` (case-insensitive, `*` matches any run of characters, first match wins); each entry may override `firstEventMs`, `warningMs`, and/or `recoveryMs`. |\n\n`providerStallWatchdog` is OFF by default. Once enabled it arms in two tiers per provider request:\n\n- **Pre-first-event (`firstEventMs`).** Armed at every provider request, in every mode and from every origin - including extension-triggered turns that never emit `before_agent_start` - and cleared by the first assistant `message_start`. On expiry the request is aborted and, budget permitting, converted to a retryable error and re-driven after pi's backoff when `retry.enabled` is true, so an unresponsive request recovers in ~22s (20s detection + 2s backoff) instead of the ~240s it took when only the mid-stream tier existed.\n- **Mid-stream (`warningMs` / `recoveryMs`).** Armed from the first assistant `message_start` onward, and only when `ctx.mode === \"tui\"`. Aborting mid-generation discards billed output tokens and an unattended run has nobody to read the warning, so headless mid-stream silence deliberately falls through to the transport timeout instead.\n\n`models` retunes the three thresholds per model. A request's effective thresholds are the base knobs overlaid with the first entry whose glob matches its `provider/model` label - `\"lmstudio/*\"` covers a whole local server, `\"openai/gpt-5.4\"` one remote model. An override that would leave the merged `warningMs >= recoveryMs` is invalid and fails closed at startup like any other invalid watchdog config.\n\n**Raise `firstEventMs` if your provider is legitimately slow to first event** - per model via `models` when only one provider is slow. Queueing gateways, throttled endpoints, and busy single-slot local model servers can hold the connection for well over 20s before their first stream event; every false abort re-uploads the whole context and spends one stall retry.\n\n**Leave pi's own `httpIdleTimeoutMs` (default `300000`) at its default.** It is the transport backstop, and a single value drives undici's `headersTimeout` *and* `bodyTimeout` - lowering it to get fast pre-stream failure also truncates legitimate mid-stream gaps. `firstEventMs` is the knob for pre-stream silence.\n\nVerified with Pi 0.87.1: each eligible stall is aborted, its message omitted from the model's context, and the request re-driven by the watchdog after pi's backoff (`retry.baseDelayMs`, capped at `retry.maxAgentDelayMs`) until `maxStallRetries` conversions are used; further stalls stop for manual resubmission. Both tiers draw on that one budget. `maxStallRetries` defaults to the layered `retry.maxRetries` (Pi default 3, an explicit `0` honoured); `0` is valid and means \"detect and stop, never auto-retry\". A successful assistant turn resets the stall counter (mirroring Pi's own retry counter). pi's `retry.enabled: false` disables the re-drive and degrades to manual resubmission without omitting the aborted message. Pending steering or follow-ups return to the editor and are excluded from automatic continuation. Invalid merged watchdog config fails closed. Print/json await pi's backoff before re-driving; TUI/RPC show a timer-path countdown that a new prompt cancels. Why the watchdog re-drives instead of pi, the hidden re-drive message, and the wait behavior: [doc/provider-stall-watchdog.md](doc/provider-stall-watchdog.md).\n\nOperational notes:\n\n- **Settings are read once per session,** on the first provider request. Editing watchdog settings in `settings.json` mid-session changes nothing until you restart the session - that includes repairing an invalid block that already disabled the extension. The exception is pi's `retry.enabled`, `retry.baseDelayMs`, and `retry.maxAgentDelayMs`, which the re-drive reads live at each stall.\n- **A watchdog abort that the provider ignores escalates after a fixed 10s.** Any post-abort stream event re-arms that deadline (bytes prove only that the connection was alive at that instant), so a stream that emits a straggler and then wedges still escalates 10s after its last event. This reduces the hang; it cannot force the provider to stop, and undici's timeouts remain the final backstop.\n- **Headless runs report on stderr.** In `print`/`json` mode pi binds a no-op UI, so watchdog notices go out via `console.warn`. Nothing is ever written to stdout, which `json` mode uses for its protocol. In TUI and RPC the notices render as main-window notifications, not the bottom status line.\n\n`slack` is OFF by default and, once enabled, adds eight `slack_*` tools (search, thread, post, update, delete, pin, upload, cache refresh) covering context-safe Slack search/threads/posting under dual `user`/`bot` token identities. Nested-only from day one (no legacy flat form):\n\n```json\n{\n  \"quiver\": {\n    \"slack\": {\n      \"enabled\": true,\n      \"cachePath\": \".pi/slack-cache.json\",\n      \"userTokenEnv\": \"SLACK_USER_TOKEN\",\n      \"botTokenEnv\": \"SLACK_BOT_TOKEN\",\n      \"uploadThresholdChars\": 4000\n    }\n  }\n}\n```\n\n| Key | Default | Meaning |\n| --- | --- | --- |\n| `enabled` | `false` | Master switch, checked at `session_start`; toggling takes effect next session. |\n| `cachePath` | user-scope per-OS cache dir | Overrides where the workspace-keyed channel/user name->ID cache file is written; relative paths resolve against the repo root. |\n| `userTokenEnv` | `SLACK_USER_TOKEN` | Env var name holding the user token when `userTokenCommand` is unset (required for `slack_search`/`slack_thread`, no bot fallback). |\n| `userTokenCommand` | unset | Executable argv array that prints the current user token to stdout; resolved on every user-identity tool call. |\n| `userTokenCommandTimeoutSeconds` | `10` | Positive finite timeout in seconds for `userTokenCommand`. Increase this when an interactive credential helper may need authorization. |\n| `botTokenEnv` | `SLACK_BOT_TOKEN` | Env var name holding the bot token. |\n| `uploadThresholdChars` | `4000` | Link-collapsed length above which an announce/thread detail body is delivered as a file upload instead of inline text. |\n\nEach setting can also be overridden per-process via `PI_QUIVER_SLACK_ENABLED`, `PI_QUIVER_SLACK_CACHE_PATH`, `PI_QUIVER_SLACK_USER_TOKEN_ENV`, `PI_QUIVER_SLACK_BOT_TOKEN_ENV`, and `PI_QUIVER_SLACK_UPLOAD_THRESHOLD_CHARS` - applied on top of the resolved `settings.json` layers, same override rung the extension's config resolver defines. `userTokenCommand` and `userTokenCommandTimeoutSeconds` are settings-only: pi executes the argv directly, without a shell, on every user-identity Slack tool call. For example, macOS Keychain can supply the token with `\"userTokenCommand\": [\"security\", \"find-generic-password\", \"-s\", \"slack-user-token\", \"-w\"]`. Its stdout is the token; empty output, nonzero exit, or timeout is a sanitized hard error and never falls back to `userTokenEnv`. Without the command, tokens resolve per call from process env, then the repo `.env`, then the primary checkout's `.env` (linked worktrees), then a per-user `~/.config/pi-quiver/.env` (`$XDG_CONFIG_HOME` / `%APPDATA%` aware); a file lacking the key falls through to the next rung - see [doc/slack.md](doc/slack.md). Bot resolution is unchanged. Restart pi after changing Slack settings because the extension captures them at session start. `slack_thread` flattens Block Kit blocks by default and accepts `raw: true` for JSON output suitable for `slack_update` round-trips. Full reference incl. cache layering, the announce protocol, thread output modes, and the `search.messages`/`conversations.replies` throttle caveats: [doc/slack.md](doc/slack.md).\n\n### doc_to_md settings\n\n`doc_to_md` is always registered. Configure tunables in `quiver.docToMd`; per-call > `quiver.docToMd` > `PI_DOC_TO_MD_*` env (deprecated) > default. The result is a handle; `read` the `Saved-To` file (offset/limit) for the Markdown, images live under `Images-Dir`.\n\n| Key | Default | Meaning |\n|---|---|---|\n| `primaryTimeoutMs` | `60000` | pymupdf4llm tier, DOCX child (`docx` mode), and unpdf tier deadline. |\n| `fallbackTimeoutMs` | `30000` | PyMuPDF text tier (including the DOCX LibreOffice fallback), PDF and DOCX info, and Excel rendered-view rasterization deadline. |\n| `sofficeTimeoutMs` | `120000` | PPTX -> PDF, the DOCX LibreOffice fallback, and the Excel rendered-view export deadline. |\n| `excelTimeoutMs` | `60000` | Excel child and Excel info deadline. |\n| `warmTimeoutMs` | `120000` | Absolute first-call backend discovery/bootstrap deadline. |\n| `pymupdfVersion` | `1.27.2.3` | pymupdf4llm pin, minimum `1.27.0`. |\n| `imageDpi` | `150` | Render DPI for page images and Excel rendered views (capped by a 50 Mpx budget). |\n| `imageFormat` | `png` | Rendered image format: `png` or `jpg`; embedded images retain their extension. |\n| `hideAnnotations` | `false` | Hide annotations on PDF textless-page and `pages/` renders, including form-field widgets (filled values disappear). Default paints them. Does not affect OCR text or embedded images; also lets an annotated scan be delivered as its embedded image. |\n| `maxOutputBytes` | `20000000` | Child stdout cap in bytes. |\n| `outlineMaxEntries` | `40` | Heading outline, TOC, or sheet inventory entries in the handle. |\n| `ocr` | `false` | Opt-in OCR for scanned pages and images when Tesseract language data is installed. |\n| `ocrLanguage` | `eng` | Plain `+`-joined Tesseract language codes for OCR. |\n\n`ocrMode` (`textless` | `all`) is a per-call parameter and `--ocr-mode` flag only; a `quiver.docToMd.ocrMode` key is reported as unknown and ignored, so persisted settings cannot enable forced OCR or bypass its explicit-pages guard.\n\nA bundle is `<outputDir>/<stem>.md` plus `<outputDir>/<stem>.pages.json` on Python PDF tiers, optional OCR sidecars under `<outputDir>/ocr/`, and `<outputDir>/images/` and, for spreadsheets with data, `<outputDir>/sheets/`; without `outputDir`, the tool creates a per-call temp root. A conversion owns `<stem>.md.lock` until it atomically publishes the Markdown. An existing `<stem>.md` fails the call unless `overwrite` is set; `overwrite` replaces that Markdown and the files it owns (`images/<stem>-p<N>-<n>.*`, `images/<stem>-s<idx>[-<n>].*`, `sheets/<stem>-s<idx>-<slug>.csv`, `<stem>.pages.json`, `ocr/<stem>-pNNN.md`), nothing else. Temp bundles are caller-owned - the tool never deletes a bundle it produced.\n\nExcel needs a Python backend with openpyxl, xlrd and pillow - otherwise the call fails with `Remedy: install uv, or pip install openpyxl xlrd pillow`. The Markdown opens with a `## Sheets` table listing every sheet in workbook order (0-based `#`, `worksheet`/`chartsheet`, size, hidden, chart and image counts, rendered view, CSV link for non-empty worksheets), then one section per sheet: a `Data:` line linking the full-content CSV under `sheets/` for non-empty worksheets, chart metadata from the workbook model, embedded images, an optional rendered view, a preview of at most the first 100 rows x 50 columns, and - only when the preview is truncated - a `Columns:` profile (type, non-empty count, min/max, distinct up to 50). Sizes are the extent of non-empty cells (the `info` handle reports the raw worksheet dimensions instead, which may be larger). Rendered views (`images/<stem>-s<idx>.<fmt>`) are produced for sheets carrying charts or images when LibreOffice is on `PATH`: the workbook is exported one PDF page per sheet and rasterized under a 50 Mpx budget. Any LibreOffice or rasterization failure degrades to `Rendered view: unavailable (<reason>)` and a handle note; it never fails the conversion. Workbooks whose chartsheet drawings carry a zero-size anchor (openpyxl-authored files; Excel-authored files are unaffected) render as a degenerate page and are reported as such. `.xls` gets the inventory, CSVs and previews but no visual detection or rendering.\n\nWorst-case wall time: PDF `warmTimeoutMs (first call) + primaryTimeoutMs + fallbackTimeoutMs`; PPTX adds `sofficeTimeoutMs`; DOCX on the Python path `warmTimeoutMs + primaryTimeoutMs` (success or a terminal child failure), DOCX child exit 1 then LibreOffice `warmTimeoutMs + primaryTimeoutMs + sofficeTimeoutMs + primaryTimeoutMs + fallbackTimeoutMs`, DOCX without a DOCX-capable backend `warmTimeoutMs + sofficeTimeoutMs + primaryTimeoutMs + fallbackTimeoutMs`; Excel `warmTimeoutMs + excelTimeoutMs + sofficeTimeoutMs + fallbackTimeoutMs`. Add `KILL_GRACE_MS` (2000 ms) per kill. There is no cap on image count, image bytes, cell count or workbook memory - deliberately; the per-tier timeouts, the rendered-view pixel budget and `maxOutputBytes` are the bounds.\n\n### Migrating from flat keys\n\nThe flat top-level form (`\"fastMode\": ...` etc. directly under `settings.json`)\nis the outdated configuration style. It is legacy-frozen to exactly the four\nkeys above - `fastMode`, `sessionAutoName`, `swordHeader`,\n`providerStallWatchdog` - and will never gain a fifth. To migrate, wrap your\nexisting keys under `\"quiver\": { ... }` and delete the flat copies:\n\n```jsonc\n// before\n{ \"fastMode\": true }\n\n// after\n{ \"quiver\": { \"fastMode\": true } }\n```\n\nA flat copy keeps resolving (nested wins within a layer, project layer wins\nacross layers) but every flat legacy key in use is listed in the condensed\nsettings warning above (`\"fastMode\" at top level - move under \"quiver\"`) until\nit is moved. Every new pi-quiver setting introduced after this change (for\nexample `slack`) is nested-only from day one: it has no flat form to fall back\nto, and a flat `slack` block is ignored without a warning.\n\n## Claude Code support\n\n`fetch` and `doc_to_md` cores are also published through the CLI, so Claude Code can use the same routing or bundle-and-handle behavior as pi's native tools - without pi ever seeing Claude-only files.\n\n**Exposed:** the `quiver` plugin, served from this repo's `.claude-plugin/marketplace.json`, with two skills: `fetch` (invoked as `quiver:fetch` / `/quiver:fetch`) and `doc-to-md` (invoked as `quiver:doc-to-md` / `/quiver:doc-to-md`). The `fetch` skill runs `npx -y pi-quiver@latest fetch <url> [flags]` via Bash - full parameter parity with the pi tool (`--method`, `--header`, `--body`, `--raw`, `--timeout-ms`), same GitHub `gh` routing (including failed-step logs on failed runs/jobs), same size gate, same binary-to-temp-file handling. See [doc/fetch.md](doc/fetch.md#claude-code-cli-pi-quiver-fetch) for exit codes and flags. The `doc-to-md` skill is generated at release from its hand-written intro and option schema; it runs `npx -y pi-quiver@<release version> doc-to-md [flags] <path>` with full flag parity and the same handle output. See [doc/doc-to-md.md](doc/doc-to-md.md#cli-pi-quiver-doc-to-md) for exit codes and flags, and [install channels](doc/doc-to-md.md#install-channels) for npm versus marketplace updates.\n\n**Not exposed:** the other pi extensions in this package (`session-name`, `sword-header`, `fast-mode`, `provider-stall-watchdog`, `slack`) - the marketplace allowlists only `./skills/fetch` and `./skills/doc-to-md`, and the npm tarball never ships `skills/` or `.claude-plugin/` (pi's own `files` allowlist excludes them, and pi's explicit `pi.extensions` manifest makes them invisible to pi's convention-directory auto-discovery either way).\n\nAdd the marketplace and enable the plugin in `.claude/settings.json`:\n\n```json\n{\n\t\"extraKnownMarketplaces\": {\n\t\t\"pi-quiver\": { \"source\": { \"source\": \"github\", \"repo\": \"jjuraszek/pi-quiver\" } }\n\t},\n\t\"enabledPlugins\": { \"quiver@pi-quiver\": true }\n}\n```\n\nActivates on folder trust.\n\nThe generated doc-to-md skill uses the package version at release; the marketplace entry uses that same version so plugin updates track npm releases.\n\n## Development\n\nDeps are peers (`@earendil-works/*`, `@sinclair/typebox`) plus the bundled\nruntime deps; install them transiently and run the full check:\n\n```bash\nnpm install\nnpm run test:all      # node --test test/*.test.ts  +  tsc --noEmit typecheck\n```\n\n`npm test` runs the unit tests alone; `npm run typecheck` runs the type pass.\nBoth run in CI on ubuntu + windows (`.github/workflows/test.yml`).\n\n## How this fits the platform\n\npi-quiver is how ground truth gets into an agent's context - real pages, PDFs, docs, cleanly and safely. The other three then coordinate work over it ([pi-cohort](https://github.com/jjuraszek/pi-cohort)), prune it once it's stale ([pi-condense](https://github.com/jjuraszek/pi-condense)), and govern the process end to end ([pi-gauntlet](https://github.com/jjuraszek/pi-gauntlet)).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) - issues follow a Context / Problem / Idea / Acceptance Criteria template; PRs run the [pi-gauntlet](https://github.com/jjuraszek/pi-gauntlet) workflow (one-liners exempt from ceremony, never from keeping docs truthful).\n\n## Support\n\nIf this saves you time, consider [buying me a coffee](https://buymeacoffee.com/jjurasszek).\n\n## Release\n\nPublished to npm by CI. Pushing a `vX.Y.Z` tag triggers\n`.github/workflows/release.yml`, which gates on `tag == package.json`, runs\n`npm run test:all`, and publishes with `npm publish --provenance --access\npublic` via OIDC trusted publishing. **Never run `npm publish` by hand.**\n\nCut a release with the helper script (also exposed as the `/release` prompt +\nthe `release` skill at `.agents/skills/release/`):\n\n```bash\nbash .agents/skills/release/scripts/release.sh propose      # suggest a level\nbash .agents/skills/release/scripts/release.sh patch        # or minor / major\nbash .agents/skills/release/scripts/release.sh --dry-run patch\n```\n\nIt promotes the `## Unreleased` CHANGELOG section to `## vX.Y.Z - <date>`,\nbumps `package.json`, commits `Release <version>`, runs the tests, creates and\npushes the `vX.Y.Z` tag, then monitors the publish. See\n`.agents/skills/release/SKILL.md` for the full flow (`sync-presets --apply`\nrewrites same-form `npm:pi-quiver@<old>` pins; git-tag pins are reported for\nmanual migration).\n","readmeFilename":"README.md"}