{"_id":"@axnic/pi-extension-settings","_rev":"18-0a30e5dde5da442e6446ddd7803c4c11","name":"@axnic/pi-extension-settings","dist-tags":{"latest":"0.2.0","next":"0.2.0-rc.7"},"versions":{"0.0.0":{"name":"@axnic/pi-extension-settings","version":"0.0.0","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.0","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"b9836984039ec5c047aa17fc54c1d3e1b7d0b9e1","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.0.tgz","fileCount":5,"integrity":"sha512-sEHHtZQbeHwoRuisqTo03FakYmd/bvZGg1LaXJiGiokxDfEP1TZB662QPeNHP917UfMpZ3FaTAgixOFYaMj5rw==","signatures":[{"sig":"MEQCIEEK9jx4vT9PDT/Wjq1NKDQ9OzTR/wSv8QaLbyxNhBmzAiAqdVLn29Di0DTJUKkKcxUPshsLj6I0LgCtb16dOUhRQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":961841},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.0.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"},"_resolved":"/private/var/folders/2_/dxm8m9t126gg9v00jjq6drzw0000gn/T/33ee3369edd0d67fff6525919f73fb4d/axnic-pi-extension-settings-0.0.0.tgz","_integrity":"sha512-sEHHtZQbeHwoRuisqTo03FakYmd/bvZGg1LaXJiGiokxDfEP1TZB662QPeNHP917UfMpZ3FaTAgixOFYaMj5rw==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.9.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.0_1776034295652_0.7297213779680711","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.2":{"name":"@axnic/pi-extension-settings","version":"0.0.2-rc.2","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2-rc.2","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"064c0504fa13c3ca80ba74f4e1565655e0de6a32","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2-rc.2.tgz","fileCount":5,"integrity":"sha512-9CW9J4OdISOWeAXkAFaAwqYup6pccvxOmToO3JpXjAdYg9HdyK4K9/6nDgc1WCC65Yx/gtcKryCuwbtD0ugBlQ==","signatures":[{"sig":"MEUCIGTnsYQ3Yr0T2R/mMPifwg8BkoTL3LGp89aSntwpnk7gAiEA1YP40h/j+pdiTv5dHjo1hTeGHDHK77BmJJbJ1EZiLB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2-rc.2.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/50d66bb25cdf6a3d86f706b180170e16/axnic-pi-extension-settings-0.0.2-rc.2.tgz","_integrity":"sha512-9CW9J4OdISOWeAXkAFaAwqYup6pccvxOmToO3JpXjAdYg9HdyK4K9/6nDgc1WCC65Yx/gtcKryCuwbtD0ugBlQ==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2-rc.2_1776188546608_0.45826833651588594","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.3":{"name":"@axnic/pi-extension-settings","version":"0.0.2-rc.3","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2-rc.3","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"78d39846f92170cce9626a9efe8ab7415be58f7f","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2-rc.3.tgz","fileCount":5,"integrity":"sha512-J5226bHUZbIWzK+GONj2Ce4Qd2WqQQq5AJe6dPUMdrKQQBvXwWTiD03Az2bG2w7ie9VQMcsbbb/jispEP42wEg==","signatures":[{"sig":"MEUCIFfS/P0xsfuHMtqz6oWIjG1E/UnBYo+B/tPtM7t89h0IAiEA0wbZJl8jy63+KqJXnffSbtS3IrpUY6KjrI6/G4qIGvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2-rc.3.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/4546bcb29335d80c5634fcb706ddb625/axnic-pi-extension-settings-0.0.2-rc.3.tgz","_integrity":"sha512-J5226bHUZbIWzK+GONj2Ce4Qd2WqQQq5AJe6dPUMdrKQQBvXwWTiD03Az2bG2w7ie9VQMcsbbb/jispEP42wEg==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2-rc.3_1776189749794_0.5748869412706279","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.4":{"name":"@axnic/pi-extension-settings","version":"0.0.2-rc.4","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2-rc.4","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"1a9ebe34cfb5cef5ad39a47e435e603d9d2ccf01","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2-rc.4.tgz","fileCount":5,"integrity":"sha512-pLTAIgnP3FJImcgAMd1rTxzqrtI2nG5QtGTdYOffo3AwynrpAebGXxa2HmrqB3JeQpMVSpX54xrzJM071841eQ==","signatures":[{"sig":"MEQCIDrXWSc7EXiLqWsNjgUvT7a2+KvmZwLA7EXYXqtkvrbKAiBUiWRi+1I33nOkTsO43eGBHjTR7WMLexFc7o0CW2DJTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2-rc.4.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/65754c98a8b58b88defdb8b248ac59d7/axnic-pi-extension-settings-0.0.2-rc.4.tgz","_integrity":"sha512-pLTAIgnP3FJImcgAMd1rTxzqrtI2nG5QtGTdYOffo3AwynrpAebGXxa2HmrqB3JeQpMVSpX54xrzJM071841eQ==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2-rc.4_1776190075497_0.046831507818130724","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.5":{"name":"@axnic/pi-extension-settings","version":"0.0.2-rc.5","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2-rc.5","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"53dc1c431119fb3d09ed6826076a34e2402b8f2c","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2-rc.5.tgz","fileCount":5,"integrity":"sha512-LJHW9fKjArLLchmvfODi39RrvZTAzbuSfVny1rO2wCdoXJz99xmJvI5yhhlZGi63iBbr/XJltaxPcl/X2x1uMA==","signatures":[{"sig":"MEYCIQDo4HRkzl/KUorXilzGQ6kzClNmL5gGXPqdJjac0HzQ+wIhANwhuVSOs9EVfpsNwyVGY2ZYd+kDqpfM7NQ8p5hGb7Fj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2-rc.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2-rc.5.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/fe5acdb3c4ed80716c2de02af0e2bdb8/axnic-pi-extension-settings-0.0.2-rc.5.tgz","_integrity":"sha512-LJHW9fKjArLLchmvfODi39RrvZTAzbuSfVny1rO2wCdoXJz99xmJvI5yhhlZGi63iBbr/XJltaxPcl/X2x1uMA==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2-rc.5_1776190887085_0.041594277517917666","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.6":{"name":"@axnic/pi-extension-settings","version":"0.0.2-rc.6","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2-rc.6","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"23293772ac920d2ec29abd261077d007b7a19580","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2-rc.6.tgz","fileCount":5,"integrity":"sha512-ftP17SrT1Z+qrc1ZqQ9BNTVcBJw77CsstE+WugDxDaTcuavL8/NVJYkJyUSEIoc64ogNY2VaRfszpx50pIRUgA==","signatures":[{"sig":"MEQCIDfAcVptOgrTQAq9+/8IeI21U76s+Rka17PEKuorXqOGAiAnBget3dIFOR/6zP/nkoGRJjgx2V59f6sdMDf11Xrkqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2-rc.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2-rc.6.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/282569e83e051b395a7c73d99b654ff2/axnic-pi-extension-settings-0.0.2-rc.6.tgz","_integrity":"sha512-ftP17SrT1Z+qrc1ZqQ9BNTVcBJw77CsstE+WugDxDaTcuavL8/NVJYkJyUSEIoc64ogNY2VaRfszpx50pIRUgA==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2-rc.6_1776192494163_0.496947603465133","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@axnic/pi-extension-settings","version":"0.0.2","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.2","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"9538116b4f15d05dc6be3940d01e2e7418d110ff","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.2.tgz","fileCount":5,"integrity":"sha512-3RJSlh6pd8HkHRAmeajwLtv8m4mW23YIDYAApONuBNOXaxu5jHE+iuCpNFWRgiosDnjtpiO3v+MTFMb67H6kWQ==","signatures":[{"sig":"MEQCID9sA9DwhT63L8u/dVUVWEbh17Vt5LJahoJLPvX1Dl6IAiBhiDviRJa6ylskoIsUUb6Y7PJQ0oFDoIjwgA9RNg66fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001495},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.2.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b42f0a9d-baac-46ee-b47f-bd149f059617"}},"_resolved":"/tmp/04073b1ae9a23d5e2e13c3a2292fdb9a/axnic-pi-extension-settings-0.0.2.tgz","_integrity":"sha512-3RJSlh6pd8HkHRAmeajwLtv8m4mW23YIDYAApONuBNOXaxu5jHE+iuCpNFWRgiosDnjtpiO3v+MTFMb67H6kWQ==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.2_1776195728909_0.3480052151213142","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.1":{"name":"@axnic/pi-extension-settings","version":"0.0.3-rc.1","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.0.3-rc.1","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"cf6e194b86cf2b11ed23dbfe180864b9ea88d70a","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.0.3-rc.1.tgz","fileCount":5,"integrity":"sha512-mT9zBsLK7WadJId+0UDERfdeLFNYpBRR2IouPmDRK8vhYFdKPkqXpmj/Cvu2+v6qurJ57HeKEIwQeJL10dtjRg==","signatures":[{"sig":"MEYCIQC2oLKvNh+ot+l3VU2XO1YTZO3WHIHvldIAxt2dD84K4wIhAN7b/Cufj5cwF50ew22qc61Aa2xbZRf2sFMM4xfUpR8z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.0.3-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001500},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.0.3-rc.1.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/a8a301d933f175c78b36b8cc73f80ab1/axnic-pi-extension-settings-0.0.3-rc.1.tgz","_integrity":"sha512-mT9zBsLK7WadJId+0UDERfdeLFNYpBRR2IouPmDRK8vhYFdKPkqXpmj/Cvu2+v6qurJ57HeKEIwQeJL10dtjRg==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.0.3-rc.1_1776196363358_0.7463807888085667","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@axnic/pi-extension-settings","version":"0.1.0","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.1.0","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"567253414533b7478e8406c2ea937393feb026bd","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.1.0.tgz","fileCount":5,"integrity":"sha512-KQ8TkAK1pErjYMTSIS8fyLd7LsVJHOLl5BIeKP8sqdQtTeJ4Pw6ZtSA9jXYsSV0Z0KxMZL78+B4YAMwW28jE6w==","signatures":[{"sig":"MEUCIA98PMtPdCK1FJO5/yqBEfT98UAYrER8tse51nIJboXtAiEA1ZaxeZGt01oFASJ+7OIsWSVApmAJ7mSq87r91xbufis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001346},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.1.0.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/ddf96666c27d2665454ce1ea8310ac92/axnic-pi-extension-settings-0.1.0.tgz","_integrity":"sha512-KQ8TkAK1pErjYMTSIS8fyLd7LsVJHOLl5BIeKP8sqdQtTeJ4Pw6ZtSA9jXYsSV0Z0KxMZL78+B4YAMwW28jE6w==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.1.0_1776198879860_0.21624219081126173","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@axnic/pi-extension-settings","version":"0.1.1","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.1.1","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"dda1faa64d9ec7643b33ec9d2f1f90c5d5be92be","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.1.1.tgz","fileCount":5,"integrity":"sha512-2iba+YgcxQ9RD7ZGt5JUVT+i2UeF4j+Ibv/QMith2vfHGTgr0jfSJujY/Gp9dR/SOQHihpDiAG542NUwNbi7xw==","signatures":[{"sig":"MEUCIE+aULMdpv6JOP8n00hws1IowZLIMnwPv10DQI2XMfGPAiEArAM0FOrek+DECcIwwy8q1zpXoIEZJHv+bSQ9HWDQV+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1001482},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.1.1.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/e68e2a69d372be4ed282534d70045492/axnic-pi-extension-settings-0.1.1.tgz","_integrity":"sha512-2iba+YgcxQ9RD7ZGt5JUVT+i2UeF4j+Ibv/QMith2vfHGTgr0jfSJujY/Gp9dR/SOQHihpDiAG542NUwNbi7xw==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.11.0","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.1.1_1776199700615_0.7398065839282262","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.1":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.1","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.1","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"2f466c011c422d60dc70a12ee438e0dce1b56fcd","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.1.tgz","fileCount":5,"integrity":"sha512-1IEodh98znn3olAahdAAzWOkq4/AvH/C3GPj8d1OEuNna8skBIwHfcXh2EBydT9Ri4Jqxgh4AX/xv6dRQ92Iig==","signatures":[{"sig":"MEUCIH1giwqmoQn5J/0Ym5JkvwEs0SxcRlXJUw68evFiTdEFAiEA9LrFBpctfeZDrG44WZXt05IVtKN74DovpDBZ4FMnFug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6983050},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.1.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/e06bd7460f4c47f3c27cfe0149f47101/axnic-pi-extension-settings-0.2.0-rc.1.tgz","_integrity":"sha512-1IEodh98znn3olAahdAAzWOkq4/AvH/C3GPj8d1OEuNna8skBIwHfcXh2EBydT9Ri4Jqxgh4AX/xv6dRQ92Iig==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.1_1776356862036_0.15858096352333373","host":"s3://npm-registry-packages-npm-production"}},"0.1.2-rc.1":{"name":"@axnic/pi-extension-settings","version":"0.1.2-rc.1","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.1.2-rc.1","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"44ddb0e76405216ec7d562e47f3559b66599da4a","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.1.2-rc.1.tgz","fileCount":5,"integrity":"sha512-7fH9cWH1nZjnSoIfEJiUZzfKM98s2tFM5CbC1lW4chqsat9yAfgXzsgZBwA8NLfW5e4nxxgWLk4wramXVwMShQ==","signatures":[{"sig":"MEQCIGCiUV+QEs9e8f2EJo4QsCo7CN4MfC28flJlv6WJFcUcAiBGV/WuumS6wLhqKOCoGF9g3J3+oTKckn8r0X80TRBUow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.1.2-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6997151},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.1.2-rc.1.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/27af3c873953a5166c62eda9572b643c/axnic-pi-extension-settings-0.1.2-rc.1.tgz","_integrity":"sha512-7fH9cWH1nZjnSoIfEJiUZzfKM98s2tFM5CbC1lW4chqsat9yAfgXzsgZBwA8NLfW5e4nxxgWLk4wramXVwMShQ==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.1.2-rc.1_1776369321246_0.19205552860420183","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.2":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.2","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.2","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"d948e9084019b7f2060d5b9cbdc82c69e6fe4d2f","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.2.tgz","fileCount":5,"integrity":"sha512-IyC5YdOQGl3+k8F27+XRQh8ck0RGmCCD1as6J5imWCrQI571rvev4Vc4KfsEFakOgMzVgpyLd7pcYxRkyUtg3w==","signatures":[{"sig":"MEUCIEFNtCIxLrPbFcLrKWICw4ZOXT4o9B1f0dk5E9m0SqLMAiEAkJrkhr1PHpvqfevWExOwWo7LMSZ0q0gPDo0WHrQD0h8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6997151},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.2.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/6d737f622962ab6983ce18b10ddb29ed/axnic-pi-extension-settings-0.2.0-rc.2.tgz","_integrity":"sha512-IyC5YdOQGl3+k8F27+XRQh8ck0RGmCCD1as6J5imWCrQI571rvev4Vc4KfsEFakOgMzVgpyLd7pcYxRkyUtg3w==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.2_1776369543406_0.8075577689534261","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.3":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.3","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.3","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"a8d86526fdca60b7764aff5761a3ffa5c2e1174b","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.3.tgz","fileCount":5,"integrity":"sha512-SGHHPX2eCtu83KThlwlZfiyHI6pwAVEjHyTJhtkFpJlQ/QCk7CX4aMc9FXDbqcXdPzDUeOMio1kmJbpE3LSwGg==","signatures":[{"sig":"MEYCIQD/MX5mFdI6hSRo+Kagce/CfY5idhwe5sRaTBuwNycKbQIhALJQZTJSpckcFlWpbwR8cAtkmUhF2bsC9brispJkNTni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6997215},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.3.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/a89872b4335ccde97df66bc4992e5449/axnic-pi-extension-settings-0.2.0-rc.3.tgz","_integrity":"sha512-SGHHPX2eCtu83KThlwlZfiyHI6pwAVEjHyTJhtkFpJlQ/QCk7CX4aMc9FXDbqcXdPzDUeOMio1kmJbpE3LSwGg==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.66.1","@mariozechner/pi-coding-agent":"^0.66.1"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^5.9.3","@types/node":"^20.19.39","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.3_1776371704797_0.7318783411631935","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.4":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.4","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.4","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"57f3bb9cd559d5b7a6608602fe0a5c308913322d","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.4.tgz","fileCount":5,"integrity":"sha512-SRD3Q3uQ1U1cYWg2GNnw5fcunr3AUfcPSOePtkCF7S8IPYbDlVaEEIihks3JrH2LdnzzFy+z0NDKacknNDm7lA==","signatures":[{"sig":"MEUCIFLIOb8DR9rDczDQwUjitda4oLXpw6YX8HV9+qhVJWLbAiEAvmvRCwkejqQK2PxFdOg1adOOHJ8u9BeyuSLSWi/NGgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7034437},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.4.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/57039e2c7207066ca379f029c74f0e5c/axnic-pi-extension-settings-0.2.0-rc.4.tgz","_integrity":"sha512-SRD3Q3uQ1U1cYWg2GNnw5fcunr3AUfcPSOePtkCF7S8IPYbDlVaEEIihks3JrH2LdnzzFy+z0NDKacknNDm7lA==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.67.67","@mariozechner/pi-coding-agent":"^0.67.67"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.6.0","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.4_1776466163243_0.9977833011550428","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.6":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.6","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.6","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"bf391f013e03ddd989df8ff59f1a2355c23b5f1e","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.6.tgz","fileCount":5,"integrity":"sha512-uS5PrxLzbb9x2Z7tTvuwmPfAynrKvfvq7uM1wMQ9BgP/EDA1+x9h4tjN+QLHZ+NKsOpDfZCx+T+BoGJmtEvEVQ==","signatures":[{"sig":"MEUCIQCEL5YeCeuXL8Q9PPcJDhG59II16FotCWoSfL2duWGHkgIgQ11Gf5qW/uYu62PhSsOzZcGVY4D7oL4b4SV3lQ225GE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7034437},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.6.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/09a901ecbdbbfee96fad8ef40b755a90/axnic-pi-extension-settings-0.2.0-rc.6.tgz","_integrity":"sha512-uS5PrxLzbb9x2Z7tTvuwmPfAynrKvfvq7uM1wMQ9BgP/EDA1+x9h4tjN+QLHZ+NKsOpDfZCx+T+BoGJmtEvEVQ==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.67.67","@mariozechner/pi-coding-agent":"^0.67.67"},"_hasShrinkwrap":false,"devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.6.0","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.6_1776504983132_0.9459492835337002","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.7":{"name":"@axnic/pi-extension-settings","version":"0.2.0-rc.7","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"author":{"name":"axnic"},"license":"Apache-2.0","_id":"@axnic/pi-extension-settings@0.2.0-rc.7","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"30544df1bea998a9576c30145eb95d27a30094a6","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0-rc.7.tgz","fileCount":5,"integrity":"sha512-Xr5rCJEoEgcDtJO9BDaur7hJEzy1io2vgSDY5q/LRg1pXI/700WkN8W17KY7xUbfshImrX5QUsE42+VplprNJg==","signatures":[{"sig":"MEYCIQCcrB+RiNXO/kTPtSom8+F8Hw4ifxpQBA1jLwuViDDwCQIhALEHIT0tfvQGfX5KdgGOJyrqOiiZqTighpSJCN2OQle9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0-rc.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7034437},"main":"dist/index.js","_from":"file:axnic-pi-extension-settings-0.2.0-rc.7.tgz","engines":{"node":">=24"},"exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"mise run lint","test":"vitest run","build":"mise run build","clean":"rimraf dist","lint:fix":"mise run lint:fix","build:all":"pnpm run build:extension && pnpm run build:sdk","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","typecheck":"tsc --noEmit -p tsconfig.json","test:watch":"vitest","build:extension":"node build.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"_resolved":"/tmp/62ccc9d00e75c6392057b372b8d2e36c/axnic-pi-extension-settings-0.2.0-rc.7.tgz","_integrity":"sha512-Xr5rCJEoEgcDtJO9BDaur7hJEzy1io2vgSDY5q/LRg1pXI/700WkN8W17KY7xUbfshImrX5QUsE42+VplprNJg==","repository":{"url":"git+https://github.com/axnic/pi-extension-settings.git","type":"git"},"_npmVersion":"11.12.1","description":"Centralized settings panel for pi extensions.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^15.0.12","marked-terminal":"^7.3.0","@mariozechner/pi-tui":"^0.67.67","@mariozechner/pi-coding-agent":"^0.67.67"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"trunk":"latest","rimraf":"^6.1.3","vitest":"^4.1.4","esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.6.0","@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-extension-settings_0.2.0-rc.7_1776982660821_0.9690784309468554","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@axnic/pi-extension-settings","version":"0.2.0","description":"Centralized settings panel for pi extensions.","author":{"name":"axnic"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/axnic/pi-extension-settings.git"},"homepage":"https://github.com/axnic/pi-extension-settings#readme","bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"dependencies":{"@mariozechner/pi-coding-agent":"^0.67.67","@mariozechner/pi-tui":"^0.67.67","marked":"^15.0.12","marked-terminal":"^7.3.0"},"main":"dist/index.js","exports":{".":{"import":"./dist/index.js"},"./package.json":"./package.json"},"devDependencies":{"@commitlint/cli":"^20.5.0","@commitlint/types":"^20.5.0","@types/node":"^25.6.0","esbuild":"^0.28.0","rimraf":"^6.1.3","trunk":"latest","typescript":"^6.0.3","vitest":"^4.1.4"},"pi":{"extensions":["./dist/index.js"]},"engines":{"node":">=24"},"scripts":{"build":"mise run build","build:extension":"node build.mjs","build:sdk":"pnpm --filter @axnic/pi-extension-settings-sdk run build","build:all":"pnpm run build:extension && pnpm run build:sdk","clean":"rimraf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit -p tsconfig.json","lint":"mise run lint","lint:fix":"mise run lint:fix"},"_id":"@axnic/pi-extension-settings@0.2.0","_integrity":"sha512-J9TfmtSxZEENOSKkoCaITyDytQouVwsM6HV3UyZVEhMMyDcos/mZ0MDyFrGKMtebolRtVgDWvHrxL47XZZKvsg==","_resolved":"/tmp/a5561058a57f96eaca9b59804ae317d1/axnic-pi-extension-settings-0.2.0.tgz","_from":"file:axnic-pi-extension-settings-0.2.0.tgz","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-J9TfmtSxZEENOSKkoCaITyDytQouVwsM6HV3UyZVEhMMyDcos/mZ0MDyFrGKMtebolRtVgDWvHrxL47XZZKvsg==","shasum":"3d5a5245553203667d2bcfacf0b3b7e530665456","tarball":"https://registry.npmjs.org/@axnic/pi-extension-settings/-/pi-extension-settings-0.2.0.tgz","fileCount":5,"unpackedSize":7034432,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axnic%2fpi-extension-settings@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDoD8jIN6bzI+DlIvuFwLq60P7z1jbCx+VITgQ/3NobLgIgGpL4j80fyntMvDKWVvM7XsUoaKOt+WFYaX8LWGnciY0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbff5a75-0528-4f23-82be-8261d085ca34"}},"directories":{},"maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-extension-settings_0.2.0_1776985488435_0.8472813802657786"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T22:51:35.542Z","modified":"2026-04-23T23:04:48.954Z","0.0.0":"2026-04-12T22:51:35.831Z","0.0.2-rc.2":"2026-04-14T17:42:26.777Z","0.0.2-rc.3":"2026-04-14T18:02:30.006Z","0.0.2-rc.4":"2026-04-14T18:07:55.643Z","0.0.2-rc.5":"2026-04-14T18:21:27.283Z","0.0.2-rc.6":"2026-04-14T18:48:14.360Z","0.0.2":"2026-04-14T19:42:09.125Z","0.0.3-rc.1":"2026-04-14T19:52:43.626Z","0.1.0":"2026-04-14T20:34:40.078Z","0.1.1":"2026-04-14T20:48:20.789Z","0.2.0-rc.1":"2026-04-16T16:27:42.311Z","0.1.2-rc.1":"2026-04-16T19:55:21.465Z","0.2.0-rc.2":"2026-04-16T19:59:03.597Z","0.2.0-rc.3":"2026-04-16T20:35:04.998Z","0.2.0-rc.4":"2026-04-17T22:49:23.454Z","0.2.0-rc.6":"2026-04-18T09:36:23.327Z","0.2.0-rc.7":"2026-04-23T22:17:41.060Z","0.2.0":"2026-04-23T23:04:48.667Z"},"bugs":{"url":"https://github.com/axnic/pi-extension-settings/issues"},"author":{"name":"axnic"},"license":"Apache-2.0","homepage":"https://github.com/axnic/pi-extension-settings#readme","keywords":["pi-package","pi","pi-extension","settings","configuration","extension"],"repository":{"type":"git","url":"git+https://github.com/axnic/pi-extension-settings.git"},"description":"Centralized settings panel for pi extensions.","maintainers":[{"name":"anicolaie","email":"zt5w54gaz@mozmail.com"}],"readme":"<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/axnic/pi-extension-settings/main/docs/assets/banner.dark.png\" />\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/axnic/pi-extension-settings/main/docs/assets/banner.light.png\" />\n    <img src=\"https://raw.githubusercontent.com/axnic/pi-extension-settings/main/docs/assets/banner.light.png\" width=\"1100\" alt=\"pi-extension-settings banner\" />\n  </picture>\n</p>\n\n<h1 align=\"center\">pi-extension-settings</h1>\n\n<p align=\"center\">\n  A centralized settings panel and type-safe SDK for pi extensions.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/README.md\">Documentation</a> ·\n  <a href=\"https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/getting-started.md\">Getting started</a> ·\n  <a href=\"https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/examples/README.md\">Examples</a> ·\n  <a href=\"https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/reference/api.md\">SDK reference</a>\n</p>\n\n---\n\n- [Why](#why)\n- [Features](#features)\n- [Install](#install)\n- [UI — the settings panel](#ui--the-settings-panel)\n- [For extension authors](#for-extension-authors)\n- [Documentation](#documentation)\n- [Project layout](#project-layout)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Why\n\nEvery pi extension eventually needs settings. Without a shared framework, each one re-invents storage, validation, UI, and change listeners — and the TypeScript types drift from the on-disk format over time.\n\n`pi-extension-settings` solves this once. You declare a schema; the framework gives you typed accessors, validation, a rendered TUI panel, and live change events.\n\nNo UI code. No custom storage. No hand-rolled types.\n\n## Features\n\n### For users\n\n- **Unified settings panel** — Browse and edit settings from all installed extensions in one place. Open it with `/extensions:settings`.\n- **Keyboard-first** — Navigate, search, inline-edit, reorder, and delete without leaving the keyboard.\n- **Live save** — Every confirmed edit persists immediately, and other extensions react in real time.\n\n### For extension authors\n\n- **Type-safe accessors** — `ExtensionSettings<S>` exposes `get()`, `set()`, `onChange()`, and `getAll()`, all inferred from your schema at compile time.\n- **Declarative schema builders** — One call to `S.settings({...})` covers defaults, validation, transforms, autocompletion, and display format — per setting.\n- **Rich node types** — Text, Number, Boolean, Enum, List (structured rows), Dict (key/value maps), and nestable Sections.\n- **43 built-in hooks** — validators (`v.*`), transforms (`t.*`), completers (`c.*`), and display functions (`d.*`), composable via `v.all` / `v.any` / `t.pipe` / `t.compose`, and more.\n\n## Install\n\nRun one of the following from inside pi:\n\n```sh\npi install npm:@alnic/pi-extension-settings      # recommended\npi install git:github.com/xunleii/pi-extension-settings@v0.0.1\n```\n\n> **Note** — The order of extensions in your `packages` list does not matter; pi resolves dependencies automatically.\n\n> **Warning** — The `git:` install method has not been fully tested. Extensions that depend on this SDK require the npm package at runtime; the git install may not satisfy that requirement correctly.\n\nRestart pi. The extension registers the `/extensions:settings` slash command on startup.\n\n## UI — the settings panel\n\nOpen the panel with:\n\n```text\n/extensions:settings\n```\n\nThe panel aggregates settings from every registered extension into a single tree view.\n\n### Layout and navigation\n\n```text\n─────────────────────────────────────────────────────────────────────────────\n>\n\n→[-] pi-extension-settings\n  ├ [-] behavior\n  │  └ start-in-search-mode  false •\n  └ [-] controls\n     ├ reset-to-default      r\n     ├ collapse-expand       space\n     ├ collapse-all          shift + space\n     ├ reorder-item-up       shift + up\n     ├ reorder-item-down     shift + down\n     └ delete-item           d\n [-] pi-welcome\n  ├ gradient-from         ■ #ff930f\n  ├ gradient-to           ■ #fff95b\n  └ tips                  5 items configured\n\n(10 settings · 2 sections)\n\n[extension] pi-extension-settings (7 settings)\n\n<space> collapse/expand · <enter> to enter section · </> search · <esc> cancel · <shift+space> collapse all\n```\n\n- `→` marks the current cursor position; use `↑`/`↓` to move.\n- `•` next to a value means it differs from the schema default (modified).\n- `space` — collapse or expand a section.\n- `enter` on a section header — scope the view to that extension only; `esc` to return.\n- `/` — open search; results filter and highlight as you type.\n- `r` — reset the selected setting to its default.\n- `d` — delete an item from a list or dict.\n\n### Inline validation\n\nEditors validate on every keystroke. A failing validation blocks the save and shows the reason inline:\n\n```text\n→  api-url  https://not a url█\n            ✖ must be a valid URL\n```\n\nA passing edit saves immediately on `enter` and the cursor returns to the tree.\n\n---\n\nA short asciinema demo showing navigation, inline editing, and list operations will be available in `docs/` once recorded.\n\n## For extension authors\n\n### Getting started\n\nAdd `pi-extension-settings` as a peer dependency in your `package.json` — it is provided at runtime by the installed extension, but you need it locally for types and SDK imports during development:\n\n```json\n{\n  \"peerDependencies\": {\n    \"pi-extension-settings\": \"*\"\n  },\n  \"devDependencies\": {\n    \"pi-extension-settings\": \"*\"\n  }\n}\n```\n\nThen declare a schema and instantiate `ExtensionSettings`:\n\n```ts\nimport type { ExtensionAPI } from \"@mariozechner/pi-coding-agent\";\nimport { ExtensionSettings, S, v, t } from \"pi-extension-settings/sdk\";\n\nconst schema = S.settings({\n  \"api-url\": S.text({\n    description: \"API base URL\",\n    default: \"https://api.example.com\",\n    validation: v.url(true),\n    transform: t.normalizeUrl(),\n  }),\n  theme: S.enum({\n    description: \"Color theme\",\n    default: \"dark\",\n    values: [\"dark\", \"light\", \"system\"],\n  }),\n  enabled: S.boolean({\n    description: \"Enable extension\",\n    default: true,\n  }),\n});\n\nexport default function myExtension(pi: ExtensionAPI) {\n  const settings = new ExtensionSettings(pi, \"my-extension\", schema);\n\n  // Fully typed reads — type inferred from the schema.\n  const url = settings.get(\"api-url\"); // string\n  const on = settings.get(\"enabled\"); // boolean\n\n  // Fully typed write — transform runs before save.\n  settings.set(\"theme\", \"light\");\n\n  // React to user edits made from the panel (or programmatic set() calls).\n  settings.onChange(\"theme\", (next) => applyTheme(next));\n}\n```\n\nThe settings panel UI is generated from your schema automatically — no UI code required.\n\n### Guidelines\n\n> **Keys must not contain `.`** — dots are reserved for section path separators (e.g. `appearance.theme` is the key `theme` inside the `appearance` section). Use kebab-case for multi-word keys (`api-url`, `font-size`).\n\n> **Use a stable extension identifier** — the string passed as the second argument to `ExtensionSettings` is your storage namespace. Renaming it strands previously saved values.\n\n> **Do not store secrets** — `~/.pi/agent/settings.json` is plain text. Use environment variables or a system keychain for API keys and tokens.\n\n> **Keep descriptions short** — the 128-character limit on `description` is enforced at schema construction time (`S.settings()` throws `DescriptionTooLongError` immediately). If you provide a `documentation` field, it must be at least 64 characters (throws `DocumentationTooShortError`); for anything shorter, omit it and rely on the inline `description` alone.\n\n### Further reading\n\nThe SDK documentation covers everything else in depth:\n\n| Topic                                                | Page                                                                                 |\n| ---------------------------------------------------- | ------------------------------------------------------------------------------------ |\n| Full Getting Started walkthrough                     | [sdk/docs/getting-started.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/getting-started.md)                         |\n| All node types (`S.*`)                               | [sdk/docs/concepts/schema-builder.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/concepts/schema-builder.md)         |\n| Lifecycle, `get` / `set` / `onChange` / `getAll`     | [sdk/docs/concepts/extension-settings.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/concepts/extension-settings.md) |\n| All 43 hooks (`v.*`, `t.*`, `c.*`, `d.*`)            | [sdk/docs/hooks/README.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/hooks/README.md)                               |\n| Progressive examples (weather widget → AI assistant) | [sdk/docs/examples/README.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/examples/README.md)                         |\n| Full API reference                                   | [sdk/docs/reference/api.md](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/reference/api.md)                             |\n\n## Documentation\n\n| Resource                                      | Audience          | What's inside                                                              |\n| --------------------------------------------- | ----------------- | -------------------------------------------------------------------------- |\n| [SDK guide](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/README.md)             | Extension authors | Getting started, concepts, hooks, and the full API reference               |\n| [SDK examples](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/examples/README.md) | Extension authors | Three progressive examples: weather widget → code formatter → AI assistant |\n| [API reference](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/reference/api.md)  | Extension authors | Every exported symbol with its signature                                   |\n| [Hooks reference](https://github.com/axnic/pi-extension-settings/blob/main/sdk/docs/hooks/README.md) | Extension authors | All 43 validators, transforms, completers, and display functions           |\n| [Design spec](https://github.com/axnic/pi-extension-settings/blob/main/docs/DESIGN.md)               | Contributors      | Panel architecture, mockups, and behavior specs                            |\n| [Schema analysis](https://github.com/axnic/pi-extension-settings/blob/main/docs/ANALYZE.md)          | Contributors      | Runtime schema introspection API                                           |\n| [SDK internals](https://github.com/axnic/pi-extension-settings/blob/main/docs/SDK.md)                | Contributors      | Event protocol, registry, storage layer                                    |\n\n## Project layout\n\n```text\npi-extension-settings/\n├── index.ts                   Extension entry point (command + event wiring)\n├── sdk/\n│   ├── index.ts               Public SDK surface\n│   ├── docs/                  Full SDK documentation\n│   ├── examples/              Runnable example extensions\n│   └── src/\n│       ├── core/              Schema, ExtensionSettings, nodes, errors\n│       └── hooks/             43 hook implementations\n├── src/\n│   ├── settings.ts            Own-settings schema (dog-fooding the SDK)\n│   ├── core/                  Registry and storage\n│   └── ui/                    Panel, model, renderer, input, state\n└── docs/                      Banner, design spec, SDK internals\n```\n\nThe repository is split into two distinct layers:\n\n- **Extension** (`index.ts`, `src/`) — the pi extension itself. It registers the `/extensions:settings` slash command, owns the TUI panel, and manages the central registry that aggregates schemas from all participating extensions.\n- **SDK** (`sdk/`) — the public library that other extensions import. It is completely independent of the panel; it exposes the schema builders, the `ExtensionSettings` accessor, and all 43 hooks. The SDK communicates with the extension at runtime via pi's event bus.\n\nThis separation means you can use the SDK in your extension without caring about how the panel is implemented — and the panel can evolve without breaking the SDK's public API.\n\n## Contributing\n\nSee [CONTRIBUTING.md](https://github.com/axnic/pi-extension-settings/blob/main/CONTRIBUTING.md) for local setup, how to register the extension with pi during development, and how to run the tests.\n\n## License\n\nApache 2.0 — see [LICENSE](https://github.com/axnic/pi-extension-settings/blob/main/LICENSE).\n\n---\n\n<sup>This project was vibe-coded with AI assistance (Claude, GPT-5, Gemmini) and reviewed by the maintainer before publishing.</sup>\n","readmeFilename":"README.md"}