23 lines
956 B
TypeScript
23 lines
956 B
TypeScript
import type { Task } from "./types.ts";
|
|
import { orderedTreeRows } from "./ui.ts";
|
|
|
|
export const COMPACTION_REMINDER_TYPE = "pi-todo-herdr-compaction";
|
|
export const COMPACTION_REMINDER =
|
|
"Active tasks exist. Call list_task now; treat its result as authoritative.";
|
|
|
|
export const TASK_PROMPT_GUIDELINES = [
|
|
"For work with 3+ distinct steps, explore enough to understand the scope, then call set_tasks before implementation; otherwise skip tracking. Start one task in-progress.",
|
|
"Use patch_tasks when tasks start, block, or finish; keep statuses accurate before the final response.",
|
|
];
|
|
|
|
export function formatCompactTaskTree(tasks: Task[]): string {
|
|
if (tasks.length === 0) return "No tasks.";
|
|
return orderedTreeRows(tasks)
|
|
.map(({ task, prefix }) => `${prefix}${task.id} [${task.status}] ${task.name}`)
|
|
.join("\n");
|
|
}
|
|
|
|
export function hasUnfinishedTasks(tasks: Task[]): boolean {
|
|
return tasks.some((task) => task.status !== "done");
|
|
}
|