94 lines
2.6 KiB
TypeScript
Raw Normal View History

/**
* verifyTask prompt
* prompt
*/
import { loadPrompt, generatePrompt } from "../loader.js";
import * as templates from "../templates/verifyTask.js";
import { Task } from "../../types/index.js";
/**
* verifyTask prompt
*/
export interface VerifyTaskPromptParams {
task: Task;
}
/**
*
* @param content
* @param maxLength
* @returns
*/
function extractSummary(content: string, maxLength: number): string {
if (!content) return "";
if (content.length <= maxLength) {
return content;
}
// 簡單的摘要提取:截取前 maxLength 個字符並添加省略號
return content.substring(0, maxLength) + "...";
}
/**
* verifyTask prompt
* @param params prompt
* @returns prompt
*/
export function getVerifyTaskPrompt(params: VerifyTaskPromptParams): string {
const { task } = params;
// 處理注意事項
const notes = task.notes ? `**注意事項:** ${task.notes}\n` : "";
// 開始構建基本 prompt
let basePrompt = generatePrompt(templates.verifyTaskTemplate, {
name: task.name,
id: task.id,
description: task.description,
notes: notes,
});
// 添加任務特定的驗證標準(如果有)
if (task.verificationCriteria) {
basePrompt += generatePrompt(templates.verificationCriteriaTemplate, {
verificationCriteria: task.verificationCriteria,
});
}
// 添加實現指南摘要(如果有)
if (task.implementationGuide) {
const implementationGuideSummary =
task.implementationGuide.length > 200
? task.implementationGuide.substring(0, 200) + "... (參見完整實現指南)"
: task.implementationGuide;
basePrompt += generatePrompt(templates.implementationGuideSummaryTemplate, {
implementationGuideSummary: implementationGuideSummary,
});
}
// 添加分析結果摘要(如果有)
if (task.analysisResult) {
basePrompt += generatePrompt(templates.analysisSummaryTemplate, {
analysisSummary: extractSummary(task.analysisResult, 300),
});
}
// 添加標準驗證標準
basePrompt += templates.standardVerificationCriteriaTemplate;
// 添加報告要求
basePrompt += templates.reportRequirementsTemplate;
// 添加決策點
basePrompt += templates.decisionPointsTemplate;
basePrompt += templates.decisionPoint1;
basePrompt += templates.decisionPoint2;
basePrompt += templates.decisionPoint3;
// 載入可能的自定義 prompt
return loadPrompt(basePrompt, "VERIFY_TASK");
}