import type { Tool } from '../core/tools/tool-types.js'; /** * todo_write — long-task progress "external brain". * * Same model, a multi-step refactor loses the thread less when the plan is * materialized as a tool result rather than held in the model's short-term * memory. The returned checklist is a normal tool_result, so the next turn * always sees it — no separate persistence layer needed (the agent loop's * message history is the store). * * Design notes: * - stateless on purpose: each call replaces the full list. This avoids a * module-level mutable store (forbidden in library packages) and keeps the * model honest about the whole plan rather than mutating piecemeal. * - exactly one todo should be `in_progress` at a time; the renderer * highlights it so the model (and user) can see what's being worked on. */ export type TodoStatus = 'pending' | 'in_progress' | 'completed'; export interface TodoItem { content: string; status: TodoStatus; } export declare const TODO_STATUS_GLYPH: Record; export declare function formatTodos(todos: TodoItem[]): string; /** * Parse a todo_write tool_result body back into structured items. * Returns null when the text is not a checklist; [] when explicitly cleared. * Used by the TUI sticky task panel (Claude Code / Grok Todo parity). */ export declare function parseTodoChecklistText(text: string): TodoItem[] | null; export declare const todoWriteTool: Tool; //# sourceMappingURL=todo-tool.d.ts.map