From 9df1c0b34b1228c4a57f80bce4395aa32277cd8b Mon Sep 17 00:00:00 2001 From: siage Date: Sat, 12 Apr 2025 00:42:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=BB=E5=8B=99=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=88=87=E5=B7=A5=E5=85=B7=E7=9A=84=E9=97=9C=E8=81=AF?= =?UTF-8?q?=E6=AA=94=E6=A1=88=E6=94=AF=E6=8C=81=EF=BC=8C=E6=93=B4=E5=B1=95?= =?UTF-8?q?=E4=BB=BB=E5=8B=99=E5=8F=83=E6=95=B8=E4=BB=A5=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E7=9B=B8=E9=97=9C=E6=AA=94=E6=A1=88=E5=88=97=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E4=B8=A6=E6=9B=B4=E6=96=B0=E9=A9=97=E8=AD=89=E8=A6=8F=E5=89=87?= =?UTF-8?q?=E4=BB=A5=E7=A2=BA=E4=BF=9D=E6=AA=94=E6=A1=88=E8=B7=AF=E5=BE=91?= =?UTF-8?q?=E3=80=81=E9=A1=9E=E5=9E=8B=E5=8F=8A=E6=8F=8F=E8=BF=B0=E7=9A=84?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=80=A7=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=BB?= =?UTF-8?q?=E5=8B=99=E7=AE=A1=E7=90=86=E7=9A=84=E9=9D=88=E6=B4=BB=E6=80=A7?= =?UTF-8?q?=E8=88=87=E5=AE=8C=E6=95=B4=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/taskModel.ts | 4 +++- src/tools/taskTools.ts | 18 ++++++++++++++++++ src/types/index.ts | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) 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[]; // 與任務相關的文件列表(選填) }>; }