{"_id":"pi-fovea","_rev":"70-53606da26b0d7b42a359363f591fb20c","name":"pi-fovea","dist-tags":{"latest":"0.31.3"},"versions":{"0.1.0":{"name":"pi-fovea","version":"0.1.0","license":"MIT","_id":"pi-fovea@0.1.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"1e7d544a31533d11c2dc502e669b7c4e1313369a","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.1.0.tgz","fileCount":20,"integrity":"sha512-Cp0g1197f4eHh3f16739ih528ODETS0w/sKbC2uq1seRBI26divWieVjzbRIRLlqRiOdvPkGsnbyO+SUCFqkBA==","signatures":[{"sig":"MEUCIAenvK+Fwi2taxyjYItCnDrshy6lhzMAKRi8/MkDgojxAiEAsdtokl6dbrd/gCELpLHj9lSXg7KiT0wqg99ACVRp6FA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128838},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"gitHead":"65d1c0ade54a36f8d7b24b4e5c0095e375a94455","scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_npmVersion":"11.17.0","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.1.0_1785989587973_0.4088412389515663","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"pi-fovea","version":"0.1.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.1.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"7358268021621a31702242337df77fd2edaa0c85","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.1.1.tgz","fileCount":21,"integrity":"sha512-zkoyrxWqqb4LihKI9oeqjSdVqBNxDx+NakxKDqvMAdgjalUnlRRZQQyyEasII0A4nVwIkceIC8vfbP4ZM695NQ==","signatures":[{"sig":"MEYCIQD9n/WBiXnztKT5jEAkasZmMqsd5dJ40XkToBnd1W41dwIhAM83LwL1/dy6KOzHTBu4rX2bJZWgrOJ3FhDkaEjxGbKv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132299},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.1.1_1785989712670_0.24460411710655872","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"pi-fovea","version":"0.1.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.1.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"f98bf289f9c93ad4dbc91928f89b06be64f3cc8a","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.1.2.tgz","fileCount":21,"integrity":"sha512-fJvwMtkHH0PkpmHmo7w2b1CAWhKE0/t7DJm1Y/5C/ucv6hik+/aEmpcjlfuWGBpIls4eif8ZIVcWMiJ1bTURhg==","signatures":[{"sig":"MEUCIQDgPp+Fchu7Uwo4dHqK6ZDBRRVAXBTRRcLwmkXMkxfIoQIgYd+xZZB40HJdTEhAMiLMTlrYHjRRNSdeiHemF6bWfXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134879},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.1.2_1785991461334_0.5793387440381874","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pi-fovea","version":"0.2.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.2.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"6964c8ac0d5f270414af0aa78aab01d33a3eafae","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.2.0.tgz","fileCount":21,"integrity":"sha512-RoPqLELbxue6WTA+7paLBn5bj6fcOWW9mNv2yboYWUpxPQXOaTdUHX/s9Ya3VKtz+iMzTihoQjkmxk0p4ZngXQ==","signatures":[{"sig":"MEYCIQC7o6p2ynHC/wtagRwBMy9Izbz/7kc5cJ1ocfFjSFAqaAIhAJpANOqIH1fR8h/9aDHyJDbECUKQ8ll+q11t1F5OLHJh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146950},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.2.0_1785992881230_0.3339607602213781","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pi-fovea","version":"0.3.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.3.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"023f038d3f6d86013e638a59ae16e568eee0c341","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.3.0.tgz","fileCount":22,"integrity":"sha512-QGOg8X8AJPGyswoxpVQ45Wh1BQvflHJZvmUhyWOb+NLchEVX3Ots5NwBfJT+HWPJbvuotsS+kU2jkSmnqdgDWg==","signatures":[{"sig":"MEUCIF5esxtorazJZUw8Yb5x4Z3a1cL24C4YiECVzGZtO5YtAiEA3FAGcHgnSfxQmc+pNqrfjwG+9J/fmwcJk5py7DJDu14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162654},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.3.0_1785996413263_0.981236741394792","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"pi-fovea","version":"0.3.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.3.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"08352b643dd1f4bf77702fd7c7a35f998dc22140","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.3.1.tgz","fileCount":22,"integrity":"sha512-Pe9w30Ds/61/8YRa0CiuHfPJske1xqiTKaFYjxTTZmxEO40KGN6y5etA0bb2tf59+8RU6ntwO9Cs9E1r79Gu7w==","signatures":[{"sig":"MEUCIQClc7557dxo5BWpfi18XvBAO+20Ez8kLz9ln/BbLj6j+QIgeLHGhi0ipxOy6tCWxq+1qk++WEAX+xXMU4yfULNiZ6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162339},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.3.1_1785998837237_0.29876757900605844","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"pi-fovea","version":"0.3.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.3.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"568c92ec6e3977ae94acc26c43b51883dc5f3a28","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.3.2.tgz","fileCount":23,"integrity":"sha512-1iWPXt56Hew+1NgZnW8kFRrLXVnx0hyU7yHWmeEmfPL/EKl7z3vTt2IbV/t21w6vpxIXbViDcPd4EXm2TAyk1w==","signatures":[{"sig":"MEYCIQC7mlnaIvbavXdXpAtqt4/hwfLLwivvuogoznO/eeOGWwIhAJssyAamRXaRTVNls7e5yolqidOWbobnT+xFdjqM9Yiz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166845},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.3.2_1785999219291_0.7433325978673833","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"pi-fovea","version":"0.3.3","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.3.3","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"f1f2698b0ca712e1747593787e364315febabe1e","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.3.3.tgz","fileCount":23,"integrity":"sha512-QVIBg6dTN3U07zKxY7Xq9lg/F4X0iNkd+oTuqlgYv/nBakzEcCDfV0rgnkO6mHq7ImUIM2X6EybD2Tcv1gumvQ==","signatures":[{"sig":"MEYCIQDCyZKwii0bDcVQ4UIDmWMANvfgXgtBvnRndrnYKWlgHwIhAM2Y0BZXqVQtEomGG3ha7bJz4iGPxfyI/6x6kEhHGVeW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172813},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.3.3_1786001467245_0.24986538682228843","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pi-fovea","version":"0.4.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.4.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"7f1ab6de9d6ff2d66675100becca128a9c957ddc","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.4.0.tgz","fileCount":23,"integrity":"sha512-VGLrxqALVpenhjmpFa00NPOY+ka26ovpf/F5fUGps0PSgvGk+NtEgROt1JDIFfhUAM8o+h1aE9On8ZhYhDWEaQ==","signatures":[{"sig":"MEUCID4qI3GkVMEy1wHSOvsxtCGJLljv/6xoCQmDGDc94eW3AiEA+aMUsz1qvI6g0GROYSs+NdG427pvu/lOmWEhqyQxlmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186671},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.4.0_1786003662667_0.011799498608243919","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"pi-fovea","version":"0.4.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.4.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"b1959b0e651ab68824d6ccb7a40ab8599158508e","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.4.1.tgz","fileCount":23,"integrity":"sha512-M8fr+KMaYHXanJNWg+P4mhIfez3J8UO5UzPWsj3WdNVoaUZq4by2rZe18ChRYaQkZBFzpm1hfXvqDM4+hAxDzA==","signatures":[{"sig":"MEUCIA0s8zs2sr+EdSfBVZ4y0IO9utKycfG8Q4LA2Gf0Bc/CAiEAwryFwPDwxr2rpvEgvbOpO/O3/kE61RuaG+CratoX2QU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205049},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.4.1_1786008171253_0.9935721899817289","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"pi-fovea","version":"0.5.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.5.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"2f1a1235865916584c4406bc2cc0bc674800d0fd","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.5.0.tgz","fileCount":23,"integrity":"sha512-50dRZY4yUNcT8L5DS5SFjmlzf+FtXmam3YTUVl4FrYYmJS+JTYxxpdXQ1mv8rvWa8UMWeCLp1AIoX7GWm9VaNg==","signatures":[{"sig":"MEQCIDRaWqe1KMxqEkyo+WZUETLWaWi3gn+hgNF5BUy+TM6GAiBEjb1xsDimdShOGjl+hSburGl4Nxq8+2JSso32ExeOMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213427},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.5.0_1786012522925_0.851658531847078","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"pi-fovea","version":"0.6.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.6.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"e8d482be1ce12d94981474fad15eed97d943aece","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.6.0.tgz","fileCount":26,"integrity":"sha512-ZAzkmHtxWGrMQ4yP+Ofd1+qp9cGjHQNi/eGPbf5ST8M5/NnK618b/GI1VkCiS6OHcd0EUQC5ktZzKc//a+3l/w==","signatures":[{"sig":"MEYCIQC8ARSJdkXgoWtg6M/Adu6602fMv/DV4EF8sug+rpLfGAIhAMKFCxFB876GsGhCGRpQeWxyHZIHkWZzDtUmExZdTBlQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263891},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"typebox":"^1.0.76"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.83.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-tui":">=0.80.6","@earendil-works/pi-coding-agent":">=0.80.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.6.0_1786021797844_0.7278196090855182","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"pi-fovea","version":"0.6.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.6.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"4b75675e71240120d1d7ceb868d69b27220854aa","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.6.1.tgz","fileCount":26,"integrity":"sha512-56RbKWfAC/bRAotMm9epUJEBtlvohXku57u/Ly2QDJ/zlttqRXjbUAvbNsVZikmSqdi8NtN9BuDLOXbQZlii0g==","signatures":[{"sig":"MEUCIQCmONDUYWeaK4qJBMLwjEshcgwT4c3mY4bEtxmA1yc6WwIgT2KloajQuhH1Da5OWKjMrN/+dP8bgPCcXOnivFQKB5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265017},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.6.1_1786022622314_0.25380263953445104","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"pi-fovea","version":"0.7.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.7.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"bb5124758f1fca31dc86ae43bea401510b9e4bdf","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.7.0.tgz","fileCount":26,"integrity":"sha512-i93BY/g9PvPBNyXmTxnSx1lQGp1Wy+Qo74egOF21dmyRDw2D+n3SGF1P4S16krcie5QdCmOFipPjzuJ/6/jTRw==","signatures":[{"sig":"MEQCIHtJv+QaYPrCwnGUwLHr0CiD5rYUZaZlpHWz3CubCBiKAiBUycncMJCwkvPJrF917vHZa1Pq5mx+nEtMmleBopajzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268633},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.7.0_1786025885534_0.383543484905599","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"pi-fovea","version":"0.7.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.7.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"08361d31d9200beda621c50d62b4e2ffa806edf1","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.7.1.tgz","fileCount":26,"integrity":"sha512-Cp47K3+gAfeFmIYl3JIeCEwBJ7upjyWkcSfkvo+FOmYpqxlofwSJSwCLNsEalhPoN+gVjFsqr0F9hcMQasBK7A==","signatures":[{"sig":"MEUCIQDnIwYOdSoM08iZJPg5/VHYd9SO7CbYErg5cyrabQlYVQIgTNO+aLnpf9v/hi1rqzhZXFGdP49rmCLQQAmjCpWCDMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274048},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.7.1_1786026856224_0.4078311495377107","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"pi-fovea","version":"0.8.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.8.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"cli.ts"},"dist":{"shasum":"b5aa28fdc943778e7332d9365e39a384a1518422","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.8.0.tgz","fileCount":26,"integrity":"sha512-Ujoc4QCEHfouxxdeWJWphRCf8ADEYn5GPK0XIXs6i9Gw3drNoBNDwUGekBW3BtRhfuki5iZ7QXGjigntrTUCLw==","signatures":[{"sig":"MEUCIAMUbwj1ENIARP9uxVzY0vb8BQJzhvufeuXZeWr9n5yXAiEA0SwRGhNvXm180ukhh/N9k4LTEcChi5EJ4/HPMGu1Y5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279007},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.8.0_1786030434013_0.14476265805899557","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"pi-fovea","version":"0.9.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.9.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"c8f8708261c43e78b998a2f5b1bf38b1f87b6089","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.9.0.tgz","fileCount":27,"integrity":"sha512-TOQBGJOJ/XZtWQ7Nfx1cgqkSPKRqeVurr/CHF82/2GDKyB1p0KnJnnyVXBl9WUnYNJzzGQegvrAzQp9ArLWpaQ==","signatures":[{"sig":"MEUCIQC39NvC5rlENF6No4ynLNhDHtalHlfi60d9WVZ/fYaYNQIgeeuhs+vAPTW9gT67bLYWz6bUcKZXeHWYzz5oLEZ0JYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409940},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.9.0_1786032271063_0.10906542389478746","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"pi-fovea","version":"0.9.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.9.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"cefae928e15b9eec5abc427f3f8c7e400751dc8a","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.9.1.tgz","fileCount":27,"integrity":"sha512-J7idaHGMRA/HmwEmvJPglQ3x9do3RIM6Pi+8v+pw/vPPy3WDgH1gty14xxKN6hF7zdqOs86aMPir/VcNx+L1EA==","signatures":[{"sig":"MEUCIQD23jScTvj7pLb0m17hFfvHecf6+UkOb7/9LETWOF8y3AIgaxTlFVN0WY2alv7XECrEucuCjdjrdtD6Vewgq285+dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411569},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.9.1_1786034844329_0.17865146141219057","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"pi-fovea","version":"0.10.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.10.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"6555942c6b56a29580a972e4e63a34bf139a7d59","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.10.0.tgz","fileCount":27,"integrity":"sha512-HQq5JMblgWng/4i9XES2ggMI3ftvOzDvjHaIy9QkxUrrxXFlsO5eto0QBZs0WmQvAZ63Rry2nhuHSUmi8oMiWQ==","signatures":[{"sig":"MEQCIHo76l0MSKA17WL6WXD0of8ZDNeVhZOTfBKfGbzM1jNyAiBoBGIBrQDYMd/udwNVsIIdMAnVzDnVRptZs2ANVVcpdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416725},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.10.0_1786036477043_0.6780063348651295","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"pi-fovea","version":"0.11.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.11.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"696ff8db1ddf95c1063cb6376c1d18d4a41b0b7c","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.11.0.tgz","fileCount":27,"integrity":"sha512-IxDX2taj8Zfv8KGZ9h0IXrrSdMaQarZ954TD4zS35u7qA/nUdU1zpqX0FbnyOCIesW5QvnCRHBKkhbw8hQiZPg==","signatures":[{"sig":"MEUCIHkNbojJQtxEYOLpXhwkuUxZ2rRECwLySRO2u+CnA6swAiEAgwmos5i3lfoUy7Wf2MZRnu+eRomMhppgfvjwr7kvQ9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420836},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.11.0_1786038491931_0.661014188828478","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"pi-fovea","version":"0.11.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.11.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"d510132e7b41576ef46c84f8f9c82759dcfc5388","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.11.1.tgz","fileCount":27,"integrity":"sha512-EfEcXiTTKiuIyf7WIlgTwBuaATSPb9MbAKwMvksQxp4j4ZwTOjyH0FrFZH8aJz+0+vGdCG2TFGvS8rBP3VCiVw==","signatures":[{"sig":"MEUCIAKd2I/ekNq/5AsKbXa3pVsfyn6DnlAU4N+cCQYLQDM0AiEA0381vXJNrl3yZuQkoheBtCH7vqHWh1r2sfVF5SL0axg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420986},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.11.1_1786041807777_0.628380630751866","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"pi-fovea","version":"0.11.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.11.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"0e80b32d9485fbcfbc2c06638f599a684b0ada9b","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.11.2.tgz","fileCount":27,"integrity":"sha512-hG+1p0EGun7kN378NSCTPODs0FHr63HMmVkPJWkidPYNdhrBjPbIckJEe2eCSp54o82ObexHxSFPqp2VkmJPww==","signatures":[{"sig":"MEUCIQDBcoclxYqxzSGull/aYiRjcDyDLgScVkbuHh3mIWZPEAIgKTAboD5WrcZ3AJRhmYqaodRiDW/flnr0egYMF92mIvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421225},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.11.2_1786042091778_0.20773789676980092","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"pi-fovea","version":"0.12.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.12.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"6d98e4f6c132db332edd8b47d787cca18f3f5a48","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.12.0.tgz","fileCount":27,"integrity":"sha512-sVqjjrB826uFwZh+1Qelq3ga66c7+9PiHYhyp/wLgidEzTt+41waqCkl/GoZUYkVljlC1tq4642A0jj0j83JXg==","signatures":[{"sig":"MEYCIQDsU0ECQnL0pEGjjggsqgYVW6OYwUHDDdFNHiWCgdKgHAIhAMBTB0oPnmkhr5qJ99xtNBXwRkQ9i6lkxl1aEW0Rwo0s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425502},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.12.0_1786042371369_0.2823177634720846","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"pi-fovea","version":"0.12.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.12.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"5a7ea1afee3d435ea57593b3096e470ee9e8940f","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.12.1.tgz","fileCount":27,"integrity":"sha512-rogilDv9GoIeQtnTLhxVscaa7H5/HGKu/xCYuIq2bIA9giNPTDTSD+jplZqhNa1ZLccE820cHZrbGDf8ahrTsw==","signatures":[{"sig":"MEYCIQD+dWAzKJPWNXE++hMORuNSneWnF5e7mvSLhodsbIh0SQIhAICaOLNfYCBxNXZOzxR4027N+3J1np6rJ+wNBheUhbZ2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426181},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.12.1_1786043703157_0.6445418214733654","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"pi-fovea","version":"0.13.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.13.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"f7eb9abb509d30d47d169f37ef14b7f4c9990210","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.13.0.tgz","fileCount":27,"integrity":"sha512-kIAtMtWBW7iDUodWagwgWAAZY7DIQog8cnrfNdg1ZGYhar6idynh8qPCMjYG6WcX38XpvCs6vPNxSpCV6HKVng==","signatures":[{"sig":"MEQCIFpfXqBaxx4fgRjGNJrHaFqNBLjX+iOQynpH0g8HJKM3AiA/rp+38Vr3WMC697Mp2/EFTFCZwPSRCpkITQgZTU9HfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434245},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.0","@earendil-works/pi-coding-agent":"0.84.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.13.0_1786088267478_0.5592713554676261","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"pi-fovea","version":"0.13.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.13.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"d11c05956590f3caeaba95654f60d97789800b87","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.13.1.tgz","fileCount":27,"integrity":"sha512-LvTsgS93lOjA6szmYc7X+sCKTqvGy+tFdGVfW25qCJ2xT9xEFbFnVmYC5tEKq9G+U2dk5oDXSbJA4BYECqu5bA==","signatures":[{"sig":"MEYCIQCsBl7fU7UXb88QZXoNuM2ZmCjKPzS8NXfju3U3zYww4QIhANkDfzHbIVEYon45DXFaKDb3iBIfNZT/cya6G0mPL6+d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434245},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.13.1_1786090726788_0.9876914940633674","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"pi-fovea","version":"0.13.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.13.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"42c095571ca603ca01e2fed5cbba91951a01bd2c","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.13.2.tgz","fileCount":27,"integrity":"sha512-GHRoucDg1ilZCZhckVeLZO/oInsyN5U//DTTS/SodScex94dD6OtJ6VQFUG36XqXGLxFARSTrZbYqhUjcsyGzQ==","signatures":[{"sig":"MEUCIQDZkVxK1SX6I9Kr2C+Unh56iS+Xt9DEhuuMLp7lcedBCQIgJGnlAxRs4HLbAxCkg4lupp4d+hJUq608p0AKOZX8wpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435147},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.13.2_1786108143085_0.6047442000123069","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"pi-fovea","version":"0.13.3","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.13.3","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"375688ff1130f81107cacf22510d782953c023c6","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.13.3.tgz","fileCount":27,"integrity":"sha512-7qI21nZL45J3sVDTUiKgK9qwHKfzL3QHAwEE96zhT6CcOaVgC6ARwnybbAxcC4iRlc7kGMW7l+NZVPaoRn5YlA==","signatures":[{"sig":"MEQCIHN13AsTgOoAmKaFH+Cx8poY/kfdKkQ31xDOxktrxmPMAiACnU3WKyNl8FXpp2d/zFqX7FUn1cv/wEUSowl5qzLOcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436851},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.13.3_1786115271653_0.35816937000369187","host":"s3://npm-registry-packages-npm-production"}},"0.13.4":{"name":"pi-fovea","version":"0.13.4","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.13.4","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"bff8a9169ae31f6bbadaa965b1bdffbd89c27771","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.13.4.tgz","fileCount":27,"integrity":"sha512-MCG7mzxBdlvrJKR4EphNVE1ol85IDW8nCJVX3WjPgQbzpZTFDR5uixLkd90Uq7VEJYFUVjXx6vSpimFacGfpQw==","signatures":[{"sig":"MEUCIQDaP0nldFUuA5rVpkX42ra8kJoOy5lkH12EuvGBVPtGBQIgeLVpd+qK1gjhYmoZ+wAxz2+SxP4UdcGV7gz/hckJzdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439673},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.13.4_1786281161020_0.998254126273165","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"pi-fovea","version":"0.14.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.14.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"e22423f2d9d4e4c0a47a5c70ef2a0b6b9296b3d7","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.14.0.tgz","fileCount":27,"integrity":"sha512-RgzVqehLCfF67QPd2Ei3z7d/9mPZEJGywc7BRwWRwMiBHehC+IozonekYrm4BnKqcn64zZRS7gEa/3OPpWr6MA==","signatures":[{"sig":"MEUCIQDswO+n0UOnmjCcAPwiIElNgMq0DR5BqKMd6YjqJSPVQgIgQ4TCO1KJmJALRhD7gbHjcjoU3js/L3tT0v//WWIKq38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446571},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.14.0_1786352133781_0.8998782916089583","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"pi-fovea","version":"0.14.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.14.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"988b62030af1a07540a152787511924dedc9d6e3","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.14.1.tgz","fileCount":27,"integrity":"sha512-mNGQ2afwI6fayoR4UPEr0EnldgE7/oPcBTJUysF1MRJmbp2oWb2Gn6zOpmMMCJrvvVQXRqcswfwS7qopKhwu0w==","signatures":[{"sig":"MEUCIQDCWEscpi1d4/2H9lwRjbwbRyogM+Ou5BxyMFd83GwM6gIgGtodD5IhC53sVM7zZqGYwZniG5N8H7hKATpxq54IZy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":447770},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.14.1_1786359104878_0.9929177648781933","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"pi-fovea","version":"0.14.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.14.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"8078164f35ad1d4aba0985783ef011bae1e24ae2","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.14.2.tgz","fileCount":27,"integrity":"sha512-0dUA7ds3tEHcdp4bdhHmk4sPoXGCBp9YQSu2B4XIsdWl43Trj/FSQ3GCpXbOUgma5TqPphClLcX5WZHTfmQ3lA==","signatures":[{"sig":"MEYCIQDh/cRGddhsK94RfytAU8mbBpRRB/ZUll6wO8JwlNPE2wIhAOacSQB5yKlzJXmi6bpwqUuX3THv4GU1b951HR/lG3/F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":447770},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.14.2_1786362533175_0.47909391082941477","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"pi-fovea","version":"0.14.3","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.14.3","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"499836e1c1107d66989d790c4e4c786f1bcd7151","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.14.3.tgz","fileCount":27,"integrity":"sha512-fjwTDbALUTrHh9U3FcxyGdDFd4v5e65UTQ4UrGv/oudcoWZgOgylPb8bkpMMx6VBErQC6y02s0qGj+/fLFds5Q==","signatures":[{"sig":"MEUCIAm6hKrpqzvXKwsL2HAHcrrYrdaxs8BtOmpljnY4K+djAiEA3hHsuWE5ojHQMFjWQyJeDqWd7fE2hdME38Dk07w9cLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448532},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.14.3_1786418042711_0.9770895342910884","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"pi-fovea","version":"0.15.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.15.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"1774b8f720f9641f6899c6edd888f24850413c78","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.15.0.tgz","fileCount":27,"integrity":"sha512-MEOCyGN1hanaY1ji+SXYd0pxp/8S0oIkK43ei6WVmS4pK0z7yxmYELOMElcmUWHfmm0srBw6+sHB49C9lwi2jw==","signatures":[{"sig":"MEYCIQC97tZMZYZl/Xyvx64x//JaEuPlDvt4ryGowWalUAcHXwIhANoHxy9rU8v8JIK85aJTSc9Si/2JFhp/GSNWagfGiW2p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":459250},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.15.0_1786533959177_0.21444205242142522","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"pi-fovea","version":"0.15.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.15.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"34498cd833ce38da835847bd99b309766c50c335","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.15.1.tgz","fileCount":27,"integrity":"sha512-DDwmlr8duSOm352yXqjx3/6UCG/VGJaygZTXtZFYuNxEby+kYyn/8rNPsKFL8wqrEg1YfJtIM2pf4pN14UeO1A==","signatures":[{"sig":"MEYCIQCIUV827xTXeZoSob0+QaA/HDuV3LUFofZVW9HvAYS/bAIhAIJvCRsxKx46EPREPsA09aKw2eOQenaymFMk/kvFpE02","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464422},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.15.1_1786558548040_0.5764529204184177","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"pi-fovea","version":"0.16.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.16.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"faf8b7ce8b2f2a6c5583a0200524583c05b1a302","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.16.0.tgz","fileCount":27,"integrity":"sha512-RdP/23D/68Iyg4g1tIYRNXY3rJdiDa+ViGdobLR6noG5gcvcWxglKQDczeGfByY04Ze1iFnXyipIKd65E/iHUw==","signatures":[{"sig":"MEUCIQCR7b/CjdLj956/XAQ72syB6pGIwuwVnsu6qexY3OFHvwIgFvYEp8d1WFf7eMclsaipVEjXGazWfFv/K2vRRHgSM3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464464},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.16.0_1786591946949_0.1324811992497954","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"pi-fovea","version":"0.16.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.16.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"d867d52923976da3a8263b4162a52aabd689c5d7","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.16.1.tgz","fileCount":27,"integrity":"sha512-3wYlmn/0VAKHj9Bcj74cqhLXaglkARcojNxfhY8tVPkBeCaeH2ubw8TiA2qDBwhQKfxvLf8URZ2HeTp1OoSPEg==","signatures":[{"sig":"MEYCIQC3NSeiI6cx8ORIXd4hAiMGukNwqOrn+C5EFarlydxZUgIhANrvgsJcOZyeepwYCkFJ9eIS0apanQ/uzWEPQa1WuX3F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464464},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.16.1_1786752867612_0.34319247713293644","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"pi-fovea","version":"0.16.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.16.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"fc83cac433637f154ce01631ca876c071ff16c9e","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.16.2.tgz","fileCount":29,"integrity":"sha512-v0jtp8RIWIdM3FtSuH/+/5WkoZv37UrNMrivCYhhc2sdggXdKML+I0ueeDw5fgt9UN4px1koVyuSyXf0OahPKw==","signatures":[{"sig":"MEYCIQCTSUeAtW1DuZ1KI6GQOFZLxdUKj7Yonzaa8f3/37z5QwIhANL+A1is81ueufgk4tY6g+9Dj9jeM9wxWL3eSA4PD8SF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465866},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.16.2_1786755769875_0.895935064418516","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"pi-fovea","version":"0.17.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.17.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"0da08ebfff92313d35fc59139782db840f00b48f","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.17.0.tgz","fileCount":30,"integrity":"sha512-OrQ2JmvRp4WaIDV+r+rNe+i+zt7OGWvXGzee2yvkxNEnrkyj6mg5+CrsByhGNrcej603pRNxXv94mdOTCBWyIg==","signatures":[{"sig":"MEUCIGlKWw6i794KbKqNHSTW4iuuZBwvKWKkhxTbi4h2foP2AiEA6vvVtgdKC8kbBhNN0Co6yL3kRN8h/WI/nriDxRBYKM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475259},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.17.0_1786790460571_0.8367695250146612","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"pi-fovea","version":"0.17.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.17.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"abcbbd9cbe952d244989ba70bab5fc6ac0a60fd2","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.17.1.tgz","fileCount":30,"integrity":"sha512-mhRZO8X8IVyAdwyP0VL/7kD2R1gX2zkVXLNbRaSK9gVCB++STjNjuEKzP7m9RpBfHRayrJmZKWuB/bTUuZ9jIA==","signatures":[{"sig":"MEQCIClmqXA33UygTAf2hZWObWFU6pl0lxfg6f1JpU0S3ZrsAiBRyFILJVo/ZtQtKIZSLkanlIF33YS3fpu8M7D2LEb1gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495671},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.17.1_1786887599263_0.014335073319293734","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"pi-fovea","version":"0.18.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"9ba77ef1932aedf98be136bbbd5ca385bbaf721f","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.0.tgz","fileCount":30,"integrity":"sha512-FlSShkZ6H6oncZV/iFnO7W2ghSvUkspj+Hd2yX4CTh3xCTZxMGF/BIK3lR4RgAq/v6jb9t+HuowYdntKsZgdPg==","signatures":[{"sig":"MEUCIQDkMR8KqoqUTCk/xoDJ7l83KzNwrK9X9GA018ajaWdmVwIgBcE1bBIq4BKfmdnEwROP5HUxTk1GEcGhlb+D5cuih+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503268},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.0_1786912887066_0.9347293330677133","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"pi-fovea","version":"0.18.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"0f5f33cc5f15844c64ea2abf422337072a82c9cf","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.1.tgz","fileCount":31,"integrity":"sha512-Qu7MTCWswGdctkYkoothsa4Vul0QnyH535tUxchLNspYFMCUbOY4gNDFlPy6113UqOdVrUMY1Hi1XBSzDVTicg==","signatures":[{"sig":"MEYCIQCGpGMfuD7go419wZpUmz0Is6D7Kg+qnKpEFpDxeyfPwgIhAJ2oy/DybsdW+AzvUvanHQjC5zU03lNRfC0s/lG2jhWs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504376},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.1_1787328596766_0.15340555147056834","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"pi-fovea","version":"0.18.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"33c6a226cc1a209605f126a0c55551f261f610b8","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.2.tgz","fileCount":31,"integrity":"sha512-tQBvHsSInF2ns+Z/XW3pXCpV7PAIe6Y5dTNL7xQQDpB17i08EDdUtHETfpLdjASQVaBZZ4k7gQB8vjbVOdhYcg==","signatures":[{"sig":"MEUCIQDlMJ4nO83hVLWXKnh7Enib+Gn7tpkuK1S5/M+IUCWI3QIgNSSXNXSrJoPHXGMaDUMu1paqgSkwluM3lemhf1B+oLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505837},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.2_1787396171085_0.3847681617306169","host":"s3://npm-registry-packages-npm-production"}},"0.18.3":{"name":"pi-fovea","version":"0.18.3","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.3","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"ff80af2e8602b9f6c593569d3961670756e28eb8","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.3.tgz","fileCount":31,"integrity":"sha512-sE1UlCq6yVINvKWlMfuAem0z7YFaqb/HzlqRtoNG5wq9HqdRkyFGmJujH03aRpJEv0cF7Fsy45HmtgTVgDoBOg==","signatures":[{"sig":"MEQCIE6ttjqtO6imyjyB0R6lGhJPoBFcWPZcOoy6yYdT6DUVAiAZDW0SuI8e9z66IZyPDnSgm2ZvJbBVZqkQMwpAC7OLzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506162},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.2","@earendil-works/pi-coding-agent":"0.84.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.3_1787405864726_0.5208420555226954","host":"s3://npm-registry-packages-npm-production"}},"0.18.4":{"name":"pi-fovea","version":"0.18.4","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.4","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"853be9ab90506a8bae7340fc82d8bcf3d3402c62","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.4.tgz","fileCount":31,"integrity":"sha512-xZIuVMBRuDx8Ri0OvoSeO1Lf3O4RGfig/ICWIUqSQ5EoWJpNh5TpN4ln0sG1xl/a5v9rL4YaFqMkbxmhPCgYhg==","signatures":[{"sig":"MEUCIEQToQ3+Eax/f1rYNzhVemmdDg/OSxYseKvNXWQrs+isAiEAnCJh98NkpZcXwRdWHelrl/QKYienoKW1cJp1J9shreE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508113},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.3","@earendil-works/pi-coding-agent":"0.84.3"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.4_1787586044958_0.5910101580673071","host":"s3://npm-registry-packages-npm-production"}},"0.18.5":{"name":"pi-fovea","version":"0.18.5","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.18.5","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"5f8877d497c7f0ea75133e42cb1f360b339bb992","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.18.5.tgz","fileCount":31,"integrity":"sha512-cjn2TjXZ7Gd06iezUt8djOF6GXZzydC3x8y4Sb5YZgaU7w9Um4OuzJ/eRl21pZlOah5jlvAl6Q+6s82ypa6d9A==","signatures":[{"sig":"MEQCIEvF8erzetBH9uexqD4bd2Ga8oBUmw8zkNepIGii7GJhAiB2zFa1pleME765LWwW/AGTMfUsmareGQOBhxRWjARFMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514025},"type":"module","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"pnpm run typecheck && pnpm run test && pnpm run lint:dead","fovea":"tsx cli.ts","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.18.5_1788005816432_0.748901699554213","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"pi-fovea","version":"0.19.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.19.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"78ace63b2d73492fdd23b15fc81b469f97eac370","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.19.0.tgz","fileCount":32,"integrity":"sha512-5wTYVubeOi4Q7GxTH3dVk2Jmg1dhMFh5Am3v78HMbtqQXW8WNSKuEcXmDU8LYysJlIi6mw5BldpMbjZyzHT1sQ==","signatures":[{"sig":"MEUCIHG1jZ4Xtmc07ovg8saoedgTrKUE5MQr93dsDqogwfqiAiEA3aFM9wS4HLH6Qbi+DhU9rFxUKse0lqTZSocZw8WHLIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560461},"type":"module","shasum":"78ace63b2d73492fdd23b15fc81b469f97eac370","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-5wTYVubeOi4Q7GxTH3dVk2Jmg1dhMFh5Am3v78HMbtqQXW8WNSKuEcXmDU8LYysJlIi6mw5BldpMbjZyzHT1sQ==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.19.0_1788212361621_0.8601912771572098","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"pi-fovea","version":"0.20.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.20.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"1ff402824c3ea829587e2d313ee51fac0a3fbcfe","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.20.0.tgz","fileCount":33,"integrity":"sha512-+H/9uvsPdh/6f2KmE5smxZG0dVFUq1JY4xiKzpmGwzqIR6thL8IHGX7Zvj0TkPpMPlW5Szb+HpBNg86M98cAUQ==","signatures":[{"sig":"MEYCIQCZEu3R9mX4g5n9Azpc35wPr7ShMGvLjBhqw1RwUkndigIhAJAyCZee0LvdBdFxk0BJeKE+lN8miYmBjCfmXWeDY9Ka","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664949},"type":"module","shasum":"1ff402824c3ea829587e2d313ee51fac0a3fbcfe","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-+H/9uvsPdh/6f2KmE5smxZG0dVFUq1JY4xiKzpmGwzqIR6thL8IHGX7Zvj0TkPpMPlW5Szb+HpBNg86M98cAUQ==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.20.0_1788450326206_0.4492354146909192","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"pi-fovea","version":"0.21.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.21.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"80531fdc14d0cf0d11a76b3830e6a502dffede47","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.21.0.tgz","fileCount":33,"integrity":"sha512-GbGnInuPcnnCaiq8FOvR0oVX/kqZhfX4dPdVeA+rkUhLxxeIv+35ycw+ShG2QVQr5ZwDCchaQuSvL0HT/OSZXQ==","signatures":[{"sig":"MEUCIQCMS0974hY8/ibxQlNRwuDgYmNAgRsMDF0JsRdM2eX5ywIgcscgtvHWyDWAShLSDj4cu9iHKaYhQFPkkKRpnKs3Cm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":671243},"type":"module","shasum":"80531fdc14d0cf0d11a76b3830e6a502dffede47","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-GbGnInuPcnnCaiq8FOvR0oVX/kqZhfX4dPdVeA+rkUhLxxeIv+35ycw+ShG2QVQr5ZwDCchaQuSvL0HT/OSZXQ==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.84.4","@earendil-works/pi-coding-agent":"0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.21.0_1788451666381_0.48636334041770435","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"pi-fovea","version":"0.21.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.21.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"3c12824d5563feff907ebab6957a241f6c35c206","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.21.1.tgz","fileCount":33,"integrity":"sha512-15VnYRATG6hOj7aiHf+dbiljxUZ4Bp2ijeuMO/d9XrlJT9hIzQqZDj0oa6qojmk8cJUBIAOgjw0PGkAkSwjQKA==","signatures":[{"sig":"MEUCIFr2UXSy1I+L9laKpPGfzhbxDpvlibAkerB2O5+m4nFmAiEAjr8UvJrazfw9TKcvRN051aGfSfV5wt57POKivw+ZXoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":671286},"type":"module","shasum":"3c12824d5563feff907ebab6957a241f6c35c206","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-15VnYRATG6hOj7aiHf+dbiljxUZ4Bp2ijeuMO/d9XrlJT9hIzQqZDj0oa6qojmk8cJUBIAOgjw0PGkAkSwjQKA==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.0","@earendil-works/pi-server":"0.85.0","@earendil-works/pi-coding-agent":"0.85.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.21.1_1788529969247_0.6501995028502137","host":"s3://npm-registry-packages-npm-production"}},"0.21.2":{"name":"pi-fovea","version":"0.21.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.21.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"faed9f6068af385a662b277ea2dc17d9ac0a6c93","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.21.2.tgz","fileCount":33,"integrity":"sha512-6x1WOoXIXpgs2rxFNTZALGn6IMdBJpPn7EGw8D+75+cZP4F6h0m3TXNAfqC2dW0E1h6pGqWbBBiQdMICouiTQg==","signatures":[{"sig":"MEYCIQC29xyGpa/QNDl0/MAQ9wfwWX/Yd2kXXanZlhqK9yfKDAIhAOPj7fgSozSrtGgMWk7T7fCI3A2/Sj/ZQj4g2GcxtNjI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":671243},"type":"module","shasum":"faed9f6068af385a662b277ea2dc17d9ac0a6c93","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-6x1WOoXIXpgs2rxFNTZALGn6IMdBJpPn7EGw8D+75+cZP4F6h0m3TXNAfqC2dW0E1h6pGqWbBBiQdMICouiTQg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.21.2_1788647835973_0.5845195490231487","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"pi-fovea","version":"0.22.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.22.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"f5e209bded32a2330c9d26ab5763bafb01e264ca","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.22.0.tgz","fileCount":33,"integrity":"sha512-GYW+Kdezlry4MXzXqS68mVZhxk4i0m8QF6hJ5u9yo+LqoKunCYtmK9ZSB5ELNrp0ykntJNWQfZQyK64rXzAeqQ==","signatures":[{"sig":"MEUCIQCEzyHRA1kc3IzUgZRMEfTMErQY/iHqabc3EBIvcKsjLQIgUwr8gxT0n/dDhcwSZr2D//hm/dIcqHyWeQush27+udk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676637},"type":"module","shasum":"f5e209bded32a2330c9d26ab5763bafb01e264ca","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-GYW+Kdezlry4MXzXqS68mVZhxk4i0m8QF6hJ5u9yo+LqoKunCYtmK9ZSB5ELNrp0ykntJNWQfZQyK64rXzAeqQ==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.22.0_1788673394015_0.9741507780856411","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"pi-fovea","version":"0.22.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.22.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"734637bfa13def556f8f37c9e6d4b634e0024a07","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.22.1.tgz","fileCount":34,"integrity":"sha512-QdC9vih07qZW35P1eurEFb/ejKs0X3gbXJbtIhSiK39XtM9SjA0ltOcwVmy5MOI0vV8iNEvucFe9iDEPIRDZvg==","signatures":[{"sig":"MEUCIQCACs+bMjIudpsWI/IZAFAd/1HL+cX/dgFlFDuNiemvNwIgPMp4kpy/QKLoCNxRP4lg+qIYGN0UtCb/5rs+7M9jIXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":685842},"type":"module","shasum":"734637bfa13def556f8f37c9e6d4b634e0024a07","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-QdC9vih07qZW35P1eurEFb/ejKs0X3gbXJbtIhSiK39XtM9SjA0ltOcwVmy5MOI0vV8iNEvucFe9iDEPIRDZvg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.22.1_1788758334313_0.7653620909286853","host":"s3://npm-registry-packages-npm-production"}},"0.22.2":{"name":"pi-fovea","version":"0.22.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.22.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"e62ce689a29e59e3c090eae28574af2477b46625","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.22.2.tgz","fileCount":34,"integrity":"sha512-waQth3Wp6krts/Z822724J6usbKJNQ5LXxWpB2WU8LDnCr+CbYPf0pRZvtMR7SZG5oFtI0cjmuPwZemWWZb0vQ==","signatures":[{"sig":"MEYCIQCciubt7j6+lmOw+N05Y16dj0gZbXdAR5F1blBZLI1jLQIhAN/FdLTCmiB3L9disHAJ5YBmsa4NUBZdvz1/NkF/7PEQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":687464},"type":"module","shasum":"e62ce689a29e59e3c090eae28574af2477b46625","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-waQth3Wp6krts/Z822724J6usbKJNQ5LXxWpB2WU8LDnCr+CbYPf0pRZvtMR7SZG5oFtI0cjmuPwZemWWZb0vQ==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.22.2_1788858927758_0.9463115660118278","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"pi-fovea","version":"0.23.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.23.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"0a6cf9f58c372d8f9bc07e88c33c3e75618a1360","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.23.0.tgz","fileCount":34,"integrity":"sha512-GYgQlS9z7EMY8p5V5kWQKzfctZcUNhCNKLjFy5izkTxsmgQPjePh/2SEeHWzaPqT6hOpDDtRzmQ34yO6MDqYPg==","signatures":[{"sig":"MEUCIQDDam7qlv7HuIJNcoXddTFyRLlgQUhemtTlvR4c+mQAmwIgM3CizA0wkekwX0wVtZyvEznRq6nc9Rk18gDfSfaHb9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFAeViXlHPA4qk0MQ0/MM6tZctQTlcVz2nKuJMTJdUiOAiBjWB/LXa9XkSC1v0NRw8OiYxl/gw0A2f5P6+uujLItzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693298},"type":"module","shasum":"0a6cf9f58c372d8f9bc07e88c33c3e75618a1360","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-GYgQlS9z7EMY8p5V5kWQKzfctZcUNhCNKLjFy5izkTxsmgQPjePh/2SEeHWzaPqT6hOpDDtRzmQ34yO6MDqYPg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.23.0_1789113508744_0.6278665339643428","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"pi-fovea","version":"0.24.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.24.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"392f1298077c5f71b04e211e866bbec5422d355e","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.24.0.tgz","fileCount":35,"integrity":"sha512-Acy0r6soETJAECiEVKgmsvSlmldXLmnqp9ZvugNZ4tYFYRuK9Tjh9/Jk/6StnFEu3xkYaqPYN8otxY846hG85Q==","signatures":[{"sig":"MEUCIQCGuVUUB3AZzHt65Vbt7xSLuO+2/QKCrXuSCSggkVPC6wIgBO+9mHA2vlVY/JVjGiyCPO6ILfz4ncMXSbUn3O+n74c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBxRH5oSPJXM+yYDwCB76R/e196h2pNext9blfSvrMJhAiEAtVIQ3hptW9xrPNIZouLd2qMAg6qLxXbkRKhz06pyV9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698787},"type":"module","shasum":"392f1298077c5f71b04e211e866bbec5422d355e","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-Acy0r6soETJAECiEVKgmsvSlmldXLmnqp9ZvugNZ4tYFYRuK9Tjh9/Jk/6StnFEu3xkYaqPYN8otxY846hG85Q==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.24.0_1789197039816_0.5720794297878102","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"pi-fovea","version":"0.25.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.25.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"3a537ad212fad0ce009703e4a15cfb6d08d5062a","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.25.0.tgz","fileCount":33,"integrity":"sha512-RjGtXX9vKC1MhFa69wF7HAzu9FrpbA6Cu0OzV77FoA0IdIJRTY12QMfcBme2UernzvQO9T7RZWxduXBLg9ld2A==","signatures":[{"sig":"MEYCIQCHepcTJ0x2TnhfQ9oBI2ciIJYi1GdSWI+ebAI4x17fRAIhALLXQJaoPwNKFVOu466hMROrpE7I3VNGiC0NiTfKU9HB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDS93A1/b5x/k2+0Qw3RaDnYpzeaky4sBiQCnIF6d3GnAiEA542Ldx8FQWuXrONkTHNw9xjVoynu8ArYlMI/Fxfx7bk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701714},"type":"module","shasum":"3a537ad212fad0ce009703e4a15cfb6d08d5062a","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-RjGtXX9vKC1MhFa69wF7HAzu9FrpbA6Cu0OzV77FoA0IdIJRTY12QMfcBme2UernzvQO9T7RZWxduXBLg9ld2A==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.25.0_1789210776035_0.617827260674267","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"pi-fovea","version":"0.26.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.26.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"7a9191c832f8e4641a9cbd186ed060d084d2cdfd","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.26.0.tgz","fileCount":35,"integrity":"sha512-pHe6QabymdwdBi9Sy3yh6PC7+Iwo2w+UqN9/M34wVZqzXnD+ILyTpvMuxHRC1VFo3yBGLy/8BrirYd6WD4n1Lw==","signatures":[{"sig":"MEUCIFs6q8aHOir9AFNw98S0r0S7QMMopa1rlojP9Ybd4ehMAiEAyYQ5UISEbFyG03p3x32X+z0agYJ9H5J5F3K0QcBJCco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC91yrDh2QIbPqSi9tA4oZXyAfnwU25N3WbgOX23seYpQIgbJhUZyTeNM/pLOF1sHBSuORixtnjc2yBnr5pzY8RJcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707004},"type":"module","shasum":"7a9191c832f8e4641a9cbd186ed060d084d2cdfd","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-pHe6QabymdwdBi9Sy3yh6PC7+Iwo2w+UqN9/M34wVZqzXnD+ILyTpvMuxHRC1VFo3yBGLy/8BrirYd6WD4n1Lw==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.26.0_1789246993004_0.11925120749957108","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"pi-fovea","version":"0.27.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.27.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"f07d4c46dd098f9cd165e7bb07aadfdece1dc1cd","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.27.0.tgz","fileCount":37,"integrity":"sha512-XgbNh41ADrISTYd798DIbnbZwRabG/xa0fnO3kaJfK6XFD7t8gYhpT6OZDwuJ+H7jMMFuaLmV8y4rIiCRCiIlg==","signatures":[{"sig":"MEUCIHzR1g8UvB5EVDXyzZmzHZsy8A8sJbYKL6P2OF3qPg2LAiEA1m3kXKH2ZWaKxPisF6c1Uwmjuy9PI3P9fyu6zqrJDdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBeo0ngXFaUMKEJepSuu74IDwEn9+VgJe712ujUohxWgAiAkoZ+Znnk6EhR7gR9+TFLLL/x336W3+CjpEji+KLwvMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":732456},"type":"module","shasum":"f07d4c46dd098f9cd165e7bb07aadfdece1dc1cd","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"test":"vitest run","bench":"tsx scripts/bench.ts","check":"bun run typecheck && bun run test && bun run lint:dead","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-XgbNh41ADrISTYd798DIbnbZwRabG/xa0fnO3kaJfK6XFD7t8gYhpT6OZDwuJ+H7jMMFuaLmV8y4rIiCRCiIlg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.27.0_1789257500226_0.4770585317618872","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"pi-fovea","version":"0.28.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.28.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"6f77cd590a27eef45375789dcf2789bff0752b5b","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.28.0.tgz","fileCount":37,"integrity":"sha512-tjNdYdGJ0FPhea9Mn0gSmitDSX7OBVGXPOUAQvjAimZhjo4R6pTScdbJGM7CFKDPyIn7ZF4S7cDLCgojjV9bhg==","signatures":[{"sig":"MEUCIEY6XuYPPGk0FxXgpl3Gu3c0xULmncLrWAC3G5PJWE0jAiEA0dSKcW8mDsWDMzvUBGhrcUwmZzr378FurWemiHsenhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICLGBe2hl97eFckJnehX7Tvo9aWkTXL+X+hSIMQ58wLxAiEAmSXzua3/yvAshzs38Aliti+9liKEbfm23ZFn9l5EORY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734839},"type":"module","shasum":"6f77cd590a27eef45375789dcf2789bff0752b5b","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-tjNdYdGJ0FPhea9Mn0gSmitDSX7OBVGXPOUAQvjAimZhjo4R6pTScdbJGM7CFKDPyIn7ZF4S7cDLCgojjV9bhg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.28.0_1789652300006_0.6109261050567045","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"pi-fovea","version":"0.28.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.28.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"04496f3e67e63473db5be3e54ed121450eb5bf69","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.28.1.tgz","fileCount":38,"integrity":"sha512-7x6JHUubaJakCiLw0NgEEAlSsswDiiErWxRks3Rc7kwIIxuamFok0u17wTTMSSh8hRbgNZxtylXYfcGWYn2wQA==","signatures":[{"sig":"MEQCIBNWBWC52WzYdCZBqlBQ65an1IampvsRWSuRpnr0BwbfAiBlRHmQRaalzphjBkSsSqRkJAlHvCF0ghsbBK68ZJG6Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIForKpJwdRwAPDnvlktDI/blnPXACEA6kEmpKgTnyDmqAiAH2lue7zrN+k6oUN0jxYn7DxpTUkNiDWdJElC7jHHRbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736578},"type":"module","shasum":"04496f3e67e63473db5be3e54ed121450eb5bf69","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-7x6JHUubaJakCiLw0NgEEAlSsswDiiErWxRks3Rc7kwIIxuamFok0u17wTTMSSh8hRbgNZxtylXYfcGWYn2wQA==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.28.1_1789715000134_0.7153336702466087","host":"s3://npm-registry-packages-npm-production"}},"0.28.2":{"name":"pi-fovea","version":"0.28.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.28.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"0526d6252d0b34d02f6b7a240890cb62731b5821","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.28.2.tgz","fileCount":39,"integrity":"sha512-wARnl/PvL119kfgdfgJvruew0NAgPXba4yK7LnkZXZdCe4kDuIJZDcuDg6m6FPU4DpoI1N0lg3WuwJuc9gajpg==","signatures":[{"sig":"MEYCIQDRb1xAq0UaQXh9SrvUy9cnQ9VSKWWQRJCi6MHw2N+zAgIhAO2RSffiGt54OkDR3dk5pOReKFy7LUM494UCBoOVwdp0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID73x0OuXnG8cKAZCQVRs1TdxVHen7nIDr9zWT6TNwacAiAnFXqTtIz0yeNGLoPagqV0Fy+376BVcAP76sViAsD68w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":759717},"type":"module","shasum":"0526d6252d0b34d02f6b7a240890cb62731b5821","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-wARnl/PvL119kfgdfgJvruew0NAgPXba4yK7LnkZXZdCe4kDuIJZDcuDg6m6FPU4DpoI1N0lg3WuwJuc9gajpg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.28.2_1789720510999_0.8424762475043364","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"pi-fovea","version":"0.29.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.29.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"a0cc58adbec48e917915c26c37133ce57c80e8e8","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.29.0.tgz","fileCount":40,"integrity":"sha512-mDx/eLLoSIQNKMZuWYtARw+yi4gguNQA86F1IXAHtx66v1wFIXBIeXiS2kosGKss9JexuiXXYQgSVBiza7bK+Q==","signatures":[{"sig":"MEYCIQDS516dWvkVO5XxmKooA4OLEWyMiv4jO0WI5MAmE4GRggIhAJcP3a3fsKcESdBkfbEeWjLqjGGeF1N0NXpnXOHu6C1L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTEsCfu1BvrVuRmKJwRAu4oLfaDYVcYM6XY060Pn8ZJAIgC5NSgCwlU5BNvnwg51J0+ZwBLzk1W+x1NC5xtSZjJyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":774521},"type":"module","shasum":"a0cc58adbec48e917915c26c37133ce57c80e8e8","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-mDx/eLLoSIQNKMZuWYtARw+yi4gguNQA86F1IXAHtx66v1wFIXBIeXiS2kosGKss9JexuiXXYQgSVBiza7bK+Q==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.29.0_1789751883253_0.371778576313085","host":"s3://npm-registry-packages-npm-production"}},"0.29.1":{"name":"pi-fovea","version":"0.29.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.29.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"8526f07f7172865a960c61f219a46af4adf9206b","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.29.1.tgz","fileCount":40,"integrity":"sha512-lH2jMcFGz6lDeLDpvo3+U13XdX7+kf0EfN1vurhdQnoOLf2khA6undxsyNSSRpsCqB5IJqrrFDVyVSqylkrftA==","signatures":[{"sig":"MEQCIArgSbJbbsny5mkEKVcUahNpcNxA6e8A91CQmMgPihv7AiBMDcBRnzyBdx7aLAt18V/g/N2djqyRd0XvmgkdgulE8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHeSBBRPjEywAFCsgox4x0hSdcubsb452Rlh7OSqID2jAiEAtj4GNKtNdtWQ5+tKei14vVnxzlO6eWD8PBzFJQmZV44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":775708},"type":"module","shasum":"8526f07f7172865a960c61f219a46af4adf9206b","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-lH2jMcFGz6lDeLDpvo3+U13XdX7+kf0EfN1vurhdQnoOLf2khA6undxsyNSSRpsCqB5IJqrrFDVyVSqylkrftA==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.85.1","@earendil-works/pi-coding-agent":"0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.29.1_1789754097786_0.9418756897616516","host":"s3://npm-registry-packages-npm-production"}},"0.29.2":{"name":"pi-fovea","version":"0.29.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.29.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"6357ea9b42572e119eca19a8b42ab0fec028e80d","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.29.2.tgz","fileCount":40,"integrity":"sha512-c74wcJlz2OQjAvUWJgJt6kjGdrpSikOKyYRO9L0sHnHUT4HG0yUMeymFhsCXoymZWmLkJA5tVENTQ7WYSQM96A==","signatures":[{"sig":"MEUCIQD80AF3rehpuB3IvQKJ9FisuCknrIk8qNzpiH3lPLR8vQIgbRFfQq7DB7DKGYfnHjHX2VfCi+rwjska6hDfF2fhWws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC6ZTCm7X0Txfqi9U90YO+NIsb02lW9ASPuKe5b7h8L2QIhAIuGfJaWLZZvUAPD9r7mxu7D4pIV2RZtdCGDYQkg1fiW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":775708},"type":"module","shasum":"6357ea9b42572e119eca19a8b42ab0fec028e80d","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run build:cli","build:cli":"tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-c74wcJlz2OQjAvUWJgJt6kjGdrpSikOKyYRO9L0sHnHUT4HG0yUMeymFhsCXoymZWmLkJA5tVENTQ7WYSQM96A==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.29.2_1789893361619_0.7621556371855114","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"pi-fovea","version":"0.30.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.30.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"c6560f88e533d6716fda4378c80330590b18c701","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.30.0.tgz","fileCount":61,"integrity":"sha512-UMmH7UsnlKht9FGwVIa1WZ1PHsYmins21L8JTig/2sgcyY2ZPuIjCQ0zw4sEJ9TxeiUAWULrAWmFbuAKNoqqJw==","signatures":[{"sig":"MEUCIHXtqm53y3ekj5SyF9IkDpNj44euAs1BGH9owHZ1mkwOAiEAobk02r3w5BuXeVqugWgLNqDpSKdwSlRR6dUqpKBVYHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID4NDbRGeGaFAlJGFKddQT1/hUQGoi7mdHBOqTDfGMn3AiEA/08R8DSaKIemNuQij26AZumLkoFbvGPpPlDt4mH+G00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":844909},"type":"module","shasum":"c6560f88e533d6716fda4378c80330590b18c701","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run check:proofs && bun run build:cli","build:cli":"bun run proofs:artifact && tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run check:proofs && bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/verified-kernels.test.ts tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","check:proofs":"node scripts/check-proofs.mjs","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","check:package":"node scripts/check-package.mjs","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","proofs:artifact":"node scripts/check-proofs.mjs --artifact","proofs:generate":"node scripts/check-proofs.mjs --write","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-UMmH7UsnlKht9FGwVIa1WZ1PHsYmins21L8JTig/2sgcyY2ZPuIjCQ0zw4sEJ9TxeiUAWULrAWmFbuAKNoqqJw==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.30.0_1790196991500_0.8248487881690962","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"pi-fovea","version":"0.31.0","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.31.0","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"f90b51b34fbfb41375992ec4e36427de9c70a78e","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.31.0.tgz","fileCount":63,"integrity":"sha512-8vxl46ZantAVqJOmi90Y3zRPtU6deJh6CHKqSE/OyOzC5Vnz+nlXW3YWeaiVhgHrXMMLIo7yuO18GCbJnlPIXg==","signatures":[{"sig":"MEUCIEfceMrE1ceRifG1kd4mJ9aeGxigduKOSyXQwnYL1iczAiEAoZ1Ud/z9N3XScPttcYTOW0MDt1DwBnOb8M+UkGj0IVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC2VgSth/xIiIU25RVP8DU35FWnp/rIazb+Q9oA1IG8bAIhAJ6r6QxorlOrbbmPnUMz8lQ+tSach5b5isCW0qH9w0KS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":849717},"type":"module","shasum":"f90b51b34fbfb41375992ec4e36427de9c70a78e","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run check:proofs && bun run build:cli","pack:cli":"node scripts/pack-cli.mjs","build:cli":"bun run proofs:artifact && tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run check:proofs && bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/verified-kernels.test.ts tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","check:proofs":"node scripts/check-proofs.mjs","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","check:package":"node scripts/check-package.mjs","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","proofs:artifact":"node scripts/check-proofs.mjs --artifact","proofs:generate":"node scripts/check-proofs.mjs --write","check:package:cli":"node scripts/check-package.mjs --cli","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-8vxl46ZantAVqJOmi90Y3zRPtU6deJh6CHKqSE/OyOzC5Vnz+nlXW3YWeaiVhgHrXMMLIo7yuO18GCbJnlPIXg==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.31.0_1790268767831_0.9021372121056557","host":"s3://npm-registry-packages-npm-production"}},"0.31.1":{"name":"pi-fovea","version":"0.31.1","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.31.1","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"6838d42d36fae99f5e4a3d6d4010e5468d069b25","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.31.1.tgz","fileCount":64,"integrity":"sha512-8r6lzJ6RgBd+L15mGmabJHqOPRVMthru+7lmZ8HL7RihW8dO0P6WRdrTx1Pa8HUF2v4BOEy53mSpsJGLldeP6A==","signatures":[{"sig":"MEYCIQDVogrjUsP6eTvQWFtN+dy21oLtwg7CY3uBxZKwkldxiAIhAMZZkwxIKygzePwGL9hnZdw89viORfifeTO97otTqQBg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHaBFGZ0ZmvwZMRCvqOchSwRSyJD53YrmhO+2ut5L9zFAiBdOWWNr3AjekDGPmPW3lyqFVit986c/J9ob3ecAoxJZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856638},"type":"module","shasum":"6838d42d36fae99f5e4a3d6d4010e5468d069b25","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run check:proofs && bun run build:cli","pack:cli":"node scripts/pack-cli.mjs","build:cli":"bun run proofs:artifact && tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run check:proofs && bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/verified-kernels.test.ts tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","check:proofs":"node scripts/check-proofs.mjs","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","check:package":"node scripts/check-package.mjs","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","proofs:artifact":"node scripts/check-proofs.mjs --artifact","proofs:generate":"node scripts/check-proofs.mjs --write","check:package:cli":"node scripts/check-package.mjs --cli","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-8r6lzJ6RgBd+L15mGmabJHqOPRVMthru+7lmZ8HL7RihW8dO0P6WRdrTx1Pa8HUF2v4BOEy53mSpsJGLldeP6A==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"^1.3.10","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.86.0","@earendil-works/pi-coding-agent":"0.86.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.31.1_1790270745894_0.5713066214024971","host":"s3://npm-registry-packages-npm-production"}},"0.31.2":{"name":"pi-fovea","version":"0.31.2","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"author":"monotykamary","license":"MIT","_id":"pi-fovea@0.31.2","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"homepage":"https://github.com/monotykamary/pi-fovea#readme","bugs":"https://github.com/monotykamary/pi-fovea/issues","pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"bin":{"fovea":"dist/cli.mjs"},"dist":{"shasum":"81c7b1ed8539da212222ea6ddf4101573747ce72","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.31.2.tgz","fileCount":64,"integrity":"sha512-+JsqPqJPEOOOB5VA7ixPxxY0VIX0PcdS7J0njIFUiRapJyS+yj/1GrYtq0hFeo6TmPDSmGtKBearCNSDQkIUZA==","signatures":[{"sig":"MEUCIQCaa/xP3jSdEL718kNbVn/c9IaEFryy/0TlH8umiNdH7AIgQ1tEIdE7aJfc7xbUEOL5Ec1JQcbwRd4fosaHrjf1o+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCERf6eVpt5EyJbxGtp3bMnT8upDhvgTGiSeVirYe5dugIhAN2hO4LwAg3EDN2razcX8e9H3FVKMnajTWOZWBxrY5oL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857002},"type":"module","shasum":"81c7b1ed8539da212222ea6ddf4101573747ce72","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run check:proofs && bun run build:cli","pack:cli":"node scripts/pack-cli.mjs","build:cli":"bun run proofs:artifact && tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run check:proofs && bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/verified-kernels.test.ts tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","check:proofs":"node scripts/check-proofs.mjs","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","check:package":"node scripts/check-package.mjs","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","proofs:artifact":"node scripts/check-proofs.mjs --artifact","proofs:generate":"node scripts/check-proofs.mjs --write","check:package:cli":"node scripts/check-package.mjs --cli","corpus:performance":"bun scripts/performance-corpus.mjs"},"_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"_integrity":"sha512-+JsqPqJPEOOOB5VA7ixPxxY0VIX0PcdS7J0njIFUiRapJyS+yj/1GrYtq0hFeo6TmPDSmGtKBearCNSDQkIUZA==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"1.3.27","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"0.99.0","@earendil-works/pi-coding-agent":"0.99.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-fovea_0.31.2_1790707984222_0.02182946475812586","host":"s3://npm-registry-packages-npm-production"}},"0.31.3":{"pi":{"image":"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg","skills":["./skills"],"extensions":["./src/index.ts"]},"_id":"pi-fovea@0.31.3","bin":{"fovea":"dist/cli.mjs"},"bugs":"https://github.com/monotykamary/pi-fovea/issues","dist":{"shasum":"67c84a3af0d0319250255924461fe61cf67fc86b","tarball":"https://registry.npmjs.org/pi-fovea/-/pi-fovea-0.31.3.tgz","fileCount":64,"integrity":"sha512-lreArv61ATvsue5JB3xE5skXIOqaaCIvnviY++Smvhgv4e+d5yZzLPJFnIhHHolTx3ywBHGXT9nokzsk6rLcxA==","signatures":[{"sig":"MEYCIQCRMeU0/AlHqnQUmVlex5fp6nfaDEaE66FzjKUpgLoT+AIhANxRua4P+2f/uq9hBtN/nJkcn1LfsaFAjcRvJQibaKiE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFc0KTw2Bfzisl4yGbVMNNRwuVduxy+fciUCWYl5ekKLAiEA6E81oUiy+LXPv8fsgi3AwcOl5pHZPbzpU/4rUjlQjFY="}],"unpackedSize":856998},"name":"pi-fovea","type":"module","author":"monotykamary","shasum":"67c84a3af0d0319250255924461fe61cf67fc86b","engines":{"node":">=20"},"exports":{"./ops":"./src/core/ops.ts","./substrate":"./src/substrate.ts","./workspace":"./src/workspace.ts"},"license":"MIT","scripts":{"bench":"tsx scripts/bench.ts","fovea":"tsx cli.ts","prepack":"bun run check:proofs && bun run build:cli","pack:cli":"node scripts/pack-cli.mjs","build:cli":"bun run proofs:artifact && tsx scripts/build-cli.ts","lint:dead":"knip","typecheck":"tsc --noEmit","check:fast":"bun run check:proofs && bun run typecheck && bun run test:changed","test:smoke":"vitest run tests/verified-kernels.test.ts tests/startup.test.ts tests/config.test.ts tests/settings.test.ts tests/substrate.test.ts tests/scan.test.ts tests/extract.test.ts tests/join.test.ts tests/heat.test.ts tests/nuclei.test.ts tests/render.test.ts","check:proofs":"node scripts/check-proofs.mjs","test:changed":"node scripts/test-affected.mjs","test:related":"vitest related","check:package":"node scripts/check-package.mjs","test:affected":"node scripts/test-affected.mjs --base $PI_TEST_BASE","corpus:coverage":"bun scripts/coverage-corpus.mjs","proofs:artifact":"node scripts/check-proofs.mjs --artifact","proofs:generate":"node scripts/check-proofs.mjs --write","check:package:cli":"node scripts/check-package.mjs --cli","corpus:performance":"bun scripts/performance-corpus.mjs"},"version":"0.31.3","_npmUser":{"name":"monotykamary","email":"tom81094@gmail.com"},"homepage":"https://github.com/monotykamary/pi-fovea#readme","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"_integrity":"sha512-lreArv61ATvsue5JB3xE5skXIOqaaCIvnviY++Smvhgv4e+d5yZzLPJFnIhHHolTx3ywBHGXT9nokzsk6rLcxA==","repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"workspaces":["."],"_npmVersion":"10.8.3","description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","directories":{},"maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^6.32.0","vitest":"^3.0.0","esbuild":"^0.28.1","typebox":"1.3.27","typescript":"^5.6.0","@types/node":"^22.0.0","@earendil-works/pi-tui":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["@ast-grep/cli"],"optionalDependencies":{"@ast-grep/cli":"^0.45.3"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-fovea_0.31.3_1790883963109_0.9051692042056145"}}},"time":{"created":"2026-08-06T04:13:07.725Z","modified":"2026-10-01T19:46:03.583Z","0.1.0":"2026-08-06T04:13:08.125Z","0.1.1":"2026-08-06T04:15:12.811Z","0.1.2":"2026-08-06T04:44:21.487Z","0.2.0":"2026-08-06T05:08:01.384Z","0.3.0":"2026-08-06T06:06:53.474Z","0.3.1":"2026-08-06T06:47:17.387Z","0.3.2":"2026-08-06T06:53:39.441Z","0.3.3":"2026-08-06T07:31:07.393Z","0.4.0":"2026-08-06T08:07:42.811Z","0.4.1":"2026-08-06T09:22:51.376Z","0.5.0":"2026-08-06T10:35:23.084Z","0.6.0":"2026-08-06T13:09:57.985Z","0.6.1":"2026-08-06T13:23:42.465Z","0.7.0":"2026-08-06T14:18:05.692Z","0.7.1":"2026-08-06T14:34:16.373Z","0.8.0":"2026-08-06T15:33:54.362Z","0.9.0":"2026-08-06T16:04:31.226Z","0.9.1":"2026-08-06T16:47:24.518Z","0.10.0":"2026-08-06T17:14:37.231Z","0.11.0":"2026-08-06T17:48:12.079Z","0.11.1":"2026-08-06T18:43:27.931Z","0.11.2":"2026-08-06T18:48:11.918Z","0.12.0":"2026-08-06T18:52:51.515Z","0.12.1":"2026-08-06T19:15:03.329Z","0.13.0":"2026-08-07T07:37:47.637Z","0.13.1":"2026-08-07T08:18:46.950Z","0.13.2":"2026-08-07T13:09:03.234Z","0.13.3":"2026-08-07T15:07:51.794Z","0.13.4":"2026-08-09T13:12:41.172Z","0.14.0":"2026-08-10T08:55:33.945Z","0.14.1":"2026-08-10T10:51:45.041Z","0.14.2":"2026-08-10T11:48:53.370Z","0.14.3":"2026-08-11T03:14:02.863Z","0.15.0":"2026-08-12T11:25:59.339Z","0.15.1":"2026-08-12T18:15:48.198Z","0.16.0":"2026-08-13T03:32:27.091Z","0.16.1":"2026-08-15T00:14:27.776Z","0.16.2":"2026-08-15T01:02:50.066Z","0.17.0":"2026-08-15T10:41:00.717Z","0.17.1":"2026-08-16T13:39:59.413Z","0.18.0":"2026-08-16T20:41:27.227Z","0.18.1":"2026-08-21T16:09:56.920Z","0.18.2":"2026-08-22T10:56:11.232Z","0.18.3":"2026-08-22T13:37:44.900Z","0.18.4":"2026-08-24T15:40:45.116Z","0.18.5":"2026-08-29T12:16:56.574Z","0.19.0":"2026-08-31T21:39:21.786Z","0.20.0":"2026-09-03T15:45:26.347Z","0.21.0":"2026-09-03T16:07:46.539Z","0.21.1":"2026-09-04T13:52:49.363Z","0.21.2":"2026-09-05T22:37:16.090Z","0.22.0":"2026-09-06T05:43:14.156Z","0.22.1":"2026-09-07T05:18:54.470Z","0.22.2":"2026-09-08T09:15:27.951Z","0.23.0":"2026-09-11T07:58:28.830Z","0.24.0":"2026-09-12T07:10:39.908Z","0.25.0":"2026-09-12T10:59:36.129Z","0.26.0":"2026-09-12T21:03:13.098Z","0.27.0":"2026-09-12T23:58:20.321Z","0.28.0":"2026-09-17T13:38:20.118Z","0.28.1":"2026-09-18T07:03:20.246Z","0.28.2":"2026-09-18T08:35:11.083Z","0.29.0":"2026-09-18T17:18:03.334Z","0.29.1":"2026-09-18T17:54:57.894Z","0.29.2":"2026-09-20T08:36:01.704Z","0.30.0":"2026-09-23T20:56:31.592Z","0.31.0":"2026-09-24T16:52:47.939Z","0.31.1":"2026-09-24T17:25:45.983Z","0.31.2":"2026-09-29T18:53:04.317Z","0.31.3":"2026-10-01T19:46:03.197Z"},"bugs":"https://github.com/monotykamary/pi-fovea/issues","author":"monotykamary","license":"MIT","homepage":"https://github.com/monotykamary/pi-fovea#readme","keywords":["pi-package","pi-extension","repo-map","code-graph","heat-diffusion","progressive-disclosure","context-engineering","agents"],"repository":{"url":"git+https://github.com/monotykamary/pi-fovea.git","type":"git"},"description":"Token-budgeted repo mapping for agent sessions: foveated heat diffusion over a cross-language code graph, with progressive disclosure.","maintainers":[{"name":"monotykamary","email":"tom81094@gmail.com"}],"readme":"<div align=\"center\">\n\n# 👁️ pi-fovea\n\n**A foveated repo-mapping extension for [Pi](https://github.com/earendil-works/pi-coding-agent)**\n\n_See the whole repo on every prompt, sharp where you work and cheap everywhere else._\n\n<p>\n  <img src=\"https://raw.githubusercontent.com/monotykamary/pi-fovea/main/media/cover.svg\" alt=\"pi-fovea: a code graph seen through a fovea, hot at the center and collapsed at the rim\" width=\"1100\">\n</p>\n\n[![npm version](https://img.shields.io/npm/v/pi-fovea?style=for-the-badge&logo=npm&color=cb3837)](https://www.npmjs.com/package/pi-fovea)\n[![checks](https://img.shields.io/github/actions/workflow/status/monotykamary/pi-fovea/test.yml?branch=main&style=for-the-badge&label=checks)](https://github.com/monotykamary/pi-fovea/actions/workflows/test.yml)\n[![pi extension](https://img.shields.io/badge/pi-extension-8b5cf6?style=for-the-badge)](https://github.com/earendil-works/pi-coding-agent)\n[![license](https://img.shields.io/badge/license-MIT-f4c430?style=for-the-badge)](LICENSE)\n\n</div>\n\npi-fovea gives the model a map of your repo on every prompt. The repo compiles\nonce into a cross-language graph of code. Symbols, files, and route anchors\nshare one network. Your question becomes an interest vector that diffuses\nthrough the graph as heat. The renderer caps the field inside a token budget.\nNear the question you get exact source locations and full signatures. One hop\nout you get typed relationships. Past that the repo collapses to a skeleton.\n\nWhen a session starts, Fovea records a baseline of the repo. If files\nchanged while Pi was idle, those changes enter context before the first model\ncall. Fovea checks the repo again after each assistant turn. Detection uses\nfile content hashes. An edit from a Pi tool, fabric_exec, bash, a subagent,\nor an editor looks the same to Fovea. Edits that touch only comments or\nformatting stay silent. A meaningful change arrives as a **steer**. When the\nagent is about to stop, Fovea starts the next turn itself.\n\n## Where fovea fits in shipping a feature\n\nShipping a feature in a large codebase costs time before the first edit.\nFirst you find where the feature lives. Then the change needs a map of\neverything it touches. Other branches keep landing while you work. Reviewers\nwant the blast radius. In long-lived enterprise repos, these steps cost more\ntime than the change itself. Fovea handles these steps. Each step becomes a\ncheap call against the code graph. Tests, review gates, CI, and rollout keep\ntheir own tools.\n\n## When not to reach for fovea\n\nSkip Fovea on small repos. A repo of a few dozen files reads faster than it\nsketches. Fovea earns its cost when the working set outgrows the context\nwindow. Cross-language monorepos hit that wall early. A long-lived codebase you\nhave never opened hits it too. Fovea narrows your reading to suggested windows.\nOpen those windows yourself, and keep the project's format, lint, typecheck,\nand test commands in your loop. CI has the final say.\n\n## What the model gets\n\n| Command | Ask | Answer |\n|---|---|---|\n| `fovea_sketch` | where is everything? | production-first silhouette plus explicit discovery/extraction coverage; test and fixture architecture stays collapsed |\n| `fovea_focus` | what is this? | exact symbols/routes/protocol ids, evidenced relationships, path-gap reasons, suggested reads, scopes, and deterministic `fresh` views |\n| `fovea_dwell` | what else? | widens the current focus, or expires safely when its graph generation changed |\n| `fovea_impact` | what does this touch? | hunk-precise seeds, evidenced impact paths, co-change companions, and conserved diffusion heat |\n| `grep` *(default hybrid)* | graph or text? | bare identifiers, qualified symbols, repo paths, and routes use Fovea; search options and obvious regex retain native grep |\n\nFocus normalizes camelCase and common inflections. An approximate name such as\n`switchServer` can still resolve `switchingServers`. A query with no certain\nmatch returns the nearest symbols plus their locations. Direct graph edges\ncarry labels such as caller, callee, route, shared literal, and co-change, plus\ndeterministic `strategy` / `rule` / `source` evidence. Every tool result includes\na coverage report; an explicit missing path says whether it is unsupported,\nignored, oversized, generated, unreadable, Git-listed but unavailable, beyond\nthe file cap, behind a closed nested-repository boundary, or absent. Symbols\nthat merely share a file stay collapsed.\n\nThe **Hybrid grep** toggle is on by default. `grep({ pattern: \"CreateUser\" })`,\n`grep({ pattern: \"Controller.create\" })`, and route paths travel through the\ngraph. Calls that carry text-search options or obvious regexes go to Pi's\nnative grep. A graph miss falls back to native text. A graph error, such as a\nbroken ast-grep, falls back the same way and adds a one-line note marking the\nresult as native. Turn the toggle off to recover a purely native grep. A toggle\nchange reloads extensions, so Pi and pi-fabric capture the same behavior.\n\n### pi-fabric\n\nCaptured extension tools live under Fabric's `extensions` provider. Use the direct proxy when the action is known:\n\n```ts\nconst result = await extensions.fovea_focus({ query: \"CreateUserHandler\", maxTokens: 512 });\nreturn result.text;\n```\n\nFor dynamic discovery, pass an object to `tools.search` and keep the returned namespaced ref:\n\n```ts\nconst [action] = await tools.search({ query: \"fovea_focus\", limit: 5 });\nif (!action) return \"Fovea is not captured\";\nreturn tools.call({ ref: action.ref, args: { query: \"CreateUserHandler\" } });\n```\n\nThe stable explicit ref is `extensions.fovea_focus`. The bare forms\n`fovea_focus` and `fovea.fovea_focus` will miss.\n\nRuntime slash controls:\n\n- `/fovea status` for loaded versions, graph coverage, and active modes\n- `/fovea settings` for a TUI configuration overlay\n- `/fovea reset` for a fresh focus and sync baseline\n- `/fovea reload` to activate updated extension source\n\n## Install\n\n**0.31.3 compatibility:** tested against Pi 1.0.0 (Node 22.19+ for the extension). Pi APIs and TypeBox are host-provided wildcard peers, never bundled; development pins Pi 1.0.0 and TypeBox 1.3.27. Native codemode-only and Fabric declaration hiding leave Fovea tools callable, including nested grep middleware. The standalone CLI remains Node 20+ and host-free.\n\nRequires Node.js 20+. The install provisions [ast-grep](https://ast-grep.github.io/) automatically through the `@ast-grep/cli` npm optional dependency; an `ast-grep` found on PATH takes precedence over the packaged copy, and `FOVEA_AST_GREP=/path/to/sg` overrides both. Bend-only and config/protocol-only roots work without ast-grep; it is required when discovery or refresh includes a language that uses its parser.\n\n```sh\npi install npm:pi-fovea\n```\n\n<details>\n<summary>Other install methods</summary>\n\nFrom GitHub:\n\n```sh\npi install git:github.com/monotykamary/pi-fovea\n```\n\nFrom a local checkout:\n\n```sh\nbun install\npi install /absolute/path/to/pi-fovea\n```\n\n</details>\n\nThe standalone **`@monotykamary/fovea`** package provides the same engine for any agent shell or CI, without installing Pi:\n\n```sh\nfovea sketch /path/to/repo 900\nfovea focus /path/to/repo \"/v1/messages\" 800\nfovea impact /path/to/repo --base main 1200\nfovea rules /path/to/repo\nfovea status /path/to/repo\n```\n\nInstall the CLI globally — its bundled JavaScript runs on plain Node.js (no Pi or tsx required):\n\n```sh\nnpm i -g @monotykamary/fovea      # or: bun add -g @monotykamary/fovea\n```\n\nThe executable is still `fovea`. The legacy `npm i -g pi-fovea` remains supported;\nchoose one global package because both provide that executable. Installing the\nPi extension through `pi install npm:pi-fovea` can coexist with the standalone CLI.\n\nFrom a checkout, `bun run fovea` runs the live source via `tsx`, and `bun run build:cli` rebuilds `dist/cli.mjs` (the `prepack` hook keeps the published bundle in sync).\n`bun run pack:cli` produces the scoped CLI tarball at `dist/fovea-cli.tgz` using the\nroot package version. See [CLI usage](docs/cli.md) and [release checks and publishing](docs/releasing.md).\n\n## Agent skills\n\nChoose the skill for the interface your agent uses:\n\n| Skill | Use it for |\n| --- | --- |\n| [pi-fovea](skills/pi-fovea/SKILL.md) | Pi extension tools, persistent focus/dwell, turn sync, and Fabric integration. |\n| [fovea](skills/fovea/SKILL.md) | Standalone shell/CI commands, explicit repository roots, and stateless navigation. |\n\nThe Pi package exposes both skills. The standalone `@monotykamary/fovea` package\nships only `skills/fovea/SKILL.md`; register that directory with your agent's skill\nloader, or copy it into its skills directory. Installing the CLI alone does not\nregister a skill with an agent.\n\n## Many projects, one conversation\n\nYour Pi cwd can be a parent folder, a launcher, or unrelated to the work.\nSuccessful native/Fabric `pi.*` reads, edits, writes, and searches automatically\nselect their containing project. Discovery walks bounded ancestors—not siblings\nor the whole filesystem—and accepts only successful structured/literal access.\nStartup and idle hooks do not index an otherwise-unselected launch directory.\n\n**32 observed roots; two hot graphs.** The recency ring refreshes on access.\nProject 33 retires the least recently used root instead of failing. Canonical\nsymlink aliases share identity; linked worktrees stay independent. Each root has\nits own heat, attention, semantic baseline, and provenance. Retirement is an\nexplicit observation gap, never a clean verdict. Re-entry baselines anew.\n\n```ts\nawait pi.read({ path: \"/projects/service/src/handler.ts\", offset: 1, limit: 40 });\n// Access alone enrolls the project; an unrooted call still answers about cwd.\nawait extensions.fovea_focus({ root: \"/projects/service\", query: \"src/handler.ts\", maxTokens: 1024 });\n// An explicit root selects any exact directory, including umbrella scopes.\nawait extensions.fovea_focus({ root: \"../other\", query: \"entry\", maxTokens: 512 });\n```\n\n- Omitted analysis roots use the session cwd's own project—the nearest `.git` or\n  manifest, else the cwd itself—never the last selected project, so an unrooted\n  call cannot answer about a sibling repository. Contour keeps the recency ring\n  as a fallback for a coordinator cwd, where a review needs a Git worktree.\n  Explicit `root` resolves against **the tool context's cwd**, not process cwd\n  or the previous root. Parallel coordinators should supply it. Native paths\n  remain cwd-relative; neither Fovea nor Contour changes cwd. Results carry\n  `details.root`, `observedRoots`, `workspace` (capacity/retirements), and\n  `agentOrigin`.\n- Enrollment happens after success, not before permission checks. Failed or\n  blocked calls enroll nothing. Automatic discovery excludes broad/system,\n  private, dependency, and generated locations. It does not parse arbitrary\n  programs or trust output text. Literal shell cwd forms are supported; opaque\n  programs and remote filesystems need explicit coordination.\n- Indexing expands a successful path to a project scope. This is **not a sandbox\n  or a project-trust grant**. `.pi/fovea.json` is honored only for the exact\n  canonical trusted `ctx.cwd`; parent/sibling trust does not propagate. Existing\n  declarative `.fovea/rules.json` extraction rules are unchanged. Hosts with\n  finer-grained analysis permissions must enforce them separately.\n- The first access is a new observation boundary. A first write may already be\n  included in it; Fovea does not invent its prior delta or authorship. Contour\n  still compares that project's patch with Git. Subsequent focus calls do not\n  consume pending drift. Focus/file-seeded impact establishes attention before\n  opaque shell edits; hintless changes in enrolled roots remain detectable.\n- Native augment grep follows the physical owner of its actual search path,\n  never an unrelated active graph. No-path native grep still searches cwd.\n  Legacy replace-mode bare graph queries use the cwd project; native options and\n  fallbacks retain cwd semantics.\n- Sync spends one shared context allowance on relevant messages, including root\n  labels and retirement notices—not an equal slice for every quiet root. Cold\n  unchanged Git roots do not rebuild graphs, and cold probes stay off the\n  blocking before-agent hook. Numerical paging retains logical focus/attention.\n- Branch-local bounded root snapshots survive compaction, reload, resume, fork,\n  and tree navigation. Semantic baselines and trust are not restored. `/fovea\n  reset` clears the ring; `/fovea status` reports the ring, capacity, and the manual default. The CLI\n  stays stateless. Fovea and Contour exchange session-qualified target hints,\n  not heat, source content, trust, or mutation authorship.\n\n### Bounded indexing\n\nExplicit umbrella graphs retain progressive nested-repository/submodule\nboundaries: projects join that graph as their contents are worked in, subject to\n`FOVEA_MAX_FILES`. Automatic project selection does not create an umbrella graph\njust because unrelated projects share a parent directory. Cold extraction keeps\nstreamed JSONL caches, 64-file batches, adaptive ast-grep chunk splitting, and\nbounded I/O/process concurrency.\n\n| Variable | Default | Meaning |\n| --- | :---: | --- |\n| `FOVEA_MAX_ROOTS` | `32` | observed recency ring, clamped to 1–32 |\n| `FOVEA_CACHE_ROOTS` | `2` | hot graph/fact/vector cache residency, separate from observation |\n| `FOVEA_MAX_FILES` | `8000` | maximum indexed files in one graph |\n| `FOVEA_MAX_FILE_BYTES` | `1048576` | maximum bytes extracted from one source file |\n| `FOVEA_SPAWN_CONCURRENCY` | `3` | concurrent ast-grep/Git subprocesses |\n| `FOVEA_IO_CONCURRENCY` | `32` | concurrent file stat/read operations |\n| `FOVEA_MEMORY_HALF_LIFE_HOURS` | `48` | wall-clock half-life of charged cascade memory |\n| `FOVEA_GIT_UNTRACKED_CACHE` | enabled | set `0` to disable Git's native untracked-directory cache |\n| `FOVEA_MAX_SUBMODULE_DEPTH` | `4` | recursion cap for nested submodules |\n\nRoot-discovery metadata is coalesced and TTL-cached; it never certifies source\nfreshness. Git status/content hashes and bounded manifest/boundary sweeps remain\nthe drift oracle, including dirty-to-clean reverts. Local Git analysis disables\nfsmonitor and remote/lazy fetching. Native untracked caching can still update\nGit **index metadata**, not Git configuration; opt out with\n`FOVEA_GIT_UNTRACKED_CACHE=0` or `GIT_OPTIONAL_LOCKS=0`.\n\nOversized files and failed extractions remain visible coverage gaps in status\nand tool details. See the [full workspace contract and shared API](docs/workspace.md)\nfor boundaries, persistence, scheduling, and remaining limitations.\n\n## Turn sync\n\nContinuous sync is enabled and visible by default. Before an agent starts,\nFovea establishes its baseline or injects relevant drift ahead of the first\nmodel call. After every assistant turn it compares symbols, calls, imports,\nliterals, and anchors again. Content hashes keep the unchanged fast path cheap.\nEdits that touch only comments or formatting raise no signal.\n\nThe default `sync.scope` is `\"session\"`: path-bearing read/search/edit tools,\nexplicit focus/dwell results, and file-seeded impact calls add the top-level\nlogical directory (or exact root file) to that conversation's attention. Fovea\nstill indexes and baselines the whole root. Drift solely in sibling directories\nis absorbed silently, so broad umbrella coverage does not become broad model\ncontext. Set `sync.scope` to `\"repository\"` to restore root-wide steering.\n\nA meaningful current, mixed, or unattributed change inside the attention scope\ncan still ship post-turn with `deliverAs: \"steer\"` and `triggerTurn`. If\n[pi-queue-steer](https://github.com/monotykamary/pi-queue-steer-factory) still\nholds rows (`globalThis.__tmustierPiQueueSteerState.pending > 0`), that same\nnotice rides `nextTurn` instead so a queued user row stays first in Pi's native\nlane and Fovea cannot `triggerTurn` ahead of it. A relevant\nchange attributed solely to another Fovea-enabled session is queued for the\nnext user prompt instead; it never restarts an idle agent. The compact update\nnames changed files, route deltas, and newly relevant files. Shell commands,\nexternal editors, and agents without Fovea remain `unattributed` rather than\nbeing guessed, while the path scope still keeps unrelated sibling sandboxes\nquiet. Provenance journals accept either intercepted mutations or explicit trusted SHA-1 transitions, preserve supplied commit order, write one bounded replacement per event batch, expire after seven days, and live in\n`$TMPDIR`; repository content remains the drift oracle. Updates list causal\nchannels such as calls, imports, shared literals, tests, or co-change history.\nBy default Fovea also embeds the refreshed focus context of the top drift target\n(push). With `sync.pushFocus` off, the update ends with a suggested focus probe\nfor the next call (pull). Switching\nbranches re-baselines silently instead of steering: a `git checkout`\nre-materializes the worktree, but the branch diff is not authored drift —\ncommits, pulls, and rebases still report. Clean turns stay silent. Enable `sync.ackClean` if you want an ack for those. Set `sync.mode` to\n`\"hidden\"` to keep red sync context working behind the scenes without rendering it\nin the transcript, or to `\"disabled\"` to turn continuous sync off.\n\nSurprise is measured per graph node, not per file: a disclosed cascade\ncharges the symbols, literals, and anchors it warmed, and a later verdict\nonly counts mass exceeding that ledger. Re-editing the same spot re-seeds\nthe same charged nodes and stays silent — flip-flopped work cannot wake the\nmodel twice, no matter how many times it flips within a session. A novel\nhunk still fires, damped only by the charged nodes it overlaps. The ledger\ncools by wall clock (48h half-life, `FOVEA_MEMORY_HALF_LIFE_HOURS`), so a\nstructurally re-heated neighborhood can earn a fresh verdict on a later\nday. Anchor deltas follow the same evidence rule: a route add/remove\nescalates only when its carrier file drifted, which makes transient\nextraction artifacts quiet by construction.\n\nRuntime controls:\n\n- `/fovea status`: loaded package and ast-grep versions, indexed coverage, anchor scopes, sync mode/attention scope, and grep mode\n- `/fovea reset`: clear focus disclosure and depth, then establish a fresh sync baseline\n- `/fovea reload`: hot-reload extensions and activate newly installed source; sync baselines (the verdict ledger) ride through on a global slot, so a reload no longer replays charged cascades as first disclosures\n- `/fovea settings`: configure sync, budgets, and hybrid grep\n\nChoose enabled, hidden, or disabled per repo or globally through settings. The\nenvironment override still turns sync off with:\n\n```sh\nFOVEA_TURN_SYNC=off pi\n```\n\n## Change impact as heat\n\n`fovea_impact` ranks relevant context under a strict token budget. It does not track inspection or certify feature completeness.\n\nSeeds come from the diff. Hunk parsing maps each change to the symbols that contain it. One unit of mass goes to each changed file: `0.2` on the file node, `0.8` over the touched symbols in proportion to `sqrt(changed lines)`. Heat then spreads along static relationships, with historical co-change partners added as decaying seed heat. Edits that resist symbol-level location fall back to the file-node seed. New files, deletions, renames, untracked paths, and oversized diffs all take that path.\n\nHistorical co-change is a decaying **heat prior**, never a permanent graph edge. It counts up to 400 first-parent integration boundaries: merge net changes count once, not again through their constituent commits. Explicit `fixup!`/`squash!` followups join only uniquely resolved older subjects in that window. Time, author, shared issue numbers, and unlabeled \"forgot this\" do not group work. Boundaries are not proof of a semantic feature (release merges can mix work). Aggregates above 24 tracked files emit no pairs but retain directional touch counts; two distinct retained units are needed for a pair, three for expectations. Raw history caching includes shallow-state identity; recency still applies at use. Focus, sketch, and the structural diffusion operator remain unchanged.\n\nImpact details describe the current cascade:\n\n- `warmedMass`, `warmedReasons`, and `warmedEvidence`: per-file heat and the causal channels supporting the ranking.\n- `expectedButUnchanged`: likely companions inferred from directional co-change history, not required edits.\n- `conservedMass`: degree-corrected random-walk heat, reported separately from the raw scale used by sync.\n\nRepeated impact calls do not accumulate pending work. The result and its overflow list describe the current seeds, graph, and historical heat prior; a seedless query does not carry earlier suggestions forward. Focus and dwell retain only their own progressive-disclosure context, while graph refresh and turn sync keep navigation current after source changes.\n\n`docs/heat-diffusion.md` has the full mechanics.\n\n## Configuration\n\nGlobal settings live in `~/.pi/agent/fovea.json`. A trusted repo-level override\nsits in `<repo>/.pi/fovea.json`. These are the same two scopes pi-fabric uses\nwith `fabric.json`. In `/fovea settings`, the configured external-editor key\n(`Ctrl+G` by default) switches both the displayed values and save destination\nbetween project overrides and global defaults. A project override can remain\neffective while its global default is being edited.\n\n| Key | Default | Meaning |\n| --- | :-----: | ------- |\n| `sync.mode` | `\"enabled\"` | `\"enabled\"` shows model-visible sync messages, `\"hidden\"` keeps them model-visible but out of the transcript, and `\"disabled\"` turns sync off. Legacy `sync.enabled` booleans still parse. |\n| `sync.scope` | `\"session\"` | `\"session\"` steers only for top-level directories/root files this conversation entered while indexing the whole root; `\"repository\"` restores root-wide steering. |\n| `sync.budget` | `512` | token cap for proactive steering context |\n| `sync.ackClean` | `false` | toast after clean structural turns |\n| `sync.steerThreshold` | `0.15` | total surprise (channel-weighted heat above the session sync memory) that justifies proactive model steering |\n| `sync.pushFocus` | `true` | embed a budgeted focus preview of the top drift target in red syncs |\n| `tools.defaultBudget` | `512` | fallback maxTokens for the fovea_* tools |\n| `tools.grepMode` | `\"augment\"` | `\"augment\"\\u0020keeps native grep and appends a Fovea graph section to symbol-query results (works with `pi.grep` inside fabric_exec too); `\"replace\"` keeps the legacy takeover where bare symbol queries navigate the graph instead of returning lines; `\"off\"` is native grep only. The legacy boolean `tools.replaceGrep` still parses (`true`\\u2192`\"replace\"`, `false`\\u2192`\"off\"`) and loses to an explicit `grepMode`. |\n| `tools.grepAugmentBudget` | `512` | token cap for the appended graph section |\n\nBudgets cap the rendered view, not the map. Focus and dwell keep every eligible candidate recoverable beyond both the token budget and the 400-candidate display cap. Their `details.lit` counts the full eligible set, while `details.candidateOmitted` counts display-cap exclusions. Whenever a view truncates, the full list spills to `$TMPDIR/pi-fovea-<op>-<hash>.txt` if writable, and the footer names the path. Read or grep that artifact for the remainder; a failed write never produces a false path. Scope filters, already-disclosed nodes, and nodes below the heat cutoff are not added to overflow. `fovea_dwell` remains the semantic widen.\n\n## How routes are found\n\nRoute anchors come from five port shapes. Together they cover most of the\necosystem:\n\n| Port shape | Examples |\n|---|---|\n| `recv.verb(\"path\", handlers…)` | express, koa, fastify, hono, gin, echo, chi, net/http |\n| annotation + optional class prefix | NestJS `@Controller + @Get`, Flask and FastAPI decorators, Spring `@RequestMapping + @GetMapping` |\n| verb embedded in the path | Go 1.22 `mux.HandleFunc(\"GET /x\", h)` |\n| verb as first string argument | chi `r.Method(\"GET\", path, h)`, aiohttp `router.add_route(\"GET\", path, h)` |\n| receiver-less DSL macros | Rails `routes.rb`, Phoenix `router.ex`, Django `path()`, Ktor `routing { get(\"/x\") {} }` |\n\nFile-convention routers keep their paths in the file tree. Next.js App Router,\nPages Router, SvelteKit, Nuxt, and Astro work this way. Fovea derives their\nanchors from file paths. The verb comes from exported handler names or filename\nsuffixes.\n\n### Discovery mode\n\nA repo may write routes in a shape fovea has never seen. The literal pass\nharvests every call shape in it. Shapes with solid statistics get promoted into\nimplicit rules. A discovered anchor carries half the conductance of a declared\none and shows a `△` sigil. Turn sync reports the churn. An unconfirmed\nhypothesis cannot turn the verdict red. Once a known rule matches any site of a\nhub, that hub upgrades to first-class.\n\n```sh\nfovea anchors <root> --discovered   # the △ hypothesis hubs only\nfovea rules <root>                  # promoted rules with evidence\nfovea rules <root> --sigs           # every path-touching signature, by precision\nfovea rules <root> --adopt          # persist promotions into .fovea/rules.json\n```\n\n`.fovea/rules.json` pins community or project rules in the repo:\n\n```json\n{\n  \"rules\": [\n    { \"id\": \"fiber\", \"langs\": [\"Go\"], \"pattern\": \"$R.$M(\\\"$P\\\", $$H)\", \"methods\": \"^(get|post)$\", \"kind\": \"route\" }\n  ]\n}\n```\n\nA rule may declare `prefixPattern`. A class-level prefix such as\n`@Controller('api/airports')` then composes with per-method paths. A change to\nthe rules file invalidates the anchor extraction cache. The parsed facts above\nthe cache carry over.\n\n### Non-HTTP protocol topology\n\nFovea parses protocol grammar locally and deterministically; it does not run a\nlanguage server, descriptor compiler, broker, or model. GraphQL documents emit\nnamed operations, root fields, schema types/type references, and fragments.\nProtocol Buffer documents emit package-qualified services, methods, messages,\nand request/response/field references. Exact generated gRPC method paths join\nback to their method and service. Declared tRPC and oRPC procedures join\nrouter members, split-file route constants, and client calls. Hono routes\nregister through verb methods and `app.on`, and `hc()` RPC client calls join\nthe server-declared hub. Literal publish/subscribe calls join on their channel\nwhile preserving the producer/consumer rule in edge evidence.\n\nRouter object members anchor at every position: the first matching slot is\ncaptured exactly and the remaining members are enumerated from the sibling\ncapture, each at its own line. tRPC receivers must root at the `t` builder or\na `*Procedure` factory, oRPC at the `os` builder, so `trpc.post.list.query()`\nclient proxies and oRPC `oc.*` contract-only shapes stay unlinked rather\nthan guessing a nested name.\n\nValidated against 36 open-source repositories (hono, trpc, unnoq/orpc,\ndocumenso, cal.com, unkey, googleapis, protobuf, saleor, the published GitHub\nschema, mqtt.js, nats, ably, and more): Hono yields 1.2k route anchors plus\n72 RPC-client joins, documenso 214 tRPC procedures, the proto corpus 9.7k\nanchors with zero keyword false-positives, and a 1.2 MB GitHub schema parses\nthrough the raised protocol byte cap.\n\nCanonical ids can be focused directly:\n\n\n```text\nRPC users.v1.Users/GetUser\nRPC SERVICE users.v1.Users\nRPC MESSAGE users.v1.User\nGRAPHQL QUERY user\nGRAPHQL TYPE User\nTRPC loadUser\nORPC ping\nCHANNEL users.changed\n```\n\n**Blind spots** are logged in `src/core/anchors.ts`. The remaining list covers\nRust proc-macro attributes (actix `#[get(\"/x\")]`), constructor-assigned\nprefixes (Flask Blueprint, FastAPI `APIRouter(prefix=…)`, chi `Mount`, Express\n`Router` mounts, Hono `basePath`/`route` sub-apps), `scope` and `namespace`\nnesting in Phoenix, Rails, or Django `include()`, router members behind\nspreads or beyond the first twelve positions, `trpc.post.list.query()` client\nproxies, oRPC dynamic clients, Hono `app.on` with non-standard verbs or path\narrays and `hc()` chains deeper than one segment, GraphQL embedded inside\nhost-language strings, generated gRPC clients with no literal method path,\nand other computed protocol names. Ambiguous strings remain unlinked rather\nthan guessed.\n\n### Coverage and completeness\n\nFile discovery records its source (`git` or bounded filesystem walk), recording\nstate (`complete`, `partial`, or `truncated`), supported/unsupported/excluded\ncounts, exact Git-listing cap omissions, closed nested repositories, unavailable\nGit worktree entries, and unreadable traversal boundaries. Extraction separately\nrecords partial failures, unreadable files, oversized files, and generated files.\nProtocol documents (`.proto`, `.graphql`, `.gql`) use their own larger byte cap\n(`FOVEA_MAX_PROTO_FILE_BYTES`, 8 MB default) because their exact readers never\nreach ast-grep; a real-world schema larger than the code cap still parses.\nLists in tool details are bounded examples; the counters are not. A truncated\nfilesystem walk reports an unknown omission count instead of inventing one.\n`/fovea status` and `fovea status` use this same ledger rather than comparing\nunlike tracked and supported file counts.\n\nImport diagnostics live in `details.coverage.imports`: captured sites are classified as resolved, possible, or unresolved, with bounded examples, cap counts, and languages lacking import readers. Unresolved includes external packages and unmodeled resolution—not necessarily broken code. JS/TS literal `import()` and `require()` targets resolve normally. A relative one-hole expression such as `import('./plugins/' + name + '.js')` or ``require(`./plugins/${name}.js`)`` can connect up to 32 matching in-scope files through explicitly **possible** import edges. A family scans at most 4,096 files; exceeding either limit emits no partial family and reports the cap. Unknown expressions remain unresolved. Possible imports do not become exact call or test edges.\n\nThis is a finite candidate approximation, not a bound on runtime values: variables can contain traversal segments or name generated, external, or excluded modules. Conductance encodes a prior, not a calibrated probability. Selected files have file nodes by construction; relationship completeness, future edits, runtime behavior, and business requirements do not follow from that membership.\n\nThe [39-repository paired corpus](docs/coverage-corpus.md) checks this boundary without repository execution or useful co-change history. It distinguishes ordinary diffused probes from uniform-field display-cap stress, records unsupported/excluded files, and retains failures rather than replacing repositories. The dynamic-family observation is limited to one Vue build utility; regression fixtures separately exercise runtime plugin loading and capped/unknown cases.\n\n## How it works\n\nThe repo compiles to a typed graph. Your question becomes a source vector $s$\nover the nodes. The field the model receives is the heat kernel at time $t$\nover the Laplacian $L$:\n\n$$\nv(t) = e^{-tL} \\cdot s \\quad \\text{with} \\quad L = I - D^{-1/2} W D^{-1/2}\n$$\n\nThe four tools run one operator at four timescales. Sketch runs at $t=16$ with\nproduction hubs and anchors as seeds. Focus drops to $t=2$, seeded by your\nquery. Dwell doubles $t$ inside the current focus. Impact takes changed files\nas its seed. A change of focus resets the sharp timescale and the disclosure\nscope.\n\nA Chebyshev expansion evaluates the kernel. Rescale $M = L - I$ so the spectrum\nsits in $[-1,1]$. With $T_k$ as the Chebyshev polynomials and $I_k$ as the\nmodified Bessel functions:\n\n$$\ne^{-tL} = e^{-t} \\left[ I_0(t) T_0(M) + 2 \\sum_{k\\ge 1} (-1)^k I_k(t) T_k(M) \\right]\n$$\n\nThe vectors $T_k(M) s$ stay cached in the session. A new timescale reuses those\nvectors and pays only for fresh coefficients. They are bound to a hash of the\nordered graph generation (node identities/signatures and weighted, evidenced\nedges). A refresh that changes that generation clears focus/disclosure state;\n`dwell` fails closed and asks for a new focus rather than applying stale node\nindices. The graph walk happens once per generation.\n\nDiscovery measures how often the argument at one slot of a call shape carries a\nroute path. Shapes earn promotion past a Jeffreys-smoothed posterior:\n\n$$\n\\hat{p} = \\frac{\\mathrm{pathN} + \\frac{1}{2}}{\\mathrm{n} + 1} \\ge 0.55 \\quad \\text{with} \\quad \\mathrm{n} \\ge 4 \\text{ sites and} \\ge 2 \\text{ files}\n$$\n\nTests on eight cloned projects put corpus junk below $\\hat{p} \\approx 0.27$.\nReal route shapes land above $\\hat{p} \\approx 0.75$. The cutoff sits mid-cliff\nat any repo size.\n\nThe method draws on spectral-graph wavelets evaluated by shared Chebyshev\nrecurrence. Progressive image coding contributes the budget-as-bitrate view\nover significance-ordered coefficients. Foveated rendering supplies the sharp\ncenter and the coarse rim. Aider's PageRank repo map is the fixed-timescale\nspecial case of this field. [docs/heat-diffusion.md](docs/heat-diffusion.md)\nwalks through conductance tiers, specificity bridges, hub gravity, and inferred\nregions.\n\n## Snapshot substrate API\n\n`pi-fovea/substrate` exposes a versioned, session-free graph and heat interface for\nconsumers such as pi-contour. It assembles caller-supplied immutable facts without\ndiscovering files or reading a live worktree. See [docs/substrate.md](docs/substrate.md).\n\n## Languages\n\nFull symbol and call extraction: **TypeScript, TSX, JavaScript, Python, Go, and Rust**.\nOutline-based symbols: **Elixir, Ruby, C, C++, Java, Kotlin, Lua, PHP, Swift, Scala, Haskell, and Bash**.\nConfig joins through literals: **YAML, JSON, TOML, env, Markdown, and OpenAPI**.\nExact contract topology: **Protocol Buffers (`.proto`) and GraphQL (`.graphql`, `.gql`)**, joined to gRPC, tRPC, oRPC, Hono, and producer/consumer call sites.\n\n**Bend 2 (`.bend`)** uses a native source reader (no ast-grep binary or grammar required):\ndefinitions, laws, datatypes/constructors, explicit calls (including GPU `!`),\nstrings, and local/foreign imports. Module aliases resolve qualified calls.\nA law implemented in the same file shares its definition's symbol. Built-in\n`Base`, hub packages, and out-of-root imports remain unresolved. Operator/desugared\ncalls and proof checking are not modeled; Bend 1/HVM syntax is not supported.\n\n## Development\n\n```sh\nbun install\nbun run check:fast   # Bend laws + artifact parity + typecheck + affected tests\nbun run test:smoke   # curated scan-to-render floor, seconds\nbun run bench        # rate–distortion and refresh bench against ../pi-fabric\nbun run bench tests/fixtures/mini  # self-contained smoke run\n```\n\nDevelopment checks require **Bend 2.0.26** (`bend guide`). See [laws, proofs, and\nwhich tests they can replace](docs/proofs.md). Bend is development-only; the\nextension and published CLI need no Bend installation or generation step.\nProduction executes the committed Bend-compiled disclosure, prefix-accounting,\nand heat-basis command kernels. After changing their sources or adapters, run\n`bun run proofs:generate`; `bun run proofs:artifact` checks the receipt without\nBend. CLI builds check that receipt; publishing also proves and reproduces the\nartifact. The Float64 heat solver still relies on numerical tests, not a proof\nof its approximation or rounding errors.\n\nThe [warm-path performance report](docs/performance.md) compares the coverage-complete implementation with the optimized version. `bun run corpus:performance <coverage-work> <before-source> <after-source> [rounds]` runs alternating, isolated comparisons with a shared extraction snapshot, independent Git indexes, and exact graph, focus/dwell/sketch, and overflow-content checks. It does not trade fewer candidates or weaker freshness checks for speed. For Node, run `NODE_OPTIONS='--import tsx' node scripts/performance-corpus.mjs ...`; development dependencies are required.\n\nWarm matching derives query terms once and caches normalized symbol names by weak node identity, checking renames before reuse. Focus builds only the heat orders currently needed; dwell appends missing orders without replacing its existing basis. No new kernel or review state is introduced. Independent cold extraction can select different literal-join locations when capture order varies, so this paired benchmark deliberately makes no cold-extraction speedup claim.\n\nThe developer benchmark gates timings on semantic equivalence: cold versus\ncached builds, and forced refresh versus clean rebuild after unchanged,\nlocation-only, semantic, added-file, and deleted-file scenarios in disposable\ncopies of the cross-language fixture. It checks facts, weighted edges and\nevidence, coverage, operator contents, and fixture navigation; extraction-order\npermutations and opaque rebuild hashes are not semantic differences. Runtime\nordering and generation invalidation are unchanged.\n\nReports include focus/dwell and refresh median/p95 samples, actual estimated\noutput tokens, and process peak RSS (including the validation work). Cold and\ndisk-warm target builds are single samples; three-sample refresh p95s are only\nsmoke diagnostics. The outline gets no more tokens than Fovea actually used.\n`fidelity@16k` measures disclosed node IDs against a finite larger Fovea response,\n**not independently labeled relevance**. Timing results are informational, never\na flaky CI gate; deterministic equivalence tests run in the change-scoped selection (`bun run test:changed`).\nThe bench clears the target's disposable facts cache to measure cold loading,\nbut edits only temporary fixture copies.\n\npi loads the extension straight from `src/` through jiti, so nothing needs\nbuilding. Per-repo JSONL caches live in `$TMPDIR`, guarded by per-file content\nsha1 values and stat manifests. Cache I/O streams. Only dirty files re-run\nast-grep. Failed extractions keep fact-free hash markers that stay visible\nacross launches. Those files skip the retry on each start. Bump `CACHE_VERSION`\nin `src/core/build.ts` whenever extractor semantics change.\n\n### Temporary-storage retention\n\nRetention runs asynchronously on actual facts/cochange, journal, spill, or scan\nactivity—not extension registration or idle lifecycle hooks. Sweeps are coalesced\nand throttled to once per five minutes per process. No background timer is kept.\nPolicies apply across roots in the OS `tmpdir()` (`$TMPDIR` where supported):\n\n| Artifacts | Retention |\n| --- | --- |\n| Facts + cochange (`pi-fovea-<16hex>.json`, `pi-fovea-cochange-<16hex>.json`) | Combined 128 MiB / 128 files; expire after 7 days; oldest modification first; 5-minute fresh-write grace |\n| Focus/dwell/impact/sketch spills (`pi-fovea-<op>-<8hex>.txt`) | Combined 32 MiB / 128 files; expire after 24 hours; oldest modification first; 1-hour grace for reading advertised paths |\n| Provenance journals (`pi-fovea-provenance-<16hex>-<16hex>.json`) | Only the existing 7-day record TTL; **never pressure-evict fresh attribution** |\n| Partial atomic writes (`<recognized-name>.tmp-<PID>-<UUID>`) and new scan rules (`pi-fovea-scan-<PID>-<UUID>.yml`) | Clean in `finally`; recover abandoned files only after 1 hour and only when their PID is definitely dead |\n\nThese are best-effort, eventual limits, not global quotas: grace periods, active\nwriters, concurrent processes, permission failures, and no subsequent activity can\nleave totals temporarily above budget. Reads do not refresh modification times.\nCache reads/writes are capped at **64 MiB per file**. Oversized facts persistence\nis skipped without changing in-memory extraction, and the prior cache remains\nvalid through normal content/stat checks; oversized disk caches are misses.\nSpills are capped at **8 MiB**; rejected writes omit the artifact pointer, never\nadvertise a truncated full list. All cache/spill replacements use exclusive 0600\nstaging files and atomic rename. Journals retain their existing 256-record cap\nwithout a new byte cap; malformed or oversized journals are conservatively left\nalone by housekeeping.\n\nCleanup recognizes exact names only, checks `lstat` for regular, singly linked,\ncurrent-UID files, and rechecks device/inode/size/mtime/ctime immediately before\nunlink. Symlinks, directories, unrelated names and other users' files are never\ncleanup candidates; unknown ownership is a reason to skip. Platforms without UID\nverification do not create persistent caches, spills or attribution journals;\nanalysis continues without disk reuse and cross-session attribution is unavailable.\nExclusively created per-invocation scan files still clean up by inode identity.\nDescriptor reads remain byte-bounded even if a file grows after validation. Filesystem APIs do not\nprovide atomic unlink-by-inode, so this is best-effort race detection, not a\nsecurity boundary against a hostile same-UID process. New scans have independent\nrule files kept until every chunk finishes, with no unbounded rule-file map.\nLegacy `pi-fovea-scan-*` directories have no trustworthy PID metadata and are left\nfor explicit, separately reviewed reclamation—there is no recursive prefix purge.\nAdjacent configuration staging is also cleaned on write/rename failure, but\nconfiguration files and developer-owned reports are not retention candidates.\nThe performance-corpus benchmark retains `raw.json`/`summary.json` reports under\n`tmpdir()`, but removes its uniquely allocated per-worker scratch (facts and Git\nindex) after worker success or failure. Existing reports, coverage work directories\nand history-corpus data are not swept. For explicit maintenance, the internal\n`pruneTempStorage({ directory })` helper returns eligible paths without mutation;\nonly `{ directory, dryRun: false }` applies the same rechecked policy.\n\n## Acknowledgments\n\nThanks to [Alp](https://www.patreon.com/cw/alpderps), the original user whose request for a better LSP extension started this project.\n\n[MIT](LICENSE).\n","readmeFilename":"README.md"}