{"_id":"@anton-kochev/pithos.echo","_rev":"2-6b4fe45b65866956b19980e822b84b02","name":"@anton-kochev/pithos.echo","dist-tags":{"bootstrap":"0.0.0","latest":"0.4.1"},"versions":{"0.0.0":{"name":"@anton-kochev/pithos.echo","version":"0.0.0","keywords":["pi-package","pi-extension","pithos","echo","ask","read-only"],"license":"MIT","_id":"@anton-kochev/pithos.echo@0.0.0","maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"homepage":"https://github.com/anton-kochev/pithos-kit#readme","bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"148d1acd46e4c772a1deec23b0b6ea45f50991ac","tarball":"https://registry.npmjs.org/@anton-kochev/pithos.echo/-/pithos.echo-0.0.0.tgz","fileCount":4,"integrity":"sha512-GKDrEkSpsZB58nBbAj7OyFt8ueE9qOBANEYjF7AIm+moxhUZLtV2Byz96o0EMWyLmSfxBayLuem95qi0JL+iMA==","signatures":[{"sig":"MEYCIQDo9dKFjdnlH5MqgApSOQrpPlZW6Rnah0Ml2TaibgzDiwIhALY4g7XC63lhWLjJ9RJPhecQ88xk5DRziwfPiynoBgtD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27986},"type":"module","_npmUser":{"name":"anton-kochev","email":"anton.kochev@gmail.com"},"repository":{"url":"git+https://github.com/anton-kochev/pithos-kit.git","type":"git","directory":"pithos.echo"},"_npmVersion":"10.9.2","description":"Echo: a read-only side-channel question asker for Pi sessions and project code.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"jiti":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pithos.echo_0.0.0_1786363296418_0.33652026783460043","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@anton-kochev/pithos.echo","version":"0.4.1","description":"Echo: a read-only side-channel question asker for Pi sessions and project code.","keywords":["pi-package","pi-extension","pithos","echo","ask","read-only"],"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/anton-kochev/pithos-kit.git","directory":"pithos.echo"},"publishConfig":{"access":"public"},"dependencies":{"jiti":"^2.4.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"pi":{"extensions":["./extensions"]},"gitHead":"14e32cc67fc85c72b7588bf1c31b78361f1eaa8c","_id":"@anton-kochev/pithos.echo@0.4.1","bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"homepage":"https://github.com/anton-kochev/pithos-kit#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-j8frH1RUojYK7hiSjJcHA79OKlMsZQbUZBjtTsE7iReRmPkATL7RlfZmxy0ZvZv0sBJv4nOuTDThFU4tcV0V1g==","shasum":"9a08dddc97e4072f43f1393c43c8351df0c6da78","tarball":"https://registry.npmjs.org/@anton-kochev/pithos.echo/-/pithos.echo-0.4.1.tgz","fileCount":4,"unpackedSize":27986,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anton-kochev%2fpithos.echo@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIES0qxKO9DlnaZ7hfdFtAW5vfPZgG2oOBjLzS4p+LuCrAiEAhwPYMhdj54kA/ksIjcOZukAKIe4QnI1umoS182VoSZ4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:df0a88ba-f704-45f1-9f1c-1de407b6a3fe"}},"directories":{},"maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pithos.echo_0.4.1_1786376175669_0.14809531272883092"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-10T12:01:28.980Z","modified":"2026-08-10T15:36:16.254Z","0.0.0":"2026-08-10T12:01:36.575Z","0.4.1":"2026-08-10T15:36:15.817Z"},"bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"license":"MIT","homepage":"https://github.com/anton-kochev/pithos-kit#readme","keywords":["pi-package","pi-extension","pithos","echo","ask","read-only"],"repository":{"type":"git","url":"git+https://github.com/anton-kochev/pithos-kit.git","directory":"pithos.echo"},"description":"Echo: a read-only side-channel question asker for Pi sessions and project code.","maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"readme":"# echo\n\nA read-only side-channel question asker for pi sessions and project code.\n\nEcho adds a `/ask` command that spawns an isolated pi side-process with only read-only tools enabled. Answers are shown to you and stored in extension history, but they are not injected into the main agent context — so you can probe the session and project without polluting the conversation that's doing real work.\n\n## Install\n\n```bash\npi install npm:@anton-kochev/pithos.echo\n```\n\nPin to a version:\n\n```bash\npi install npm:@anton-kochev/pithos.echo@<version>\n```\n\nFor local development from a checkout of [`pithos-kit`](https://github.com/anton-kochev/pithos-kit):\n\n```bash\npi install ./pithos.echo\n```\n\nProject-local install:\n\n```bash\npi install ./pithos.echo -l\n```\n\nTemporary test run:\n\n```bash\npi -e ./pithos.echo\n```\n\n## Pithos `.pithos` config\n\n```yaml\npi:\n  extensions:\n    \"@anton-kochev/pithos.echo\": \"npm:0.4.1\"\n```\n\n## Commands\n\nInside pi:\n\n```text\n/ask [--model <provider/model>] [--] <question>\n/asked\n/ask-clear\n```\n\n- `/ask` — ask Echo a question.\n- `/asked` — browse previous Echo answers interactively with ↑/↓ and open one with Enter.\n- `/ask-clear` — clears any stale Echo widget left by older versions.\n\n## What Echo can access\n\nEcho launches an isolated Pi side process with only read-only tools enabled:\n\n- `read`\n- `grep`\n- `find`\n- `ls`\n\nIt does **not** receive `bash`, `edit`, or `write`. Echo runs from the current project directory, so it can inspect source code and project files read-only.\n\n## Session context strategy\n\nEcho uses progressive disclosure to keep token usage low:\n\n1. A small recent-session excerpt is included in the side-agent prompt.\n2. The full current-session transcript is written to a temporary markdown file.\n3. The side agent is instructed to inspect that transcript only when needed, preferably with targeted `grep`/`read` calls.\n4. The temporary transcript is deleted after the side process exits.\n\n## Examples\n\n```text\n/ask what is this session about?\n/ask what files define the extension loading behavior?\n/ask --model anthropic/claude-haiku-4-5 summarize the recent decisions\n/asked\n```\n\n## Notes\n\nThis package imports pi runtime packages as peer dependencies:\n\n- `@earendil-works/pi-coding-agent`\n- `@earendil-works/pi-tui`\n- `typebox`\n\nDo not bundle those dependencies; pi provides them at runtime.\n\n`extensions/index.ts` is a thin jiti trampoline that disables jiti's module cache for `src/echo.ts`, so editing the implementation and running `/reload` always evaluates the newest code.\n","readmeFilename":"README.md"}