{"_id":"@4fu/pi-tasks","_rev":"3-167c514749ae1c7ddcc057d6cc6957e9","name":"@4fu/pi-tasks","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@4fu/pi-tasks","version":"0.1.0","author":{"name":"4fuu"},"license":"MIT","_id":"@4fu/pi-tasks@0.1.0","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"homepage":"https://github.com/4fuu/pi-tasks#readme","bugs":{"url":"https://github.com/4fuu/pi-tasks/issues"},"dist":{"shasum":"c50809164bbb06daece5bb954df36fc6a80a6925","tarball":"https://registry.npmjs.org/@4fu/pi-tasks/-/pi-tasks-0.1.0.tgz","fileCount":5,"integrity":"sha512-i6ICT3D1Q9JbFX8AOjcToU/ks+pXHlk6XOa2P4isqY1rgLeg9VHY2R++Iu8OFbwBL8t3c5lD/SB9MqTXePjFLQ==","signatures":[{"sig":"MEUCIAU5ColPHI5OhR8f2Hd/BLwYolUrKj7zoQZI3LArv5vqAiEAipiDod+Vcdq5g/FzAz0UxKrCA9gUU01b9g/QerPMqGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18274},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"34ce1baa501917dba2c73f681065c2273e51f000","scripts":{"test":"npm run typecheck && node --import tsx --test tests/*.test.ts","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"repository":{"url":"git+https://github.com/4fuu/pi-tasks.git","type":"git"},"_npmVersion":"10.9.9","description":"Shared task presentation runtime for Pi extensions","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","typescript":"^5.9.0","@types/node":"^24.0.0","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-tui":">=0.84.1 <1","@earendil-works/pi-coding-agent":">=0.84.1 <1"},"_npmOperationalInternal":{"tmp":"tmp/pi-tasks_0.1.0_1786359710905_0.5143581238646953","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@4fu/pi-tasks","version":"0.1.1","author":{"name":"4fuu"},"license":"MIT","_id":"@4fu/pi-tasks@0.1.1","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"homepage":"https://github.com/4fuu/pi-tasks#readme","bugs":{"url":"https://github.com/4fuu/pi-tasks/issues"},"dist":{"shasum":"2c7f3916a6bdd2361e375644e35f2d7a68850c99","tarball":"https://registry.npmjs.org/@4fu/pi-tasks/-/pi-tasks-0.1.1.tgz","fileCount":5,"integrity":"sha512-U3goBxAL7b+W0Q4HFJnezPNhZVFxRPatDLXavWeaU4BtoqgZl7UjNQa1zQeReAzrwJXk4SVycBcNH/zg1TptHQ==","signatures":[{"sig":"MEUCIBkiWY9fMc2vPx0JGgdP5xtzDdJdzyS+gMzTfLgRR5ItAiEAlZvUCNwal6nweAHRUrtYnpcTvO/ExgmnExpQDbsyTlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20358},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"42ffea53b655dff0b7be7cd3a61ed4e27312169d","scripts":{"test":"npm run typecheck && node --import tsx --test tests/*.test.ts","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"repository":{"url":"git+https://github.com/4fuu/pi-tasks.git","type":"git"},"_npmVersion":"10.9.9","description":"Shared task presentation runtime for Pi extensions","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","typescript":"^5.9.0","@types/node":"^24.0.0","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-tui":">=0.84.1 <1","@earendil-works/pi-coding-agent":">=0.84.1 <1"},"_npmOperationalInternal":{"tmp":"tmp/pi-tasks_0.1.1_1786362731369_0.7192601034770352","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@4fu/pi-tasks@0.1.2","bugs":{"url":"https://github.com/4fuu/pi-tasks/issues"},"dist":{"shasum":"ba4cb350b6365149dd3d8b82e318fb551b937e12","tarball":"https://registry.npmjs.org/@4fu/pi-tasks/-/pi-tasks-0.1.2.tgz","fileCount":5,"integrity":"sha512-1nWNKlmHrzClDfTQy/pS4YUiSRbuMjPa9MdRb7ms3YqLsd/x6hzfs/B6AHl3qYk4ULoZ3ZtlQd4SUvlDjzj92A==","signatures":[{"sig":"MEUCIQCxrqZyD6IotOlwoMpgfGVUGwKvPnecpWtNzU1EDxPAZAIgaC5lkaYQU985mMq15zqaGeuhLl9yu75D6VgLHHOIpyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+sv0fFiyt5c0KlrDjK+PfFf9ASB1NMBe8CdQh07XZPQIgbnPPRFHUXYmX04JbEGv46ItSLoo2fj0BovO8+u1TwKo="}],"unpackedSize":20958},"name":"@4fu/pi-tasks","type":"module","types":"./dist/index.d.ts","author":{"name":"4fuu"},"engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"16f1188b714b51c31efcb107375538eabd07491b","license":"MIT","scripts":{"test":"npm run typecheck && node --import tsx --test tests/*.test.ts","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit"},"version":"0.1.2","_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"homepage":"https://github.com/4fuu/pi-tasks#readme","repository":{"url":"git+https://github.com/4fuu/pi-tasks.git","type":"git"},"_npmVersion":"10.9.9","description":"Shared task presentation runtime for Pi extensions","directories":{},"maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","typescript":"^5.9.0","@types/node":"^24.0.0","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-tui":">=0.84.1 <1","@earendil-works/pi-coding-agent":">=0.84.1 <1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-tasks_0.1.2_1787895529294_0.9864220946745537"}}},"time":{"created":"2026-08-10T11:01:50.752Z","modified":"2026-08-28T05:38:49.555Z","0.1.0":"2026-08-10T11:01:51.059Z","0.1.1":"2026-08-10T11:52:11.511Z","0.1.2":"2026-08-28T05:38:49.397Z"},"bugs":{"url":"https://github.com/4fuu/pi-tasks/issues"},"author":{"name":"4fuu"},"license":"MIT","homepage":"https://github.com/4fuu/pi-tasks#readme","repository":{"url":"git+https://github.com/4fuu/pi-tasks.git","type":"git"},"description":"Shared task presentation runtime for Pi extensions","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"readme":"# @4fu/pi-tasks\n\nDependency-only shared task presentation runtime for Pi extensions. Source plugins call `registerTaskReporter(pi, source)` and publish their current catalog. Instances loaded from separate dependency roots coordinate exclusively through the stable `@4fu/pi-tasks/v1` `pi.events` channel. A synchronous probe elects one presentation owner, which alone registers `/tasks` and owns the stable above-editor widget.\n\n## Usage\n\n```ts\nimport { registerTaskReporter } from \"@4fu/pi-tasks\";\nconst tasks = registerTaskReporter(pi, \"python\");\ntasks.publishCatalog(sessionId, currentTasks);\n```\n\nThe package is installed transitively by task source plugins; users normally do not install or configure it directly. Run `/tasks` in interactive mode for a read-only, scrollable snapshot containing active and recent terminal tasks. The compact widget suppresses short-lived work: a task appears only after running for five seconds, then remains visible in its terminal state for at least five seconds before leaving the panel.\n\nAll task plugins must be upgraded together when migrating from older task packages. Mixed generations cannot coordinate their legacy widgets/commands with this channel.\n\n## Development\n\nRequires Node 22.19 or newer. Run `npm install --ignore-scripts`, `npm test`, and `npm pack --dry-run`.\n","readmeFilename":"README.md"}