{"_id":"pi-distill","_rev":"27-db7132698d14b100dd3c1620b98b9e50","name":"pi-distill","dist-tags":{"latest":"1.9.2"},"versions":{"0.1.0":{"name":"pi-distill","version":"0.1.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.1.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"d949e12226d2aeec8a04af9bd07a0d95a6a33d53","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.1.0.tgz","fileCount":12,"integrity":"sha512-/UPUW62k9k6EJw2sh8/jpYQv6VVRoQ2TWT0yL1WdVqinAu7FufFetWdNj8YYlQXm9Y3Yg0wFGBw9Rhavvmpx8A==","signatures":[{"sig":"MEYCIQC+V+QhaNxBs4F0pgiEtg1FGLOtW+2CQjncbevqtN64OAIhAMnzmp1HiZMUhKj2jAg/z6KjGLWs/tjSU3Uf955DjKSL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73666},"type":"module","engines":{"node":">=22"},"gitHead":"f52455e755a831ffa80752fd8c2ed3f25b2c4076","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"11.10.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.1.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.1.0_1784450732814_0.2040030793188663","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pi-distill","version":"0.2.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.2.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"da21b739cd5fa048b8d6f300eb8857429dbada3b","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.2.0.tgz","fileCount":12,"integrity":"sha512-9TyaLLnsz9zGefPxQQ8nJMOdu8Sc7SeAlad4Jq9F4uQzt1izas2SsW0ONHDNQn0f3G0FIhffcHdJGnZY8PFJjw==","signatures":[{"sig":"MEYCIQCVKJj/bsnZ8Vm7F+j99AvXZhxg3v+hQtT/iWs0C6NqJQIhAKisNd1WYxg8IwrfAYO+Sel6lUHvB1N7uVntJLaL/a1T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73666},"type":"module","engines":{"node":">=22"},"gitHead":"423a6015a8e247edfd3c73abb562f00a6a28f407","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.2.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.2.0_1784453473358_0.0017335658030950274","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pi-distill","version":"0.3.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.3.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a236a03817580e7392c74d916b55a5560fbf8072","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.3.0.tgz","fileCount":14,"integrity":"sha512-WphMANwrGu3+NjKpqmZLQj/iJcdF9TYWDFyY7jA5xIXgEuj3/2S3/M62jwU1QCzAAPKrrXJzKop9Lnu5AVkyig==","signatures":[{"sig":"MEYCIQDZpJU7lmHWptrGvy65AiLbb76S528ZGqLmWv13QwgHLAIhAKyU2HSF3v0126o7mSyLqQ8/jAlF+N0POvh36UmAQcY+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141202},"type":"module","engines":{"node":">=22"},"gitHead":"571463a417c6887eed364722bdadc3d735798e75","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.3.0_1784463524537_0.7679000300325034","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"pi-distill","version":"0.3.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.3.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"bf0339267efc1d94c8bfb15afe9cbd1b1f56a5c0","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.3.1.tgz","fileCount":14,"integrity":"sha512-3bGblyzGLLO/PfejMq7j7hYERMk00pGug0kQtnR9WEiZMiNUBDsxY5F95BuvWKnh8s2e/Fagt9nB/+1s7Y1vLg==","signatures":[{"sig":"MEUCIF3zELXxlVBwzKXwVA9p44454Ms9bc+8JUGzu/J3hMBhAiEAsdIWwFSF4CsOPeH6GPq1+QonT+wW5EV08ka5l4kEFS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144739},"type":"module","engines":{"node":">=22"},"gitHead":"d6abd85584da92515430637d78f687bb41484f37","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.3.1_1784473707880_0.09940642735806038","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pi-distill","version":"0.4.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.4.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"8908a0454678dc6fcd06e18402d6e833b17551ec","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.4.0.tgz","fileCount":14,"integrity":"sha512-VqNTo+pkQtEqxOFGCBIftE+4dAVIdMeCy/iAIBkwUQ/rr7su22RaOYsV4tKfSOhwfINIPktNY5Q5mzJ1bkNI4A==","signatures":[{"sig":"MEYCIQCB24b0wFJ1YWK46gf8/d5XZ62PPj85CzN6BAufQWbOzgIhANaNkttr/urV6xkXg9W6fHGNgWH72m9KzSPj3Xrs6Y8B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145102},"type":"module","engines":{"node":">=22"},"gitHead":"e956878c19ca09fe5770d53d34c4d47f82bb3147","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.4.0_1784517856821_0.7748903652785493","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"pi-distill","version":"0.4.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.4.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"92e61894804365c2993644390a86c8f0ebde1cb3","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.4.1.tgz","fileCount":14,"integrity":"sha512-RGthzZbIDSybGxU7UD7d4s4QYPIZO5LJLyVkzL/CRPiCY33gIsALnqwjqJUqXRn3DTyrlUiImrqFy1M0GBOz9A==","signatures":[{"sig":"MEYCIQDQYY6fs6nrhruSvEW36aaSyghW+avjKpRG3rLH69+bXAIhANo/UUgylw5KBcvX/Ne9v3cWetzvVIhpAie3oxllgqpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145102},"type":"module","engines":{"node":">=22"},"gitHead":"a5e8b8346396ac3836d6f37a70df4a664559e510","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^0.2.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.4.1_1784521683241_0.5272234723979743","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"pi-distill","version":"0.4.2","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.4.2","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"11e620b4693a13a45977ff4864debd64cf390766","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.4.2.tgz","fileCount":14,"integrity":"sha512-2y/bCJqjZQznWW6GxUzQkZ5UTJkq8083Z5RWcqtsxGi6Vq7+0un7/3gxuGZg9fw0rF/SK+PO+RKOQV/PmBWNEA==","signatures":[{"sig":"MEYCIQDX0yRUvqWGCaQPU/vT4pSPTEoSErvfk65ehh6mWFdr9AIhAOkFXtXGziRzkIRbI0H6+3InIzobTO02v22yhN6etBLL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145080},"type":"module","engines":{"node":">=22"},"gitHead":"0e769e1248473269031d1941df1f632f4065050a","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^0.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.4.2_1784530338898_0.5162158273746149","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"pi-distill","version":"0.4.3","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@0.4.3","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"a6a7952fd4a1a07bbcf50b43d44f730032dc562f","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-0.4.3.tgz","fileCount":14,"integrity":"sha512-1GvrdmvgOzZOLvlnAWNNU8sGWzJnXSfMqj3uSqBGyqbCW6SpRUmLTxMOEnJ/cmuN8wfYHUcJgQdBeAHUB300NQ==","signatures":[{"sig":"MEUCID0Wh3J57NgtepDGPZAgKUDu3RkJnHFJZnD6xyBfIcIiAiEA576rO43GcN4AdY9olvCFF0ZNqhzhk6yHm4Bv9+ODCrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147770},"type":"module","engines":{"node":">=22"},"gitHead":"a33d6d3069d2b53de6b8649b3ceb1a9f7126ea6a","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^0.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_0.4.3_1784553871008_0.10759916404750203","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"pi-distill","version":"1.0.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.0.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"66264f4966ab6923cc0c40db641a2df601f8d9b6","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.0.0.tgz","fileCount":14,"integrity":"sha512-k/Sj8ZWtTsX45Wz5lozjQwchkbNr8kVB+MvkLAuAfM/+tZxkclBiBs+ba6xaqvFtr4FyjTHd/gpVQOruXo47aQ==","signatures":[{"sig":"MEYCIQDjED41YCKtXMuX48GwN4dHUmNMXl+/kcRhYsOFW4ayxgIhAP+n1CyyZqOmrj45/uvYTnFgLTsVez2xE1+1JV+Tw9oB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147292},"type":"module","engines":{"node":">=22"},"gitHead":"d171088e7fb901848e2334659c3334fdfe94a94c","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.0.0_1784636681174_0.715295222611481","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"pi-distill","version":"1.0.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.0.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"cda2e57cd94b5f1f92b225b3abcb8e97a6ecb97f","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.0.1.tgz","fileCount":14,"integrity":"sha512-ZDMj+aJoW3oqIlDB7eWxwl3/740LTkLanPpPlZgBtnW0syAVvAamOuQ2Ku5KviXPE13/YC/YAeUlKvhfphpo+g==","signatures":[{"sig":"MEUCIGt/Rf5X5dv3I6sjF/jbpDVhaemVu3dUgoFDchsT9HEeAiEApVq6AuhhNkDNmeRHiTt22yCuh8yv4654Y4NePZyvZn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147358},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"8e4aeade620058f88d7ac61da84044805433ed76","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.0.1_1784649881562_0.9165608886511505","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"pi-distill","version":"1.0.2","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.0.2","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"c66a928883a713e17ceda247357badae623a4fef","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.0.2.tgz","fileCount":14,"integrity":"sha512-a5OqSgCxIe+4fYabO1+XmYEgDOTSsC7rxDEj5Avn3FqG0XRm1JoBYeNiWzQYH/QFK6Q20Oo+vIbjriRH8HbJZw==","signatures":[{"sig":"MEUCIQCkcsaspviENgX5Es/gyrv2JbNmgMVxPR1/sDdfT5jk4AIgJ8S3Uy/XzTKOzQeJuSoh4GqSfRJy8goUbHY0pphW6TU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144040},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"3d115b207dd807bb51e925f75cea881126e1fde9","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.0.2_1784686170084_0.4261417037575157","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"pi-distill","version":"1.1.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.1.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"3d07161a0b92ac9d7e2eaddaa3e7aef4bf3f52c8","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.1.0.tgz","fileCount":14,"integrity":"sha512-o8Eg5t2y60Qx58OhGyLaV3lRoMXk0H4UyPerYXXlLnx17SngfrA/GaExyOPUtS23QMFv8UWspg+7RWZNKIGOvw==","signatures":[{"sig":"MEQCIAkx/sTI3dyQU1EhGrAzZlrmfLZW4A7o5pCRFJs3ZfGgAiBbthSN1KdPPlFBwbxdPXvY0W4RqKi36ovOak122KHLJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170943},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"1d75c04fb3c24acadfdec82718afdbe3aa106858","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.1.0_1784771000169_0.7755478362621306","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"pi-distill","version":"1.1.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.1.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"47bbdddbcff806838641faaba19723aac0647076","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.1.1.tgz","fileCount":14,"integrity":"sha512-mS72tYN9n9dNTsznzBSS+Spvbe1WUgVKJD4XIAFUIHNMMSgXE29/OjlsduoAjP8NoJuqf2k4Yz6pVeVm5NyDGA==","signatures":[{"sig":"MEYCIQDrU1MXXdTMNsS4pIfp0J2rYpYBUZv2kl2Nh6dPxauQhAIhAPzIEw0YLh7XbE6SPLNtnP2ZDytbEh4QXbWgvu2i2rWm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170943},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"67827042e68a1fbcbeb588454aeea53858da7989","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"pi-extensions-i18n":"^0.3.0","@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.1.1_1784820345764_0.9451804943387812","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"pi-distill","version":"1.1.2","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.1.2","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"cec5e853f8f1714014d4125d3e0f03d00b78d78a","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.1.2.tgz","fileCount":14,"integrity":"sha512-ZaeHb8KdGSJ2jvqaq+EZGcSFSgp25W1hYLAPk2KQtl47zXkhoyuQeXqAk49WUKVAv7nrazCQttey2tyvhxpRQw==","signatures":[{"sig":"MEUCICyb5aYlZz5VP1kduSRj3WzkpmSF1eYvrtS2hysf5fRtAiEAgfKZJ6nfNiAF3DqbPNClv43hrFgOYZKu6p1S5h/EKjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171399},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"fe841af2dcfecfa6834fa6a70f8fc53f41259465","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.1","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.1.2_1785139601666_0.06619696318600377","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"pi-distill","version":"1.2.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.2.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"307a0184012ebf5760d430e33b7b29cfc2d08197","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.2.0.tgz","fileCount":14,"integrity":"sha512-bByzgqqZFTg5nCI9LyAoZ3+TX70FobsbrQBIZCNgnnUS7Jv5blNCk7Y86iDHRroFlHdQVxdHt5SaGpMr9lczTw==","signatures":[{"sig":"MEQCIACpJRGNiqQX48UmrjWaI2yyGLTKZ6Y7c7YIztS42vyOAiAJWXU2IyrlsGS1taeXa87tt0QdR4y7sXNrWJ3H3F2CtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":181641},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"d5b4331f2d39851234fb540203500a1ac03a04f9","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.2.0_1785382246138_0.6324054309902618","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"pi-distill","version":"1.2.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.2.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"5527577503708c8454228b03d1f87829ac929168","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.2.1.tgz","fileCount":14,"integrity":"sha512-3vk1LiA+OaoSkeashuD8bshBRAR6kB+5JibFJjGcz+ZX7yqgkMfSUUU14F5dXfz6b0rbMWAqdkMbSA4oZs4n/Q==","signatures":[{"sig":"MEYCIQC7ShumwKTKT0M5gd5uWpVDgx1OBHDpmweKKCeFudvkYAIhAN0f5deRdqCzVbr4lnTgxuDfuD8s6yiHAeMOhqs+Fzph","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":181641},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"455c421e6988485d3dce667d6cfe283b2b82f0e4","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.2.1_1785391681000_0.6899667658958908","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"pi-distill","version":"1.3.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.3.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"61163700c06634d270fcc4c0528b8501b6566069","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.3.0.tgz","fileCount":14,"integrity":"sha512-urHSjQ6a0HimPkhW1sVgHqf1G1CROOmAK+9Fx7jSD9WN++pfR6X55cGtUWhmun4GPy4sNTkPL6xBRxW1nouPiQ==","signatures":[{"sig":"MEQCICsbw8sZhHsJsX1gkqoJSF4URwEy/AO+yxBLJZkZa7KtAiB6irdbrF+sWwCi0oYNoG7eDUi0hn9QLDEHX6w5f3y8rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":201413},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"24e23a98af50ac1466d03d73b1eccca0386735d4","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.3.0_1785506604465_0.014054265729083415","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"pi-distill","version":"1.4.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.4.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"f80a1d01700b6c8586b71e9cec0fbb6a7034350d","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.4.0.tgz","fileCount":15,"integrity":"sha512-o03LI+BubZPzaMb4Og/5s9fjOKVQe10JpuX4rjh3iJcapQvO7ZCKD31p6XsA2TiPStkn3S4zqlk0zvKgRnt/nA==","signatures":[{"sig":"MEUCIF6+oZQ7vpjzZE5o8I9XPnjHjxnDn5oACAkukh6FlWCLAiEAnZH8kymmqgATIjWezQXTbBSy1HJKFsu01ECK/Gm3SFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203123},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"d40184953b3d2233fb3e5f841e8e5097731d7422","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.4.0_1785642302786_0.9682496178612559","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"pi-distill","version":"1.5.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.5.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"251db57e5ec151fa6a542764f5f4d9750f331c3f","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.5.0.tgz","fileCount":15,"integrity":"sha512-KqXhpSrXsIVpMyNlxXlfY3QbeEFKc9CdMIdyouj79J1ttR5Rj0qx6SqEmYKR4WHDtCYXYCqQMBukoLlEcQkmwg==","signatures":[{"sig":"MEUCIQCmOVRFwCdcoyXMUtWtppW6JZpvVTtnlw32KhnBpPTWEgIgRC80FyOaE8Wguca3fP1GFBe++YfS4mkplcvZz0fRydw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204638},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"486e379e7b0872e9c9181f4c32e8c5b46d6f8988","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.5.0_1785943188236_0.7360347848602968","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"pi-distill","version":"1.6.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.6.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"f5dd407628196ed16c985d5e95fe665214d7d2cf","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.6.0.tgz","fileCount":15,"integrity":"sha512-5D5GhrWctf0En/tn/WwHUu1mNvOdUx5SL4UUEL6vA3LjBZjHkC8eWwzCFjt6ip8Te4552E1LUfMyrPApNV9OeQ==","signatures":[{"sig":"MEYCIQDIVPSEOzzYndgBDexPEmnQnwzaODeVwSOKpEnlPsNoEgIhALbtSe4dFUNuSnlTfmYj92iO61jeg2+FOcX6pS8EJiiW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211237},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"5a0fc958b819f9e14510427c48c4b3f031a9c3bc","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pi-extensions-i18n":"^0.3.1","pi-extensions-tool-display":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.6.0_1786679501529_0.9175439447630904","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"pi-distill","version":"1.7.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.7.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"2174b194b3b99c36067f56397fbeb9d25bcfe705","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.7.0.tgz","fileCount":16,"integrity":"sha512-UKlKQmLaLEsF1PXu6e67xp0X68Wv7k6XAJ6JpecC5ze3B8Py4EKFpRdUJdH59xLBotNTVERqMnHPGpQGfbjzkA==","signatures":[{"sig":"MEQCIFU4qoD/iZJz3qINEf+H3xJ0xFWCrXmDkLYWeI5JkNXbAiBttli0L9vFYEVvv1D065ZsZgErb+Vhz1X0dlT2bBOydA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213225},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"5fe58b5ebd4d0d2397f534e968fdafa037ec8260","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.4.0","pi-extensions-tool-display":"^1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.7.0_1787279319889_0.8346718796158155","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"pi-distill","version":"1.7.2","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.7.2","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"2e316a9657704602d881054326270cd55877ca61","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.7.2.tgz","fileCount":16,"integrity":"sha512-4ZC4gP3LLV5wL5Ns7nXf4Wb+ucn76mb/CYks6pDr3+Zg9ft4YdkpvdtYJeYtiB9rbnJ9ogHJKe+bggmE2KM9Mw==","signatures":[{"sig":"MEUCIGYQ2oO3GdrPLfnsS38RBHAlERNz4DHUm0SnOo7toXdqAiEAuWdhuyi5H3NHAl3W3I+bFwRN9Uj061227suljYAkuns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213660},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"2c37516f2b322ed7cbc1e038ec122c527c086799","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.4.0","pi-extensions-tool-display":"^1.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0 <0.81.0","@earendil-works/pi-tui":">=0.80.0 <0.81.0","@earendil-works/pi-coding-agent":">=0.80.0 <0.81.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.7.2_1788191714286_0.545441231322285","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"pi-distill","version":"1.7.3","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.7.3","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"e3bc5a1156904f1e392a47a70daae4e5bfec0acf","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.7.3.tgz","fileCount":16,"integrity":"sha512-eJSoCXJn/1RZoDz1bYPBCMN6x6WA9VRL96Hak6DBrIZ7D0WMxO+83qUxePTD1izcxS0JGFr505cr8eibGkbs4g==","signatures":[{"sig":"MEUCIClll8NWb5Y4c9gbN/wbYM+BpFqVfz+57wo5VAu6NCuZAiEA28LdTem055kt7CjTIIKXsg4kXUINJ/3x4SmFH/6Pe2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBpTOKkEz/WpHsSomlbAJYlpb54Vtq5hRRju8lqLtRsZAiEAk5DkIi5tH7Wvyj3YPZ3WN+LIyQP3N2z7UszJhpPjpIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213633},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"89d1f871be35877e185443c4146109e8763ad775","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.4.1","pi-extensions-tool-display":"^1.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-tui":">=0.80.0","@earendil-works/pi-coding-agent":">=0.80.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.7.3_1789310939733_0.6979497264054508","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"pi-distill","version":"1.8.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.8.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"4480dfb0471f57df7c422e7fd9c62e56ad2cee85","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.8.0.tgz","fileCount":16,"integrity":"sha512-N2dNjMS7UYucJFl3tbESW9sAXtkHCd83BwVNFKoiHN+7KGxjoiT4GUHkQ2mqbh/3gYsiKy0Dw/pGpHTkEPQnew==","signatures":[{"sig":"MEQCIF3ooeSU+G6vVlbLRkfzFT4E1LVnHaG7QDwd0bW0422fAiBmoAZTai10PDDMQ8LNGk6iamBtiUls2p2a/LnUk5dVTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDV3cQNlOlrM23/Gg7Sz5wmh2pr/ZEx4ZCFz4C3gmVdvgIhAIauB8e2u3VHUrSnofG4pfSLv3+l1EqbaxRQfsSBg8KC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214660},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"00bcad50f3e29865efcc8ae13be19bedd16206e0","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.5.0","pi-extensions-tool-display":"^1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-tui":">=0.80.0","@earendil-works/pi-coding-agent":">=0.80.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.8.0_1789350253546_0.7296380219256424","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"pi-distill","version":"1.9.0","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.9.0","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"2b63f31533de10ed4cbee443531c58256c0aa304","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.9.0.tgz","fileCount":16,"integrity":"sha512-cQmMgKFu6jRdqFbYZYrzozB8hU5mMxX99JONCovpyP0v4zKd1eMiY8Zut/VVtwsxBKXlNKHYuHHZ0Dai6NeeRw==","signatures":[{"sig":"MEYCIQCsjld7LZHnEIfo64XID+zfWxtr3Mvm4H9qPJGGrkLsiAIhAJRBJ3YVSOleRKXjJUqhCxfuA/nwvniLw+zy5LUGJ2Bk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCHzdiYsdkyqdsIOFayViQ57qN2IOxONNB0wWVS9EfpxwIgbJ4OneXIV4hYEzuNRNg/90PVd46YVnaPfNZ4iYwZdjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214820},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"527d7324b0c713f0f141b22cc0e640ed9e4dcca2","scripts":{"test":"tsx --test tests/bash-output-summary.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.6.0","pi-extensions-tool-display":"^1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-tui":">=0.80.0","@earendil-works/pi-coding-agent":">=0.80.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.9.0_1789368949915_0.625767373603932","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"pi-distill","version":"1.9.1","keywords":["pi-package","pi","pi-extension","coding-agent"],"author":{"name":"maplezzk"},"license":"MIT","_id":"pi-distill@1.9.1","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"dist":{"shasum":"ab7384df288b3f804c38c35c6d478c6d08ae8da9","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.9.1.tgz","fileCount":16,"integrity":"sha512-69efoKsSCOQrpKtOuKBjBUfU7CC/Gc0Rh2OnC0rYx9kTOIoVwNRmmKdNX0VOb+MiAAqj4Nu46hZvndtGevKuHg==","signatures":[{"sig":"MEUCIHommH6ZjGLDXOOlzw2l6v4HADl/8TRyfPKRNLSkJaJEAiEAwvEifYK5IfGy5c/pwG4RlZeZyaoi9YAAomRPE4rEB0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCajvV8KhQqHbDEhMxkduy8ip66Qb0+GvSrlBeeiXuyPQIgOaqJ6ymiFWxYMu7bqv5fP+phxRG6SFiq9Zn/PNhJOos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214802},"main":"./index.ts","type":"module","engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"8ec1ea0790ea338b4905d9fecae599fae9e2a4c7","scripts":{"test":"tsx --test tests/*.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.7.0","pi-extensions-tool-display":"^1.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-tui":">=0.80.0","@earendil-works/pi-coding-agent":">=0.80.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-distill_1.9.1_1789804108122_0.41869603651545484","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"pi":{"skills":["./SKILL.md"],"extensions":["./index.ts","../pi-extensions-i18n/index.ts","../pi-extensions-tool-display/index.ts"]},"_id":"pi-distill@1.9.2","bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"dist":{"shasum":"f1519807b9aef4048a779f51b12d4e0b2474de67","tarball":"https://registry.npmjs.org/pi-distill/-/pi-distill-1.9.2.tgz","fileCount":16,"integrity":"sha512-UglXAUK5sfUXnbE8nmXbiGXcQv8yYMmgX3YY2nL+ROrJyC5Dl2HKSe6ssgGyWE9XJiCY85dRXLlep2sbJm/6Eg==","signatures":[{"sig":"MEYCIQDPA/9uuafA8XlPLUG2K3r/pqNXonRlOO70oWXp0JhR7wIhAJvO3fmGJQLf7nY464viz6H+zLdti2sinynTHPfjkH6t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpzLgIz9OIIlqHxIQWv3wYGXAXHQhQdRfhogVU6jp2XAIgAhCwX1O+B3R5SQoTyRtcmJNdgdbNhfzf47wlEr3UfHM="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-distill@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214846},"main":"./index.ts","name":"pi-distill","type":"module","author":{"name":"maplezzk"},"engines":{"node":">=22"},"exports":{".":"./index.ts"},"gitHead":"7a5c96be138158a5cf6413ac819509eff12b1ccd","license":"MIT","scripts":{"test":"tsx --test tests/*.test.ts","build":"npm run typecheck","check":"npm run typecheck && npm test && npm pack --dry-run --json > /dev/null","typecheck":"tsc --noEmit --pretty false"},"version":"1.9.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:363a72e9-e269-479b-9b5d-ae30ada849ec"}},"homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","keywords":["pi-package","pi","pi-extension","coding-agent"],"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"_npmVersion":"12.0.2","description":"Pi tool-output distillation with file-first configuration","directories":{},"maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"pi-extensions-i18n":"^0.8.0","pi-extensions-tool-display":"^1.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","typescript":"5.9.3","@types/node":"24.12.4","@earendil-works/pi-ai":"0.85.1","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-tui":">=0.80.0","@earendil-works/pi-coding-agent":">=0.80.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-distill_1.9.2_1789977134041_0.6399143329028332"}}},"time":{"created":"2026-07-19T08:45:32.589Z","modified":"2026-09-21T07:52:14.455Z","0.1.0":"2026-07-19T08:45:32.953Z","0.2.0":"2026-07-19T09:31:13.483Z","0.3.0":"2026-07-19T12:18:44.703Z","0.3.1":"2026-07-19T15:08:28.024Z","0.4.0":"2026-07-20T03:24:16.943Z","0.4.1":"2026-07-20T04:28:03.512Z","0.4.2":"2026-07-20T06:52:19.085Z","0.4.3":"2026-07-20T13:24:31.174Z","1.0.0":"2026-07-21T12:24:41.400Z","1.0.1":"2026-07-21T16:04:41.716Z","1.0.2":"2026-07-22T02:09:30.239Z","1.1.0":"2026-07-23T01:43:20.327Z","1.1.1":"2026-07-23T15:25:45.914Z","1.1.2":"2026-07-27T08:06:41.800Z","1.2.0":"2026-07-30T03:30:46.313Z","1.2.1":"2026-07-30T06:08:01.162Z","1.3.0":"2026-07-31T14:03:24.661Z","1.4.0":"2026-08-02T03:45:02.940Z","1.5.0":"2026-08-05T15:19:48.393Z","1.6.0":"2026-08-14T03:51:41.656Z","1.7.0":"2026-08-21T02:28:40.047Z","1.7.2":"2026-08-31T15:55:14.423Z","1.7.3":"2026-09-13T14:48:59.813Z","1.8.0":"2026-09-14T01:44:13.637Z","1.9.0":"2026-09-14T06:55:49.994Z","1.9.1":"2026-09-19T07:48:28.278Z","1.9.2":"2026-09-21T07:52:14.135Z"},"bugs":{"url":"https://github.com/maplezzk/pi-extensions/issues"},"author":{"name":"maplezzk"},"license":"MIT","homepage":"https://github.com/maplezzk/pi-extensions/tree/main/packages/pi-distill","keywords":["pi-package","pi","pi-extension","coding-agent"],"repository":{"url":"git+https://github.com/maplezzk/pi-extensions.git","type":"git","directory":"packages/pi-distill"},"description":"Pi tool-output distillation with file-first configuration","maintainers":[{"name":"maplezzk","email":"zhangzikuan4513@gmail.com"}],"readme":"# pi-distill\n\n> **保留事实，把上下文留给决策。**\n\n`pi-distill` 是一个 Pi 扩展：它不替换工具，也不改变命令的执行方式，只在工具已经返回真实结果之后，帮助 Agent 决定哪些内容值得进入下一轮上下文。\n\n## 解决什么问题\n\n编码 Agent 通常只需要命令、搜索或文件读取结果中的关键信息。把大段日志、生成文件或搜索结果完整塞入下一轮，会增加上下文消耗，也容易让有效信号被噪声淹没。`pi-distill` 在不替换 Pi 内置工具的前提下，增加一层结果级提炼。\n\n## 实际上下文节省效果\n\n构建日志、diff 输出和测试报告经常包含重复状态行、未变化上下文、堆栈噪声，以及下一步决策并不需要的细节。这些内容通常很适合高比例压缩。下面这张真实 Pi 会话截图中，结果从 51,215 个字符压缩到 240 个字符：**213.40 倍压缩，输出字符减少 99.5%**。\n\n![pi-distill 上下文节省示例](./assets/context-savings-example.png)\n\n截图统计的是字符减少比例，不是 tokenizer 得出的精确 token 统计。实际使用时通常会带来同量级的上下文 token 节省，但精确数值取决于语言、内容和模型 tokenizer。对于适合压缩的冗长输出，90% 以上是已经观察到的效果，但不是每个命令的保证；需要完整输出时请使用 `RAW`。\n\n| 场景 | 常见噪声 | 提炼结果保留 |\n| --- | --- | --- |\n| 构建 / 编译 | 重复进度、警告和未变化的环境信息 | 成功/失败、首个可行动错误、受影响文件和后续步骤 |\n| Diff 检查 | 大量未变化 hunk 和格式化噪声 | 变更文件、相关 hunk 和评审所需事实 |\n| 测试 | 单测逐条输出、snapshot 和框架模板 | 总数、失败用例、关键断言和有效诊断 |\n\n## Prompt 语言\n\n提炼 prompt 会严格跟随 `/config:language` 当前选择的语言。持久化语言发生变化后，下一次工具调用会读取新设置，即使语言命令和 `pi-distill` 来自不同的包实例也可以同步。`PI_EXTENSIONS_LOCALE` 仍然是显式的环境变量覆盖项。原始用户消息只作为语言上下文传入，不能覆盖已选择的语言。\n\n## 工作方式\n\n- 通过 Pi 原生的 `tool_call` / `tool_result` 事件监听 `bash`、`read`、`grep` 和 `find`。\n- 以工具的 `outputRequest` 作为是否提炼、如何提炼的依据。\n- 当提示词严格只有 `RAW` 时，视为明确要求返回原始输出。\n- 默认使用当前会话模型，也可以配置独立的 `provider/model`。\n- 在工具结果 details 中保留状态、字符数、压缩比、耗时和异常等诊断信息。\n- 超长输出不再由 pi-distill 写文件或截断，统一交由 Pi 自身的输出限制机制处理。\n- 当前 Pi 展示中间件可用时显示紧凑审计卡片，否则使用自己的 fallback renderer。展示协议由公共运行库 `pi-extensions-tool-display` 提供。\n\n它不会注册第二个 `bash`、`read`、`grep` 或 `find` 工具。\n\n## 安装\n\n```bash\npi install npm:pi-distill\n```\n\n包清单会把共享依赖 `pi-extensions-i18n` 和 `pi-extensions-tool-display` 作为扩展入口加载，不需要额外安装这些包。安装 `pi-distill` 后即可使用 `/config:language`。\n\n安装后重新加载 Pi：\n\n```text\n/reload\n```\n\n交互式配置命令：\n\n```text\n/config:distill\n```\n\n## 核心思想\n\n我们不是想让 Agent 少看信息，而是避免它为了找一句结论，被迫把几千行日志一起带进上下文。\n\n工具执行层需要保留完整事实；Agent 消费层需要控制上下文成本。`pi-distill` 在两者之间增加一个可选的结果处理层：\n\n- 工具负责执行并返回事实；\n- Agent 通过 `outputRequest` 表达自己关心什么；\n- 扩展读取真实输出后，再决定是否调用提炼模型；\n- 模型只压缩消费路径，不改变原工具的业务语义；\n- 诊断信息记录这次处理是否真的节省了上下文。\n\n因此，提炼不是“把所有输出都交给模型总结”，而是一份明确的工具契约：需要什么就提取什么，需要完整内容就保留原文。\n\n## 为什么需要它\n\n构建、测试和 diff 往往会返回大量重复状态、未变化上下文、框架模板和堆栈噪声。Agent 可能只需要失败原因、变更文件或最终状态，却被迫先消费整段输出。\n\n直接截断会丢失关键事实；新增一个总结工具会增加调用链和决策负担；等 Agent 看完再总结又已经消耗了上下文。`pi-distill` 选择在结果进入后续推理前处理它，同时保留明确的原文模式和失败回退。\n\n## 实际效果\n\n下面是一段真实 Pi 会话中的输出：原始结果从 **51,215 个字符**提炼到 **240 个字符**，压缩 **213.40 倍**，输出字符减少 **99.5%**。\n\n![pi-distill 上下文节省示例](./assets/context-savings-example.png)\n\n这张图统计的是字符减少比例，不是 tokenizer 得出的精确 token 数。实际 token 节省会受到语言、内容和模型 tokenizer 影响；对于适合压缩的构建日志、diff 和测试输出，90% 甚至更高的节省比例是已经观察到的结果，但不是每个命令的保证。\n\n| 场景 | 原始输出中的典型噪声 | 提炼后优先保留 |\n| --- | --- | --- |\n| 构建 / 编译 | 重复进度、环境信息、重复警告 | 成功/失败、首个可行动错误、受影响文件、后续步骤 |\n| Diff 检查 | 大量未变化 hunk、格式化噪声 | 变更文件、相关 hunk、评审所需事实 |\n| 测试 | 逐条单测输出、snapshot、框架模板 | 总数、失败用例、关键断言、有效诊断 |\n\n节省比例不是唯一指标。扩展还记录提炼耗时、原始字符数、结果字符数、压缩比和异常；如果总结没有带来真实收益，会暴露 `ineffective-compression`，而不是静默假装优化成功。\n\n## 工作原理\n\n一次工具调用的处理链路如下：\n\n```text\nAgent 提出处理目标\n        ↓ 通过 outputRequest 传给工具\n工具执行真实操作，返回 stdout / stderr / 文件内容 / 多媒体结果\n        ↓\npi-distill 根据真实结果和配置决定：原样返回，或调用模型提炼\n        ↓\nAgent 消费更适合当前决策的结果，并获得可审计的处理诊断\n```\n\n1. 扩展在会话启动时为所有已启用、参数 schema 为 object 的工具增加必填的 `outputRequest` 参数；`edit` 和 `write` 默认关闭，其他未配置工具默认开启。不写死 `bash`、`read`、`grep` 或 `find`。\n2. `tool_call` 事件捕获这个参数，并在交给底层工具前移除它，因此原工具不会收到扩展专用字段。\n3. `tool_result` 事件拿到真实输出后再做判断，不依赖 Agent 对输出长度的预测。\n4. 每次工具调用都必须包含非空的 `outputRequest`；严格的 `RAW` 表示明确要求原文；其他非空 prompt 才允许进入提炼流程。\n5. OpenAI-compatible Completions 提炼请求会通过 `response_format: { \"type\": \"json_object\" }` 启用原生 JSON 模式；OpenAI Responses-compatible 请求使用等价的 `text.format`。单次提炼超时后按照 `timeoutRetryCount` 重试，其他模型调用异常按照 `errorRetryCount` 重试（两者默认都重试 1 次）；如果模型已经返回文本，但只是 JSON 语法或响应结构校验失败，扩展会把坏响应和校验错误交给一次 JSON-only 修复 prompt，不会再次发送工具输出，也不会重新总结；修复失败、没有可用模型或结果收益过低时，扩展保留原始事实，并通过 details 和审计卡片暴露状态；模型用 Markdown 的 JSON 代码围栏（如 `````json … `````）包裹响应时也会兼容解析。\n6. 用户打断上级 Agent 请求时，所有尚未完成的提炼请求会立即取消，并且不会为这次中断继续重试；原始工具结果仍按 fail-open 路径保留。\n\n## 输出处理契约\n\n| `outputRequest` | 行为 | 适用场景 |\n| --- | --- | --- |\n| 未提供 | 工具调用无效；Pi 会在底层工具执行前拒绝该调用 | 不要省略；未明确要求压缩时使用 `RAW` |\n| 严格为 `RAW`（大小写不敏感） | 不调用提炼模型，保留完整原始文本；超长时由 Pi 自身的输出限制机制处理 | 逐字核对、复制内容、需要完整日志时 |\n| 任意非空且非 `RAW` | 输出达到阈值后调用模型，超时与其他异常分别使用独立重试次数，具体保留内容由 prompt 决定 | “只保留错误、警告和最终状态”等场景 |\n| 包含图片、音频或其他非文本内容 | 原样保留，不发送给提炼模型，不做文本长度截断 | 图片读取、二进制结果、混合文本与图片结果 |\n\n`RAW` 是确定性的完整输出信号。提炼 prompt 会要求总结模型在用户明确要求“不遗漏地完整提取”时直接返回 `RAW`，尤其适用于语法、参数、SQL、API 调用或其他需要复制的精确文本。工具调用方可以控制参数时，直接传 `RAW` 仍然是首选方式。\n\n## Prompt 语言\n\n提炼 prompt 完全跟随 `/config:language` 当前选择的语言：\n\n- 切换语言后，下一次工具调用读取新的持久化语言设置；\n- 即使 `/config:language` 和 `pi-distill` 来自不同的包实例，也通过共享 locale 设置同步；\n- `PI_EXTENSIONS_LOCALE` 可以作为显式环境变量覆盖；\n- 原始用户消息只作为任务上下文传入，不会把中文用户消息误判成中文 prompt。\n\n## 覆盖范围与边界\n\n- 自动处理所有当前已启用且参数 schema 为 object 的工具；能否注入 `outputRequest` 由工具 schema 决定，不维护固定工具名单。\n- 不注册替代工具，不改变原工具的执行语义，也不要求额外安装独立的 `pi-tool-display` 宿主包。\n- 文本提炼是有损操作；完整性要求应使用 `RAW`。\n- 非文本结果是完整性边界：图片、音频、二进制和混合 content 不进入文本提炼链路。\n- 超长输出不再由 pi-distill 写临时文件或截断，统一交由 Pi 自身的输出限制机制处理，避免上下文无限膨胀。\n- 当前会话没有模型时，提炼会失败并保留原始结果，不阻止 Pi 启动。\n\n## 配置\n\n默认配置路径：\n\n```text\n~/.pi/agent/extensions/pi-distill/config.json\n```\n\n可以从 [`config.example.json`](./config.example.json) 开始：\n\n```json\n{\n  \"enabled\": true,\n  \"model\": \"\",\n  \"minChars\": 200,\n  \"maxChars\": 100000,\n  \"maxOutputChars\": 10000,\n  \"timeoutSeconds\": 10,\n  \"timeoutRetryCount\": 1,\n  \"errorRetryCount\": 1,\n  \"missedCompressionRatio\": 10,\n  \"summarizeErrors\": true,\n  \"tools\": {},\n  \"render\": {\n    \"enabled\": true,\n    \"showPrompt\": true,\n    \"showResult\": true\n  }\n}\n```\n\n配置文件字段优先于环境变量。未声明的字段依次回退到 `PI_DISTILL_*`、旧版 `PI_BASH_SUMMARY_*` 变量和默认值。\n\n| 配置项 | 含义 |\n| --- | --- |\n| `model` | 可选的 `provider/model`；为空时使用当前 Pi 会话模型。 |\n| `minChars` | 达到此输出长度后才请求提炼。 |\n| `maxChars` | 提炼结果超过此字符数时写入临时文件。 |\n| `maxOutputChars` | 最终返回给 Agent 的文本上限。超出后写入临时文件，只返回文件指针。 |\n| `timeoutSeconds` | 每次提炼模型尝试的最长等待时间。 |\n| `timeoutRetryCount` | 超时后的额外重试次数。默认 `1`；设为 `0` 时不重试超时。 |\n| `errorRetryCount` | 非超时异常后的额外重试次数。默认 `1`；设为 `0` 时不重试其他异常。 |\n| `missedCompressionRatio` | 没有提供摘要 prompt 时，用于长输出诊断的倍数阈值。 |\n| `summarizeErrors` | 工具返回错误且达到 `minChars` 时，是否仍发送给提炼模型。 |\n| `tools.<name>.enabled` | 按工具开启或关闭 `outputRequest` 注入和结果提炼。`edit` 和 `write` 默认关闭，其他未配置工具默认开启，也可以通过 `/config:distill` 修改。 |\n\n`/pi-distill` 仍作为兼容别名保留。\n| `render.*` | 控制审计卡片、prompt 预览和结果预览。 |\n\n## Session 统计\n\n使用 `/distill:stats` 查看当前 Pi 会话的提炼统计。统计只保存在内存中，在会话开始时重置，不保存原始工具输出。\n\n统计包括工具结果数量、成功/失败/回退次数、模型尝试次数、原始与摘要字符数、压缩比、估算的原文/摘要 Token（启发式：CJK 字符约每字 1 token，其余文本约 4 字符 1 token）、预计节省 Token、提炼实际消耗的 input/output/cache/total Token 和成本。数量达到 1,000 或 1,000,000 时分别使用 `k` 或 `m` 紧凑显示；耗时会根据数值显示为 `ms`、`s` 或 `min`。原文/摘要 Token 是估算值；provider 未返回 usage 时，提炼消耗 Token 或成本字段显示为不可用。\n\n主要环境变量包括 `PI_DISTILL_MODEL`、`PI_DISTILL_MIN_CHARS`、`PI_DISTILL_MAX_CHARS`、`PI_DISTILL_MAX_OUTPUT_CHARS`、`PI_DISTILL_TIMEOUT_SECONDS`、`PI_DISTILL_TIMEOUT_RETRY_COUNT`、`PI_DISTILL_ERROR_RETRY_COUNT`、`PI_DISTILL_MISSED_COMPRESSION_RATIO` 和 `PI_DISTILL_SUMMARIZE_ERRORS`。\n\n## 要求\n\n- Node.js 22 或更高版本。\n- 当前 Pi 会话需要有可用模型，除非 `model` 指向一个已配置且可用的模型。\n\n## 许可证\n\n[MIT](../../LICENSE)\n","readmeFilename":"README.zh-CN.md"}