deleteTask.ts•1.7 kB
/**
* deleteTask prompt generator
* Responsible for combining templates and parameters into the final prompt
*/
import {
loadPrompt,
generatePrompt,
loadPromptFromTemplate,
} from "../loader.js";
import { Task } from "../../types/index.js";
/**
* deleteTask prompt parameter interface
*/
export interface DeleteTaskPromptParams {
taskId: string;
task?: Task;
isTaskCompleted?: boolean;
isSuccess?: boolean;
success?: boolean;
message?: string;
error?: string;
taskNotFound?: boolean;
}
/**
* Get the complete deleteTask prompt
* @param params prompt parameters
* @returns generated prompt
*/
export function getDeleteTaskPrompt(params: DeleteTaskPromptParams): string {
const { taskId, task, isTaskCompleted, isSuccess, success, error, taskNotFound, message } = params;
// Handle case where task doesn't exist
if (taskNotFound) {
const notFoundTemplate = loadPromptFromTemplate("deleteTask/notFound.md");
return generatePrompt(notFoundTemplate, {
taskId,
});
}
// Handle case where task is already completed
if (isTaskCompleted) {
const completedTemplate = loadPromptFromTemplate(
"deleteTask/completed.md"
);
return generatePrompt(completedTemplate, {
taskId,
taskName: task?.name || "",
});
}
// Handle case of successful or failed deletion
const resultTemplate = loadPromptFromTemplate("deleteTask/success.md");
let prompt = generatePrompt(resultTemplate, {
taskId,
taskName: task?.name || "",
isSuccess: isSuccess || success || false,
error: error || "",
message: message || "",
});
// Load possible custom prompt
return loadPrompt(prompt, "DELETE_TASK");
}