{"_id":"@capdiem/pi-todo","_rev":"9-e70763551e2aaf9d45a91244632f107e","name":"@capdiem/pi-todo","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@capdiem/pi-todo","version":"0.1.0","keywords":["pi-package","pi","coding-agent","todo","task-planning"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.1.0","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"a39352562a54cd7bc60cb094a9201bbe97f2fb60","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.1.0.tgz","fileCount":5,"integrity":"sha512-Q9jVhLV6s8sRrX57Sw3KtPFjiokPURU7zWqwxJm8oSyAEx7kX6rTXLwXC1P/+2mpYowJoADv6wSKh84Wh+DbwQ==","signatures":[{"sig":"MEUCIEFXmPxBitozUL9fCDmQFOeoPedbendxPGT7Dvv9ZS5MAiEA1MJfyd5ihxHBz8wspVf+EOIzHowZ4c3GcZfp+YjdcWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42841},"type":"module","gitHead":"15722877b248cd3de31ad629adfb17f399f7bceb","_npmUser":{"name":"capdiem","email":"capdiem@live.com"},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.12.1","description":"A minimal atomic todo tool for the Pi coding agent: three states, snapshot updates, stale-write guard, auto-cleanup, and a simple widget","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.1.0_1787817716719_0.3805621674738451","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capdiem/pi-todo","version":"0.1.1","keywords":["pi-package","pi","coding-agent","todo","task-planning"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.1.1","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"bbdf81c542972aa09dd03497d79d10511c9a05a0","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.1.1.tgz","fileCount":5,"integrity":"sha512-eIJp95q39WpXwSUHAAq21dep4p4MEbKkU2NxHv5rTdp4M9O/HA/nk51s2mnBME7gJhePGudxLkSFIydN822j2g==","signatures":[{"sig":"MEUCIQDUJhmp4mnZX+f567Vh6DjKeAbJFAOY4rtftanPAduocAIgLPUDGT78rdv2+745v4XnX/i7CCLEJtJYv6giOjlbVa0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42833},"type":"module","gitHead":"85a32f85582135191f50bbfa22917f9d9a641001","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A minimal atomic todo tool for the Pi coding agent: three states, snapshot updates, stale-write guard, auto-cleanup, and a simple widget","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.1.1_1787820102862_0.9529128696665972","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@capdiem/pi-todo","version":"0.1.2","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.1.2","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"5ae4d5fa174fbebd1a0bc199c5fe0b0a7a3c3cd5","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.1.2.tgz","fileCount":5,"integrity":"sha512-lRAYIIym01CAzV0bAk5imEApdSzAT62NTcF8TzoCj3rxYkme5e/TPyMFaRr6i1bUbiiesGXKWnH6Mpf1U4nj4Q==","signatures":[{"sig":"MEUCIFUd5ho+gsiU0A3DuPGcEePD/cdXc1/w/i70fOV+Dn3KAiEAjxi4fzfIaIPPbeUfng310ByWyOPbwbHvZa7DYzjv+EM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43971},"type":"module","gitHead":"1bcc7b06dde25633e610b5a61ccc9a741b8abffb","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.1.2_1787823521086_0.6089412630462416","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@capdiem/pi-todo","version":"0.1.3","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.1.3","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"e9d73313e21ed3e4804c34022655382ed7b4a067","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.1.3.tgz","fileCount":5,"integrity":"sha512-DQ4p+Ou7lp2lyGDX5p199e4agUA2XAehLGdeFJGPTYwEx5dziTW9Wbf8du+0ch7N1bvFMkxxrZEBZVKy1aI01g==","signatures":[{"sig":"MEUCIQC3XCh2E1BvbAexiRcaZSy0fvlsSlV+QspyVOWG1jAORgIgJl7DfdRPHuH4lnFIwEq8Sr04pWHPvXFZituvVUyGFy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43859},"type":"module","gitHead":"16cdb35cc95fccac6a59d14114a43563060ce90c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.1.3_1787824917711_0.6036376719756766","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@capdiem/pi-todo","version":"0.2.0","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.2.0","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"a5621492be88bdf3bc2a475499b70297d53345cf","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.2.0.tgz","fileCount":5,"integrity":"sha512-Y4zo12/P1LTDAmWxTMXp8G5218RVR3HoxybZkImFTfehSUtpvBahtCwDk1Otc4j/O8Yd1y2O29/m4DAcqk+xDw==","signatures":[{"sig":"MEYCIQDoeGWNINhmJID7UJ4HgpwwgPOSvlISLdHK9JkgpBoGBwIhANeqosmSvi99tU2wBtJuOmzay2ivfRkY0KUC0Mstf837","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43859},"type":"module","gitHead":"1f015b86a43d029bc7c6ae1cd79d598c6f2552ab","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.2.0_1787889489852_0.1860182247569191","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@capdiem/pi-todo","version":"0.2.1","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.2.1","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"9c3e0a204dea9a7eeec32420ed186bf47f8d8a93","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.2.1.tgz","fileCount":5,"integrity":"sha512-n7M6aOuWL7fKuhnBgZkcB2+5pMplV+CsnqeXEd/mi4kYi1LcDIo3LkNtBQPy2bkVLTgaOijpb5IyMsDNaYFFvQ==","signatures":[{"sig":"MEUCIQDY2g3ACZ5BdY3UyFBsLjzFZw4jFZqmlt7Jic3veu+7KQIgcCrr6tXgwiSxyjLb+Z8CbzGt3i2fqK04KIqoLFDbNbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43859},"type":"module","gitHead":"3223fff502458a60ea5d5b9ad42332c90f78baee","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.2.1_1787912871970_0.8253307040359601","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@capdiem/pi-todo","version":"0.3.0","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.3.0","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"90159b61d3cf525f448b9f8100def4a22f3b9deb","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.3.0.tgz","fileCount":5,"integrity":"sha512-aQdZJEHEremDIbYfnyf2HwMzftBHn4CU4WHAC7ckK7cw3hYnow5cBnsp2DZfItraI7m995GMP1gTEiKfULxaEw==","signatures":[{"sig":"MEUCIDmhRrBmEAy6QadzA8LPgS+nnPxi/xlDVRAMf+72KNi+AiEA0iUeF5+Im4eM9/7Uta/Zt/S/K5rbL9nSojIwAToLVjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43859},"type":"module","gitHead":"a90d9fb4062aee994b250fee057cd25f900e9698","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.3.0_1788235855353_0.7378453856009264","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@capdiem/pi-todo","version":"0.3.1","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","_id":"@capdiem/pi-todo@0.3.1","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"homepage":"https://github.com/capdiem/pi-extensions#readme","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"3cb730aa25206f5f99df62d306c19481792c3a90","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.3.1.tgz","fileCount":5,"integrity":"sha512-8g1d1dzj4Nqm4fedLEZYkanaQPYoHySG/ymSLVEb/lXFvYCW7XphIh3iH2xtYQn4iIHKah8G9h+JdsE/DUTccw==","signatures":[{"sig":"MEUCIB4PE5VQNzzwk5+cmBLEA2pomeqltN7mvMQAyb/veNOeAiEAuedjjiGVuSzfiGwt+CABy+L+bgJafykMyggfuCncK7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49146},"type":"module","gitHead":"71149c2d783b219302cf4beba965c4d2e9be07e5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"repository":{"url":"git+https://github.com/capdiem/pi-extensions.git","type":"git","directory":"extensions/pi-todo"},"_npmVersion":"11.17.0","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-todo_0.3.1_1788237379246_0.9050388497887429","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@capdiem/pi-todo","version":"0.3.2","description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","type":"module","pi":{"extensions":["./index.min.js"]},"keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/capdiem/pi-extensions.git","directory":"extensions/pi-todo"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"gitHead":"14a0b5ac333b27bf4ef67deb90f5a8883db83dfb","_id":"@capdiem/pi-todo@0.3.2","bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"homepage":"https://github.com/capdiem/pi-extensions#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-tgHtoTmzUSLoBtFK3koKE4x/0kwFUaQbuPC2AV5bqwmVla7UOE1Q/kmOnpyal2xDmw3CCmBEaX5Mw3joF3zPZA==","shasum":"8ae98c075cf5288a4613bad055e5708066ef077f","tarball":"https://registry.npmjs.org/@capdiem/pi-todo/-/pi-todo-0.3.2.tgz","fileCount":5,"unpackedSize":47918,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capdiem%2fpi-todo@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCMiCinAV3We/gSiTnzWW2vVzergb/hZWwPxxfwTZQBlgIhAJYMWBmB+zQZ2kdpD0z+7RqCLO2/iWT3o983zBa4VSQu"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b712e35f-f7f2-4eca-99cd-eaeaf9131bce"}},"directories":{},"maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-todo_0.3.2_1788250263357_0.41808992319397853"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T08:01:56.520Z","modified":"2026-09-01T08:11:03.804Z","0.1.0":"2026-08-27T08:01:56.852Z","0.1.1":"2026-08-27T08:41:43.052Z","0.1.2":"2026-08-27T09:38:41.206Z","0.1.3":"2026-08-27T10:01:57.859Z","0.2.0":"2026-08-28T03:58:10.009Z","0.2.1":"2026-08-28T10:27:52.109Z","0.3.0":"2026-09-01T04:10:55.491Z","0.3.1":"2026-09-01T04:36:19.393Z","0.3.2":"2026-09-01T08:11:03.502Z"},"bugs":{"url":"https://github.com/capdiem/pi-extensions/issues"},"author":{"name":"capdiem","email":"capdiem@live.com"},"license":"MIT","homepage":"https://github.com/capdiem/pi-extensions#readme","keywords":["pi-package","pi","coding-agent","todo","task-planning","lightweight","widget","sidebar","desktop"],"repository":{"type":"git","url":"git+https://github.com/capdiem/pi-extensions.git","directory":"extensions/pi-todo"},"description":"A lightweight atomic todo tool for the Pi coding agent: one-call snapshot plans, three states, stale-write guard, plus a TUI widget and a pi-agent-desktop sidebar panel","maintainers":[{"name":"capdiem","email":"capdiem@live.com"}],"readme":"# pi-todo\n\nA **lightweight**, minimal, atomic todo tool for the [Pi coding agent](https://pi.dev/).\nThe model writes the complete task plan in one call instead of issuing one\n`create` call per task.\n\nIt is deliberately small — only the essential plan-maintenance core, with no\ndependencies or settings menus, no collapse/expand, and exactly one lightweight\nreminder (a run-end reconcile nudge, see [Features](#features)). The live plan\nrenders as a read-only widget above Pi's input box, and when hosted by\n[pi-agent-desktop](https://github.com/abcwyc/pi-agent-desktop) it also appears\nin the desktop's **left-nav sidebar** todo panel with zero extra configuration\n(desktop-side support is upcoming — see\n[Desktop integration](#desktop-integration)).\n\n## Features\n\n- One-call creation of a complete plan (snapshot semantics)\n- Three statuses: `pending`, `in_progress`, `completed`\n- Stable task keys; omission-based deletion (no `cancelled` or `archived` state)\n- `baseVersion` stale-write guard against concurrent/out-of-order updates\n- At most one `in_progress` task at a time\n- Atomic validation — a failed write never mutates state\n- Completed todos are never auto-removed; the model prunes them (by omitting\n  their keys) once their whole work content is complete\n- State persists in tool-result details and survives `/reload` and `/tree`\n- A read-only widget above Pi's input box using markdown-style glyphs\n  (`[ ]` pending, `[-]` in_progress, `[x]` completed); no collapse/expand\n- **Run-end reconcile reminder (invisible)**: when a turn settles\n  (`agent_settled`) while tasks are still `in_progress`, the extension records a\n  reminder and injects it into the **system prompt of the next turn** via\n  `before_agent_start`. The model is reminded to mark them `completed` if the\n  work is actually done — with **no visible chat message, no extra agent run,\n  and no toggle needed**. It fires at most once per turn, is skipped while the\n  plan has no `in_progress` tasks, and cannot loop (there is no steer message to\n  loop on).\n- When hosted by pi-agent-desktop, the live plan also renders in the desktop's\n  **left-nav sidebar** todo panel (the desktop-owned `pi-agent-desktop:todo`\n  widget extension point) — no extra configuration needed\n\n## Install\n\nThis extension registers the `todo` tool. Remove any other extension that\nowns the same `todo` tool name before installing it, e.g.:\n\n```bash\npi remove <the-other-todo-extension>\npi install npm:@capdiem/pi-todo\n```\n\nTo try it without installing:\n\n```bash\npi -e ./extensions/pi-todo/index.ts\n```\n\n## Tool schema\n\nThe `todo` tool accepts the complete authoritative list of tasks to retain.\nExisting tasks may omit unchanged fields; a new key requires `subject` and\n`status`. Any current key omitted from `tasks` is permanently deleted:\n\n```ts\ntodo({\n  baseVersion?: number,\n  tasks: Array<{\n    key: string,\n    subject?: string,\n    status?: \"pending\" | \"in_progress\" | \"completed\",\n  }>,\n})\n```\n\nExample:\n\n```json\n{\n  \"baseVersion\": 0,\n  \"tasks\": [\n    { \"key\": \"inspect\", \"subject\": \"Inspect the existing implementation\", \"status\": \"in_progress\" },\n    { \"key\": \"implement\", \"subject\": \"Implement the optimized protocol\", \"status\": \"pending\" },\n    { \"key\": \"verify\", \"subject\": \"Verify the implementation\", \"status\": \"pending\" }\n  ]\n}\n```\n\nTo hand work off, include every current key but only send changed fields:\n\n```json\n{\n  \"baseVersion\": 1,\n  \"tasks\": [\n    { \"key\": \"inspect\", \"status\": \"completed\" },\n    { \"key\": \"implement\", \"status\": \"in_progress\" },\n    { \"key\": \"verify\" }\n  ]\n}\n```\n\nSubjects are inherited from the previous snapshot; both status changes commit\natomically.\n\nTo cancel or otherwise delete work, omit its key from the next complete plan.\nDeletion is permanent state removal — there is no `cancelled` status or\narchived record.\n\n## Semantics\n\n- `key` is the task identity while that task remains in the plan.\n- Existing keys inherit omitted fields from their previous state.\n- New keys require `subject` and `status`.\n- Every key present in `tasks` remains in the plan; omitted current keys are\n  permanently deleted.\n- Completed tasks remain visible (struck through) until the model prunes them\n  by omitting their keys once their whole work content is complete.\n- `tasks: []` clears the plan.\n- `baseVersion`, when provided, rejects stale writes.\n- At most one task may be `in_progress` at a time.\n- Validation is all-or-nothing; failed writes do not mutate state.\n- A write that leaves the plan unchanged does not bump the version.\n\nEach successful result includes the current version and complete plan.\n\n## Rendering\n\nThe task list is rendered in a read-only widget above Pi's input box. It always\nshows the full list (no collapse/expand): a progress header plus every task with\na markdown-style status glyph. `in_progress` labels are bold, completed labels\nare struck through. The widget appears only while a plan exists.\n\n## Desktop integration\n\nWhen hosted by [pi-agent-desktop](https://github.com/abcwyc/pi-agent-desktop)\n(in `rpc` mode), the live plan renders in the desktop's **left-nav sidebar**\ntodo panel — a persistent checkbox list next to the chat that stays in view\nwhile you work.\n\nThe plan is pushed over the desktop-owned **todo widget extension point**\n(defined by pi-agent-desktop; see its `lib/todo-state.ts` and\n`docs/todo-widget.md`): a `setWidget` request with the desktop-reserved key\n`\"pi-agent-desktop:todo\"`, one JSON `TodoTask` per line. The desktop routes it\nstraight into its sidebar todo panel. It is fire-and-forget (not persisted);\nwhen the desktop opens a session, this extension's `session_start` restore\nre-emits the current plan, so the panel shows the latest snapshot. The TUI\nkeeps its own component widget (see Rendering) and is unchanged.\n\n> **Status: the desktop-side panel is upcoming.** The todo-panel support\n> currently lives on a feature branch in pi-agent-desktop and has not been\n> merged into a release yet. `@capdiem/pi-todo` already conforms to the\n> `pi-agent-desktop:todo` widget protocol, so once the panel ships you get the\n> sidebar rendering with **zero extra configuration**.\n\n## Persistence\n\nWrites are stored in tool-result `details`. On `session_start` and `/tree`\nnavigation, the extension restores the latest valid state entry from the active\nbranch. (For backwards compatibility it also recognizes legacy hidden\ncustom-message snapshots emitted by older versions that auto-removed completed\ntasks.)\n\nThis minimal extension does **not** handle compaction checkpoints: if compaction\ndrops every `todo` tool result from the branch, the plan resets to empty (the\nmodel's own context still contains the plan text). Add compaction handling from\na full-featured todo extension if that matters to your workflow.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}