{"_id":"@arhen/pi-core-todo","_rev":"8-a0bf781666da2a847dd1b74e690ceb28","name":"@arhen/pi-core-todo","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@arhen/pi-core-todo","version":"1.0.0","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"license":"MIT","_id":"@arhen/pi-core-todo@1.0.0","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"89a184b9185f6fe13d8ac8493ed70ed67df8570a","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.0.tgz","fileCount":8,"integrity":"sha512-7TR1ev6kepccBG87gdJ2eXaxQa7T/yWqcRK0WgEBH/ZDuUGR1BUsCXxkjq7PHXfMHSADaDUTHZiSPtZDjQ9eiA==","signatures":[{"sig":"MEUCIQDst+hwUdYUPgJWG90pcq3oD2jm9JwpFTAzG6HefaSDdgIgCN0ygt4idyCoYYoilY+zAZog4Tj+7KhHQBHMt263MPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38573},"main":"./src/index.ts","type":"module","gitHead":"f3d0ba2a4279aba68164e663de538a7f9af78f99","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.0_1786858681683_0.5979916207856879","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arhen/pi-core-todo","version":"1.0.1","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"license":"MIT","_id":"@arhen/pi-core-todo@1.0.1","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"4f0af1a20ab51131e4e818ee331ab75a0833f77d","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.1.tgz","fileCount":8,"integrity":"sha512-mSMpX6p9ILFmzpdyd/Ti1ZE5TPHC2rxOEiEsj/xd/oPMBAZD1Dj9uxVPXhNEqXFnkLJRydiSvgrB2E5mic7fMQ==","signatures":[{"sig":"MEQCIHQL4hQ3OihO8RhWe3JEU4ICvf1pY1PXLrqhxDRm8xaCAiB8LOAJlr2MnkfI2kwsgop3I4oZpDFIxCEU/YXDw9zgFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39247},"main":"./src/index.ts","type":"module","gitHead":"a501a9eb2f72ac101c50fad15a40bace6bc78d7e","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.1_1786866976812_0.36049434151574156","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@arhen/pi-core-todo","version":"1.0.2","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"license":"MIT","_id":"@arhen/pi-core-todo@1.0.2","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"6ec96053d022a89bd1568cdc8d3b3f1d083f8f9c","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.2.tgz","fileCount":8,"integrity":"sha512-MJxoqVN+OunUjanGd3Eo99Jq8W0L0T19gyKRl+JhPzyHy9meQgVPO/NLjanUetJ8J0doRIiAJKr0IlTmkEEbTw==","signatures":[{"sig":"MEUCIQCJw0CgMAPv/ElBocHS33hWMP/HOKg6Pf1CDdbaNF26lwIgBmKr/geV9z5dr8XzZnEBJ0mAp3zYm5y+8q2+QnlKtrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40139},"main":"./src/index.ts","type":"module","gitHead":"1269986591e2dc05d82f754abdd101aaa521689c","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.2_1786867365497_0.9663411579526464","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@arhen/pi-core-todo","version":"1.0.3","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"license":"MIT","_id":"@arhen/pi-core-todo@1.0.3","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"091ea6bb2a7507d16c22a312a283bf10c2396d63","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.3.tgz","fileCount":8,"integrity":"sha512-Gx8tI/vUqz2YG2A6ff0gfeuifLsgjvAintAblgu3tFz7N+x6Mt5EySFSX+gOJAp2FcUE3LVpOn91mWiPrKo/aQ==","signatures":[{"sig":"MEQCIHrMjfLh0KPK036uNHIAeQni8aujBpIDkdL49GwsU2cvAiAZa1AoYjhfX4i2l+92zFtaZcEFMvfuzba8TCngMWJMlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40938},"main":"./src/index.ts","type":"module","gitHead":"e88bc118eeb4efb9bc5fd25bc1a02ead969f9bff","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.3_1786868107194_0.007719901441147092","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@arhen/pi-core-todo","version":"1.0.4","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"license":"MIT","_id":"@arhen/pi-core-todo@1.0.4","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"ed9736ff9454011f3deda506050c348bfdb6f8ed","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.4.tgz","fileCount":8,"integrity":"sha512-tw7YWHdb3/4jBVSyhSjbxAZAXbczeBBkBSG01dBmai54Fgi0/maxEGEU66JVHv/fvqZtw77Y/3doyw1xpD1PQA==","signatures":[{"sig":"MEUCIQCFqif0eWJUXHKoy76HoYCdt5KvcULNCnuBtfpMSmLCWQIgOG+99zOFppcnfy8ijKv0YIICI3/sfG7HpB3VXuBkTak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42193},"main":"./src/index.ts","type":"module","gitHead":"cad2550db3babcdbe07999c7928a684bf4675aab","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.4_1786868902302_0.9200062279441155","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@arhen/pi-core-todo","version":"1.0.5","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"author":{"name":"arhen"},"license":"MIT","_id":"@arhen/pi-core-todo@1.0.5","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"homepage":"https://github.com/arhen/pi-core-todo#readme","bugs":{"url":"https://github.com/arhen/pi-core-todo/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"dc4e2cb290cb2faa5b43e0dff78c620d84341301","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.5.tgz","fileCount":8,"integrity":"sha512-5AJd7/+53P2maIiJSl1Pe+c8RJev22ds0crh66gycoO0ho1zO6vEMdP0xnt8fhIwzxMPpc73P7TKIOItXQ+XyQ==","signatures":[{"sig":"MEQCICIruKBSAQVihtG12aGJRqU9S5ZF4k2uSzeaFXCl+IwOAiBN2j+4ajSDdOk4Ljoe/0x3gafZy4c8r+rruqD5dWpEaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42976},"main":"./src/index.ts","type":"module","gitHead":"c427a33e38a5ebb046a792e0497120830c0d55eb","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"repository":{"url":"git+https://github.com/arhen/pi-core-todo.git","type":"git"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.5_1786890183343_0.6006227789006149","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@arhen/pi-core-todo","version":"1.0.6","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"author":{"name":"arhen"},"license":"MIT","_id":"@arhen/pi-core-todo@1.0.6","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"homepage":"https://github.com/arhen/pi-extensions#readme","bugs":{"url":"https://github.com/arhen/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"31f57ab7cd75559b7881041463a189f7a6308794","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.6.tgz","fileCount":8,"integrity":"sha512-t+E5UIG0sdZvmDkKjvYT/zNvpFq0F0wfsU24ThnG0g8JUx1R1MIMNrqD59u484Eq8R9Ddvbe4fFfWLhEO5u8ww==","signatures":[{"sig":"MEUCIQD161oGurY9Orwlk7l6WjM3GBferw5oqT5aHV37zBaU/wIgCreI6b7zhEb3+WFZq3qVgsD+XvL/8+V7go8JT/kjH4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43158},"main":"./src/index.ts","type":"module","gitHead":"5cad6a5943bb5ca20a7774f4036ab5028822cc4d","_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"repository":{"url":"git+https://github.com/arhen/pi-extensions.git","type":"git","directory":"packages/core/pi-core-todo"},"_npmVersion":"10.9.2","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","directories":{},"_nodeVersion":"23.8.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@earendil-works/pi-agent-core":"^0.84.2"},"peerDependencies":{"typebox":"^1.3.14","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-core-todo_1.0.6_1786950641180_0.008524200960394746","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@arhen/pi-core-todo","version":"1.0.7","type":"module","description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","license":"MIT","author":{"name":"arhen"},"repository":{"type":"git","url":"git+https://github.com/arhen/pi-extensions.git","directory":"packages/core/pi-core-todo"},"main":"./src/index.ts","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"peerDependencies":{"@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2","@earendil-works/pi-tui":"^0.84.2","typebox":"^1.3.14"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"pi":{"extensions":["./src/index.ts"]},"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2"},"_id":"@arhen/pi-core-todo@1.0.7","gitHead":"ac007b990447e17a3e10b797ac4dee0a7c71386f","bugs":{"url":"https://github.com/arhen/pi-extensions/issues"},"homepage":"https://github.com/arhen/pi-extensions#readme","_nodeVersion":"23.8.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-IH/BZKQ4xgODxRG5SJwMi5C8+EtMNweRgqdaxblGid1Adc/pEq6eVoVdttxq8yWn/3pWNO8BESy1e1wUGX5Q5w==","shasum":"e4bce235d8a9a480ce8b93fa382b41d8180588b8","tarball":"https://registry.npmjs.org/@arhen/pi-core-todo/-/pi-core-todo-1.0.7.tgz","fileCount":8,"unpackedSize":42427,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAmiDUXkMsYxYSJS12akwsouyrr4eXEg2Bl7TPCAYXN2AiAtGtEHKxefuzzXvSO1/2bun7Vz03WOe1Qpq3kYTc5x+A=="}]},"_npmUser":{"name":"arhen","email":"itsme.arhen@gmail.com"},"directories":{},"maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-core-todo_1.0.7_1787383399642_0.9922782628954754"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T05:38:01.515Z","modified":"2026-08-22T07:23:19.932Z","1.0.0":"2026-08-16T05:38:01.830Z","1.0.1":"2026-08-16T07:56:16.965Z","1.0.2":"2026-08-16T08:02:45.674Z","1.0.3":"2026-08-16T08:15:07.344Z","1.0.4":"2026-08-16T08:28:22.467Z","1.0.5":"2026-08-16T14:23:03.521Z","1.0.6":"2026-08-17T07:10:41.304Z","1.0.7":"2026-08-22T07:23:19.781Z"},"bugs":{"url":"https://github.com/arhen/pi-extensions/issues"},"author":{"name":"arhen"},"license":"MIT","homepage":"https://github.com/arhen/pi-extensions#readme","keywords":["pi","pi-coding-agent","pi-extension","pi-package","todo"],"repository":{"type":"git","url":"git+https://github.com/arhen/pi-extensions.git","directory":"packages/core/pi-core-todo"},"description":"Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.","maintainers":[{"name":"arhen","email":"itsme.arhen@gmail.com"}],"readme":"# @arhen/pi-core-todo\n\n[![npm version](https://img.shields.io/npm/v/@arhen%2Fpi-core-todo?color=cb3837&logo=npm)](https://www.npmjs.com/package/@arhen/pi-core-todo)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n[![pi extension](https://img.shields.io/badge/pi-extension-7c3aed)](https://github.com/earendil-works/pi)\n\n## Install\n\nRequires the [pi coding agent](https://github.com/earendil-works/pi) — install it first: `npm install -g @earendil-works/pi-coding-agent`.\n\n```sh\npi install npm:@arhen/pi-core-todo\n```\n\n> Registers the `todo` tool — conflicts with other todo extensions (`@juicesharp/rpiv-todo`). Run one at a time.\n\nMinimalist pi todo extension: `todo` tool with a 4-state machine and `blockedBy` dependencies, `/todos` command, persistent tree widget. Fork of `@juicesharp/rpiv-todo`, cut to the core — no i18n, no branch replay, no config, no lazy-loading machinery.\n\n## Widget\n\n![Todos widget](docs/todo-widget.png)\n\nAbove-editor tree: `● Todos (2/5)` heading, `✓` strikethrough for completed, `◐` for in-progress with `activeForm` in parens, `○` for pending.\n\n## What's kept\n\n- `todo` tool: create / update / list / get / delete / clear\n- 4-state machine: `pending → in_progress → completed`, `deleted` tombstone (legal-transition validation)\n- `blockedBy` dependencies: create with initial set, `addBlockedBy` / `removeBlockedBy` additive updates, self-block and cycle rejection\n- `/todos` command: grouped status listing\n- Tree widget above the editor: `● Todos (n/m)` heading, `├─/└─` rows, status glyphs, `#id` + `⛓` deps when present, completed rows hide one turn after completion\n- Per-session state isolation (detached/child sessions never clobber each other)\n- Sidecar persistence (`~/.pi/agent/pi-todo-state.json`, debounced) — survives restarts\n\n## What's cut (vs rpiv-todo)\n\n- i18n/locales — inline English\n- Branch/fork replay — replaced by sidecar persistence (no replay of history across forked sessions)\n- Config dialog, collapse shortcut, guidance validation — fixed behavior\n- Lazy overlay loader + stale-module detection — direct import, register-once widget\n\n## Tool contract\n\nSame LLM-facing schema as rpiv-todo: `action` (required) + per-action fields (`subject`, `status`, `id`, `blockedBy`, `addBlockedBy`, `removeBlockedBy`, `activeForm`, `description`, `owner`, `metadata`, `includeDeleted`). Prompt guidelines preserved verbatim (never batch completions, one task in_progress at a time, keep it in_progress on failure).\n\n## Development\n\n```sh\nbun install\nnpx tsc --noEmit\nbun test   # pure-logic: reducer, transitions, cycles, sanitize\n```\n\n## License\n\nMIT.\n\n## Notes\n\n- Sidecar persistence assumes a **single pi process** per agent dir; concurrent processes overwrite each other's todo state.\n","readmeFilename":"README.md"}