diff --git a/src/models/taskModel.ts b/src/models/taskModel.ts index 6afde29..0e50c50 100644 --- a/src/models/taskModel.ts +++ b/src/models/taskModel.ts @@ -261,6 +261,7 @@ export async function batchCreateOrUpdateTasks( description: string; notes?: string; dependencies?: string[]; + relatedFiles?: RelatedFile[]; }>, isOverwrite: boolean ): Promise { @@ -287,7 +288,8 @@ export async function batchCreateOrUpdateTasks( taskData.name, taskData.description, taskData.notes, - [] // 空依賴列表 + [], // 空依賴列表 + taskData.relatedFiles // 添加關聯檔案 ); // 將新任務添加到映射表 diff --git a/src/tools/taskTools.ts b/src/tools/taskTools.ts index 58beed1..404da4c 100644 --- a/src/tools/taskTools.ts +++ b/src/tools/taskTools.ts @@ -261,6 +261,24 @@ export const splitTasksSchema = z .describe( "此任務依賴的前置任務ID或任務名稱列表,支持兩種引用方式,名稱引用更直觀" ), + relatedFiles: z + .array( + z.object({ + path: z + .string() + .min(1, { message: "檔案路徑不能為空" }) + .describe("檔案路徑,相對於專案根目錄"), + type: z + .nativeEnum(RelatedFileType) + .describe("檔案類型,用於區分不同類型的檔案"), + description: z + .string() + .min(1, { message: "檔案描述不能為空" }) + .describe("檔案描述,用於說明檔案的用途和內容"), + }) + ) + .optional() + .describe("與任務相關的檔案列表,包含檔案路徑、類型和描述"), }) ) .min(1, { message: "至少需要提供一個任務,請確保任務列表不為空" }) diff --git a/src/types/index.ts b/src/types/index.ts index eaad00c..3b3b043 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -71,6 +71,7 @@ export interface SplitTasksArgs { description: string; // 詳細的任務描述,包含實施要點、技術細節和驗收標準 notes?: string; // 補充說明、特殊處理要求或實施建議(選填) dependencies?: string[]; // 此任務依賴的前置任務ID列表,形成任務的有向無環依賴圖 + relatedFiles?: RelatedFile[]; // 與任務相關的文件列表(選填) }>; }