Add todo.ts (verbatim copy of upstream examples/extensions/todo.ts)
Provides the agent with a 'todo' tool (list/add/toggle/clear) and registers /todos for the user. Useful for externalising multi-step plans during long arcs. State persists in tool result details rather than an external file, which means: pi --continue brings todos back with the session, and /fork forks the todo state along with the branch. Copied not symlinked because the upstream path lives under a homebrew-versioned Cellar dir that rotates on every pi upgrade. Refresh procedure documented in AGENTS.md.
This commit is contained in:
@@ -193,6 +193,16 @@ A footer line shows pending changes (e.g. `pending: notify→off, foo→on`) so
|
||||
3. In a running pi session, `/reload` is enough; no restart needed
|
||||
4. (or, with `ext-toggle` installed: `/ext` to disable noisy ones at runtime)
|
||||
|
||||
### `todo.ts`
|
||||
|
||||
Gives the agent a `todo` tool (actions: `list` / `add` / `toggle` / `clear`) so it can externalize a multi-step plan and tick items off as it works. Also registers `/todos` so you can inspect the current list at any time.
|
||||
|
||||
State lives in the session's tool result `details`, not an external file. So:
|
||||
- `pi --continue` / `--resume` brings the todos back with the conversation.
|
||||
- `/fork` forks the todo list along with the branch — each branch has its own state.
|
||||
|
||||
This is a verbatim copy of the upstream `examples/extensions/todo.ts` shipped with `pi-coding-agent`. Refresh from upstream when desired (see `AGENTS.md`).
|
||||
|
||||
Each extension is a TypeScript module loaded by [jiti](https://github.com/unjs/jiti) — no compilation step. See the [pi extensions docs](https://github.com/mariozechner/pi-coding-agent/blob/main/docs/extensions.md) and the [built-in examples](https://github.com/mariozechner/pi-coding-agent/tree/main/examples/extensions) for the API surface.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user