import { executeTodoToolAction } from "./todos-execute.js";
import { getTodosDirLabel } from "./todos-paths.js";
import { renderTodoCall, renderTodoResult } from "./todos-render.js";
import { TodoParams } from "./todos-types.js";
export const DEFAULT_PROMPT_GUIDANCE = [
    "**To-do management**: If the user has a complex task that can be broken down into actionable steps, use the `todo` tool to create a task list before proceeding. This ensures clarity and alignment with the user's goals and that you have a way to track your work and ensure you are meeting the user's expectations.",
];
export function createTodoToolDefinition(cwd = process.cwd()) {
    const todosDirLabel = getTodosDirLabel(cwd);
    return {
        name: "todo",
        label: "Todo",
        description: `Manage file-based todos in ${todosDirLabel} (list, list-all, get, create, update, append, delete, claim, release). ` +
            "Title is the short summary; body is long-form markdown notes (update replaces, append adds). " +
            "Todo ids are shown as TODO-<hex>; id parameters accept TODO-<hex> or the raw hex filename. " +
            "Claim tasks before working on them to avoid conflicts, and close them when complete.",
        parameters: TodoParams,
        promptGuidelines: DEFAULT_PROMPT_GUIDANCE,
        execute: (_toolCallId, params, _signal, _onUpdate, ctx) => executeTodoToolAction(params, ctx),
        renderCall: renderTodoCall,
        renderResult: renderTodoResult,
    };
}
//# sourceMappingURL=todos.js.map