mcp-taskflow 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE.md +21 -0
- package/README.md +275 -0
- package/dist/config/pathResolver.d.ts +33 -0
- package/dist/config/pathResolver.d.ts.map +1 -0
- package/dist/config/pathResolver.js +130 -0
- package/dist/config/pathResolver.js.map +1 -0
- package/dist/data/fileOperations.d.ts +43 -0
- package/dist/data/fileOperations.d.ts.map +1 -0
- package/dist/data/fileOperations.js +248 -0
- package/dist/data/fileOperations.js.map +1 -0
- package/dist/data/memoryStore.d.ts +86 -0
- package/dist/data/memoryStore.d.ts.map +1 -0
- package/dist/data/memoryStore.js +216 -0
- package/dist/data/memoryStore.js.map +1 -0
- package/dist/data/rulesStore.d.ts +63 -0
- package/dist/data/rulesStore.d.ts.map +1 -0
- package/dist/data/rulesStore.js +196 -0
- package/dist/data/rulesStore.js.map +1 -0
- package/dist/data/schemas.d.ts +840 -0
- package/dist/data/schemas.d.ts.map +1 -0
- package/dist/data/schemas.js +265 -0
- package/dist/data/schemas.js.map +1 -0
- package/dist/data/taskSearchService.d.ts +110 -0
- package/dist/data/taskSearchService.d.ts.map +1 -0
- package/dist/data/taskSearchService.js +165 -0
- package/dist/data/taskSearchService.js.map +1 -0
- package/dist/data/taskStore.d.ts +192 -0
- package/dist/data/taskStore.d.ts.map +1 -0
- package/dist/data/taskStore.js +347 -0
- package/dist/data/taskStore.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +17 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/projectPromptBuilder.d.ts +13 -0
- package/dist/prompts/projectPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/projectPromptBuilder.js +29 -0
- package/dist/prompts/projectPromptBuilder.js.map +1 -0
- package/dist/prompts/researchPromptBuilder.d.ts +10 -0
- package/dist/prompts/researchPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/researchPromptBuilder.js +20 -0
- package/dist/prompts/researchPromptBuilder.js.map +1 -0
- package/dist/prompts/taskPromptBuilders.d.ts +87 -0
- package/dist/prompts/taskPromptBuilders.d.ts.map +1 -0
- package/dist/prompts/taskPromptBuilders.js +529 -0
- package/dist/prompts/taskPromptBuilders.js.map +1 -0
- package/dist/prompts/templateEngine.d.ts +102 -0
- package/dist/prompts/templateEngine.d.ts.map +1 -0
- package/dist/prompts/templateEngine.js +145 -0
- package/dist/prompts/templateEngine.js.map +1 -0
- package/dist/prompts/templateLoader.d.ts +61 -0
- package/dist/prompts/templateLoader.d.ts.map +1 -0
- package/dist/prompts/templateLoader.js +129 -0
- package/dist/prompts/templateLoader.js.map +1 -0
- package/dist/prompts/templates/v1/templates_en/analyzeTask/index.md +65 -0
- package/dist/prompts/templates/v1/templates_en/analyzeTask/iteration.md +12 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/backupInfo.md +1 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/cancel.md +7 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/empty.md +5 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/index.md +5 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/result.md +7 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/success.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/completed.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/index.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/notFound.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/result.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/success.md +5 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/analysisResult.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/complexity.md +15 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/dependencies.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/dependencyTasks.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/implementationGuide.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/index.md +39 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/notes.md +1 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/relatedFilesSummary.md +5 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/verificationCriteria.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/complatedSummary.md +5 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/dependencies.md +1 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/error.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/implementationGuide.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/index.md +25 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/notFound.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/notes.md +1 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/relatedFiles.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/verificationCriteria.md +3 -0
- package/dist/prompts/templates/v1/templates_en/initProjectRules/index.md +81 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/index.md +7 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/notFound.md +3 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/taskDetails.md +13 -0
- package/dist/prompts/templates/v1/templates_en/planTask/hasThought.md +4 -0
- package/dist/prompts/templates/v1/templates_en/planTask/index.md +96 -0
- package/dist/prompts/templates/v1/templates_en/planTask/noThought.md +4 -0
- package/dist/prompts/templates/v1/templates_en/planTask/tasks.md +17 -0
- package/dist/prompts/templates/v1/templates_en/processThought/complatedThought.md +6 -0
- package/dist/prompts/templates/v1/templates_en/processThought/index.md +13 -0
- package/dist/prompts/templates/v1/templates_en/processThought/moreThought.md +1 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/index.md +24 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/notFound.md +15 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/taskDetails.md +5 -0
- package/dist/prompts/templates/v1/templates_en/reflectTask/index.md +57 -0
- package/dist/prompts/templates/v1/templates_en/researchMode/index.md +95 -0
- package/dist/prompts/templates/v1/templates_en/researchMode/previousState.md +9 -0
- package/dist/prompts/templates/v1/templates_en/splitTasks/index.md +34 -0
- package/dist/prompts/templates/v1/templates_en/splitTasks/taskDetails.md +12 -0
- package/dist/prompts/templates/v1/templates_en/tests/basic.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/analyzeTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/clearAllTasks.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/deleteTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/executeTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/getTaskDetail.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/initProjectRules.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/listTasks.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/planTask.md +3 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/processThought.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/queryTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/reflectTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/researchMode.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/splitTasks.md +83 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/updateTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/verifyTask.md +37 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/emptyUpdate.md +5 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/fileDetails.md +1 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/index.md +7 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/notFound.md +5 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/success.md +9 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/successDetails.md +3 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/validation.md +5 -0
- package/dist/prompts/templates/v1/templates_en/verifyTask/index.md +19 -0
- package/dist/prompts/templates/v1/templates_en/verifyTask/noPass.md +12 -0
- package/dist/prompts/thoughtPromptBuilder.d.ts +11 -0
- package/dist/prompts/thoughtPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/thoughtPromptBuilder.js +30 -0
- package/dist/prompts/thoughtPromptBuilder.js.map +1 -0
- package/dist/server/container.d.ts +111 -0
- package/dist/server/container.d.ts.map +1 -0
- package/dist/server/container.js +135 -0
- package/dist/server/container.js.map +1 -0
- package/dist/server/logger.d.ts +98 -0
- package/dist/server/logger.d.ts.map +1 -0
- package/dist/server/logger.js +295 -0
- package/dist/server/logger.js.map +1 -0
- package/dist/server/mcpServer.d.ts +162 -0
- package/dist/server/mcpServer.d.ts.map +1 -0
- package/dist/server/mcpServer.js +236 -0
- package/dist/server/mcpServer.js.map +1 -0
- package/dist/tools/project/index.d.ts +7 -0
- package/dist/tools/project/index.d.ts.map +1 -0
- package/dist/tools/project/index.js +7 -0
- package/dist/tools/project/index.js.map +1 -0
- package/dist/tools/project/projectTools.d.ts +17 -0
- package/dist/tools/project/projectTools.d.ts.map +1 -0
- package/dist/tools/project/projectTools.js +73 -0
- package/dist/tools/project/projectTools.js.map +1 -0
- package/dist/tools/research/index.d.ts +7 -0
- package/dist/tools/research/index.d.ts.map +1 -0
- package/dist/tools/research/index.js +7 -0
- package/dist/tools/research/index.js.map +1 -0
- package/dist/tools/research/researchTools.d.ts +16 -0
- package/dist/tools/research/researchTools.d.ts.map +1 -0
- package/dist/tools/research/researchTools.js +41 -0
- package/dist/tools/research/researchTools.js.map +1 -0
- package/dist/tools/task/index.d.ts +8 -0
- package/dist/tools/task/index.d.ts.map +1 -0
- package/dist/tools/task/index.js +8 -0
- package/dist/tools/task/index.js.map +1 -0
- package/dist/tools/task/taskTools.d.ts +32 -0
- package/dist/tools/task/taskTools.d.ts.map +1 -0
- package/dist/tools/task/taskTools.js +542 -0
- package/dist/tools/task/taskTools.js.map +1 -0
- package/dist/tools/thought/index.d.ts +7 -0
- package/dist/tools/thought/index.d.ts.map +1 -0
- package/dist/tools/thought/index.js +7 -0
- package/dist/tools/thought/index.js.map +1 -0
- package/dist/tools/thought/thoughtTools.d.ts +16 -0
- package/dist/tools/thought/thoughtTools.d.ts.map +1 -0
- package/dist/tools/thought/thoughtTools.js +47 -0
- package/dist/tools/thought/thoughtTools.js.map +1 -0
- package/docs/API.md +32 -0
- package/docs/ARCHITECTURE.md +44 -0
- package/docs/COMPATIBILITY_REPORT.md +26 -0
- package/docs/PERFORMANCE.md +66 -0
- package/package.json +77 -0
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Planning Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for task planning, analysis, reflection, and splitting.
|
|
5
|
+
* These tools guide AI assistants through structured workflow patterns.
|
|
6
|
+
*
|
|
7
|
+
* Tools:
|
|
8
|
+
* - plan_task: Convert natural language requests into structured tasks
|
|
9
|
+
* - analyze_task: Deep analysis with threat modeling and design decisions
|
|
10
|
+
* - reflect_task: Critical review and optimization recommendations
|
|
11
|
+
* - split_tasks: Bulk task creation with dependency management
|
|
12
|
+
*/
|
|
13
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
14
|
+
import { PlanTaskParamsSchema, AnalyzeTaskParamsSchema, ReflectTaskParamsSchema, SplitTasksParamsSchema, ListTasksParamsSchema, GetTaskDetailParamsSchema, QueryTaskParamsSchema, UpdateTaskParamsSchema, DeleteTaskParamsSchema, ClearAllTasksParamsSchema, ExecuteTaskParamsSchema, VerifyTaskParamsSchema, } from '../../data/schemas.js';
|
|
15
|
+
import { PlanTaskPromptBuilder, AnalyzeTaskPromptBuilder, ReflectTaskPromptBuilder, SplitTasksPromptBuilder, ListTasksPromptBuilder, GetTaskDetailPromptBuilder, QueryTaskPromptBuilder, UpdateTaskPromptBuilder, DeleteTaskPromptBuilder, ClearAllTasksPromptBuilder, ExecuteTaskPromptBuilder, VerifyTaskPromptBuilder, } from '../../prompts/taskPromptBuilders.js';
|
|
16
|
+
/**
|
|
17
|
+
* Register all task planning tools with the MCP server
|
|
18
|
+
*
|
|
19
|
+
* @param server - MCP server instance
|
|
20
|
+
*/
|
|
21
|
+
export function registerTaskPlanningTools(server) {
|
|
22
|
+
const container = server.getContainer();
|
|
23
|
+
registerPlanTask(server, container);
|
|
24
|
+
registerAnalyzeTask(server, container);
|
|
25
|
+
registerReflectTask(server, container);
|
|
26
|
+
registerSplitTasks(server, container);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Register all task CRUD tools with the MCP server
|
|
30
|
+
*
|
|
31
|
+
* @param server - MCP server instance
|
|
32
|
+
*/
|
|
33
|
+
export function registerTaskCRUDTools(server) {
|
|
34
|
+
const container = server.getContainer();
|
|
35
|
+
registerListTasks(server, container);
|
|
36
|
+
registerGetTaskDetail(server, container);
|
|
37
|
+
registerQueryTask(server, container);
|
|
38
|
+
registerUpdateTask(server, container);
|
|
39
|
+
registerDeleteTask(server, container);
|
|
40
|
+
registerClearAllTasks(server, container);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Register list_tasks tool
|
|
44
|
+
*/
|
|
45
|
+
function registerListTasks(server, container) {
|
|
46
|
+
server.registerTool({
|
|
47
|
+
name: 'list_tasks',
|
|
48
|
+
description: 'List tasks by status. Returns task overview with counts and filtering.',
|
|
49
|
+
inputSchema: zodToJsonSchema(ListTasksParamsSchema, { $refStrategy: 'none' }),
|
|
50
|
+
execute: async (args) => {
|
|
51
|
+
const params = ListTasksParamsSchema.parse(args);
|
|
52
|
+
const { taskStore, logger } = container;
|
|
53
|
+
logger.info({ status: params.status }, 'Listing tasks');
|
|
54
|
+
const allTasks = await taskStore.getAllAsync();
|
|
55
|
+
const builder = new ListTasksPromptBuilder();
|
|
56
|
+
const statusFilter = params.status === 'all' ? undefined : params.status;
|
|
57
|
+
const result = await builder.build(allTasks, statusFilter);
|
|
58
|
+
logger.info({ count: allTasks.length }, 'Tasks listed');
|
|
59
|
+
return result;
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Register get_task_detail tool
|
|
65
|
+
*/
|
|
66
|
+
function registerGetTaskDetail(server, container) {
|
|
67
|
+
server.registerTool({
|
|
68
|
+
name: 'get_task_detail',
|
|
69
|
+
description: 'Get complete details for a specific task including dependencies and related files.',
|
|
70
|
+
inputSchema: zodToJsonSchema(GetTaskDetailParamsSchema, { $refStrategy: 'none' }),
|
|
71
|
+
execute: async (args) => {
|
|
72
|
+
const params = GetTaskDetailParamsSchema.parse(args);
|
|
73
|
+
const { taskStore, logger } = container;
|
|
74
|
+
logger.info({ taskId: params.taskId }, 'Getting task detail');
|
|
75
|
+
const task = await taskStore.getByIdAsync(params.taskId);
|
|
76
|
+
if (!task) {
|
|
77
|
+
logger.warn({ taskId: params.taskId }, 'Task not found');
|
|
78
|
+
return `## Task Not Found\n\nNo task found with ID: \`${params.taskId}\``;
|
|
79
|
+
}
|
|
80
|
+
const allTasks = await taskStore.getAllAsync();
|
|
81
|
+
const builder = new GetTaskDetailPromptBuilder();
|
|
82
|
+
const result = await builder.build(task, allTasks);
|
|
83
|
+
logger.info({ taskId: params.taskId }, 'Task detail retrieved');
|
|
84
|
+
return result;
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Register query_task tool
|
|
90
|
+
*/
|
|
91
|
+
function registerQueryTask(server, container) {
|
|
92
|
+
server.registerTool({
|
|
93
|
+
name: 'query_task',
|
|
94
|
+
description: 'Search tasks by keyword or ID with pagination support.',
|
|
95
|
+
inputSchema: zodToJsonSchema(QueryTaskParamsSchema, { $refStrategy: 'none' }),
|
|
96
|
+
execute: async (args) => {
|
|
97
|
+
const params = QueryTaskParamsSchema.parse(args);
|
|
98
|
+
const { taskStore, taskSearchService, logger } = container;
|
|
99
|
+
logger.info({ query: params.query, page: params.page }, 'Querying tasks');
|
|
100
|
+
const allTasks = await taskStore.getAllAsync();
|
|
101
|
+
let results;
|
|
102
|
+
if (params.isId) {
|
|
103
|
+
const task = allTasks.find(t => t.id === params.query);
|
|
104
|
+
results = {
|
|
105
|
+
tasks: task ? [task] : [],
|
|
106
|
+
total: task ? 1 : 0,
|
|
107
|
+
page: 1,
|
|
108
|
+
pageSize: 1,
|
|
109
|
+
totalPages: task ? 1 : 0,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
results = taskSearchService.search(allTasks, {
|
|
114
|
+
query: params.query,
|
|
115
|
+
page: params.page,
|
|
116
|
+
pageSize: params.pageSize,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
const builder = new QueryTaskPromptBuilder();
|
|
120
|
+
const response = await builder.build(params.query, results.tasks, results.page, results.pageSize, results.total);
|
|
121
|
+
logger.info({ resultCount: results.tasks.length }, 'Query complete');
|
|
122
|
+
return response;
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Register update_task tool
|
|
128
|
+
*/
|
|
129
|
+
function registerUpdateTask(server, container) {
|
|
130
|
+
server.registerTool({
|
|
131
|
+
name: 'update_task',
|
|
132
|
+
description: 'Update task details, dependencies, or related files.',
|
|
133
|
+
inputSchema: zodToJsonSchema(UpdateTaskParamsSchema, { $refStrategy: 'none' }),
|
|
134
|
+
execute: async (args) => {
|
|
135
|
+
const params = UpdateTaskParamsSchema.parse(args);
|
|
136
|
+
const { taskStore, logger } = container;
|
|
137
|
+
logger.info({ taskId: params.taskId }, 'Updating task');
|
|
138
|
+
const existingTask = await taskStore.getByIdAsync(params.taskId);
|
|
139
|
+
if (!existingTask) {
|
|
140
|
+
const builder = new UpdateTaskPromptBuilder();
|
|
141
|
+
return await builder.buildNotFound(params.taskId);
|
|
142
|
+
}
|
|
143
|
+
const updates = {};
|
|
144
|
+
if (params.name !== undefined && params.name !== null)
|
|
145
|
+
updates.name = params.name;
|
|
146
|
+
if (params.description !== undefined && params.description !== null)
|
|
147
|
+
updates.description = params.description;
|
|
148
|
+
if (params.notes !== undefined)
|
|
149
|
+
updates.notes = params.notes ?? undefined;
|
|
150
|
+
if (params.dependencies !== undefined)
|
|
151
|
+
updates.dependencies = params.dependencies;
|
|
152
|
+
if (params.relatedFiles !== undefined)
|
|
153
|
+
updates.relatedFiles = params.relatedFiles;
|
|
154
|
+
if (params.implementationGuide !== undefined)
|
|
155
|
+
updates.implementationGuide = params.implementationGuide ?? undefined;
|
|
156
|
+
if (params.verificationCriteria !== undefined)
|
|
157
|
+
updates.verificationCriteria = params.verificationCriteria ?? undefined;
|
|
158
|
+
const updatedTask = await taskStore.updateAsync(params.taskId, updates);
|
|
159
|
+
if (!updatedTask) {
|
|
160
|
+
throw new Error(`Failed to update task ${params.taskId}`);
|
|
161
|
+
}
|
|
162
|
+
const updatedFields = [];
|
|
163
|
+
if (params.name !== undefined)
|
|
164
|
+
updatedFields.push('name');
|
|
165
|
+
if (params.description !== undefined)
|
|
166
|
+
updatedFields.push('description');
|
|
167
|
+
if (params.notes !== undefined)
|
|
168
|
+
updatedFields.push('notes');
|
|
169
|
+
if (params.dependencies !== undefined)
|
|
170
|
+
updatedFields.push('dependencies');
|
|
171
|
+
if (params.relatedFiles !== undefined)
|
|
172
|
+
updatedFields.push('relatedFiles');
|
|
173
|
+
if (params.implementationGuide !== undefined)
|
|
174
|
+
updatedFields.push('implementationGuide');
|
|
175
|
+
if (params.verificationCriteria !== undefined)
|
|
176
|
+
updatedFields.push('verificationCriteria');
|
|
177
|
+
const builder = new UpdateTaskPromptBuilder();
|
|
178
|
+
const result = await builder.buildResult(updatedTask, updatedFields);
|
|
179
|
+
logger.info({ taskId: params.taskId, fieldsUpdated: updatedFields.length }, 'Task updated');
|
|
180
|
+
return result;
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Register delete_task tool
|
|
186
|
+
*/
|
|
187
|
+
function registerDeleteTask(server, container) {
|
|
188
|
+
server.registerTool({
|
|
189
|
+
name: 'delete_task',
|
|
190
|
+
description: 'Delete a task. Completed tasks are archived, others are removed.',
|
|
191
|
+
inputSchema: zodToJsonSchema(DeleteTaskParamsSchema, { $refStrategy: 'none' }),
|
|
192
|
+
execute: async (args) => {
|
|
193
|
+
const params = DeleteTaskParamsSchema.parse(args);
|
|
194
|
+
const { taskStore, logger } = container;
|
|
195
|
+
logger.info({ taskId: params.taskId }, 'Deleting task');
|
|
196
|
+
const task = await taskStore.getByIdAsync(params.taskId);
|
|
197
|
+
if (!task) {
|
|
198
|
+
const builder = new DeleteTaskPromptBuilder();
|
|
199
|
+
return await builder.buildNotFound(params.taskId);
|
|
200
|
+
}
|
|
201
|
+
await taskStore.deleteAsync(params.taskId);
|
|
202
|
+
const builder = new DeleteTaskPromptBuilder();
|
|
203
|
+
const result = task.status === 'completed'
|
|
204
|
+
? await builder.buildCompleted(task.id)
|
|
205
|
+
: await builder.buildResult(task.name);
|
|
206
|
+
logger.info({ taskId: params.taskId, status: task.status }, 'Task deleted');
|
|
207
|
+
return result;
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Register clear_all_tasks tool
|
|
213
|
+
*/
|
|
214
|
+
function registerClearAllTasks(server, container) {
|
|
215
|
+
server.registerTool({
|
|
216
|
+
name: 'clear_all_tasks',
|
|
217
|
+
description: 'Clear all tasks after confirmation. Creates backup before deletion.',
|
|
218
|
+
inputSchema: zodToJsonSchema(ClearAllTasksParamsSchema, { $refStrategy: 'none' }),
|
|
219
|
+
execute: async (args) => {
|
|
220
|
+
const params = ClearAllTasksParamsSchema.parse(args);
|
|
221
|
+
const { taskStore, logger } = container;
|
|
222
|
+
const allTasks = await taskStore.getAllAsync();
|
|
223
|
+
if (!params.confirm) {
|
|
224
|
+
const builder = new ClearAllTasksPromptBuilder();
|
|
225
|
+
return await builder.buildCancel();
|
|
226
|
+
}
|
|
227
|
+
if (allTasks.length === 0) {
|
|
228
|
+
const builder = new ClearAllTasksPromptBuilder();
|
|
229
|
+
return await builder.buildEmpty();
|
|
230
|
+
}
|
|
231
|
+
logger.warn({ taskCount: allTasks.length }, 'Clearing all tasks');
|
|
232
|
+
const clearResult = await taskStore.clearAllAsync();
|
|
233
|
+
const builder = new ClearAllTasksPromptBuilder();
|
|
234
|
+
const backupPath = clearResult.backupFile ?? 'No backup created';
|
|
235
|
+
const result = await builder.buildResult(allTasks.length, backupPath);
|
|
236
|
+
logger.info({ taskCount: allTasks.length }, 'All tasks cleared');
|
|
237
|
+
return result;
|
|
238
|
+
},
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Register all task workflow tools with the MCP server
|
|
243
|
+
*
|
|
244
|
+
* @param server - MCP server instance
|
|
245
|
+
*/
|
|
246
|
+
export function registerTaskWorkflowTools(server) {
|
|
247
|
+
const container = server.getContainer();
|
|
248
|
+
registerExecuteTask(server, container);
|
|
249
|
+
registerVerifyTask(server, container);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Register execute_task tool
|
|
253
|
+
*/
|
|
254
|
+
function registerExecuteTask(server, container) {
|
|
255
|
+
server.registerTool({
|
|
256
|
+
name: 'execute_task',
|
|
257
|
+
description: 'Mark a task as in progress and build an execution prompt with dependencies and implementation guide.',
|
|
258
|
+
inputSchema: zodToJsonSchema(ExecuteTaskParamsSchema, { $refStrategy: 'none' }),
|
|
259
|
+
execute: async (args) => {
|
|
260
|
+
const params = ExecuteTaskParamsSchema.parse(args);
|
|
261
|
+
const { taskStore, logger } = container;
|
|
262
|
+
logger.info({ taskId: params.taskId }, 'Executing task');
|
|
263
|
+
const task = await taskStore.getByIdAsync(params.taskId);
|
|
264
|
+
if (!task) {
|
|
265
|
+
logger.warn({ taskId: params.taskId }, 'Task not found');
|
|
266
|
+
return `## Task Not Found\n\nNo task found with ID: \`${params.taskId}\``;
|
|
267
|
+
}
|
|
268
|
+
const allTasks = await taskStore.getAllAsync();
|
|
269
|
+
const dependencyTasks = task.dependencies
|
|
270
|
+
.map(dep => allTasks.find(t => t.id === dep.taskId))
|
|
271
|
+
.filter((t) => t !== undefined);
|
|
272
|
+
const incompleteDeps = dependencyTasks.filter(t => t.status !== 'completed');
|
|
273
|
+
if (incompleteDeps.length > 0) {
|
|
274
|
+
logger.warn({ taskId: params.taskId, incompleteDeps: incompleteDeps.length }, 'Task has incomplete dependencies');
|
|
275
|
+
return `## Cannot Execute Task\n\nTask "${task.name}" has ${incompleteDeps.length} incomplete dependencies:\n\n` +
|
|
276
|
+
incompleteDeps.map(d => `- ${d.name} (${d.status})`).join('\n');
|
|
277
|
+
}
|
|
278
|
+
if (task.status !== 'in_progress') {
|
|
279
|
+
await taskStore.updateAsync(params.taskId, { status: 'in_progress' });
|
|
280
|
+
}
|
|
281
|
+
const complexity = calculateComplexity(task, dependencyTasks);
|
|
282
|
+
const builder = new ExecuteTaskPromptBuilder();
|
|
283
|
+
const result = await builder.build(task, dependencyTasks, complexity, task.analysisResult ?? undefined);
|
|
284
|
+
logger.info({ taskId: params.taskId, complexity }, 'Task execution started');
|
|
285
|
+
return result;
|
|
286
|
+
},
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Register verify_task tool
|
|
291
|
+
*/
|
|
292
|
+
function registerVerifyTask(server, container) {
|
|
293
|
+
server.registerTool({
|
|
294
|
+
name: 'verify_task',
|
|
295
|
+
description: 'Verify task completion with a score and summary. Marks task as completed.',
|
|
296
|
+
inputSchema: zodToJsonSchema(VerifyTaskParamsSchema, { $refStrategy: 'none' }),
|
|
297
|
+
execute: async (args) => {
|
|
298
|
+
const params = VerifyTaskParamsSchema.parse(args);
|
|
299
|
+
const { taskStore, logger } = container;
|
|
300
|
+
logger.info({ taskId: params.taskId, score: params.score }, 'Verifying task');
|
|
301
|
+
const task = await taskStore.getByIdAsync(params.taskId);
|
|
302
|
+
if (!task) {
|
|
303
|
+
logger.warn({ taskId: params.taskId }, 'Task not found');
|
|
304
|
+
return `## Task Not Found\n\nNo task found with ID: \`${params.taskId}\``;
|
|
305
|
+
}
|
|
306
|
+
await taskStore.updateAsync(params.taskId, {
|
|
307
|
+
status: 'completed',
|
|
308
|
+
summary: params.summary,
|
|
309
|
+
});
|
|
310
|
+
// Get updated task with summary
|
|
311
|
+
const updatedTask = await taskStore.getByIdAsync(params.taskId);
|
|
312
|
+
const builder = new VerifyTaskPromptBuilder();
|
|
313
|
+
const result = await builder.build(updatedTask);
|
|
314
|
+
logger.info({ taskId: params.taskId, score: params.score }, 'Task verified and completed');
|
|
315
|
+
return result;
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Calculate task complexity based on description length and dependencies
|
|
321
|
+
*/
|
|
322
|
+
function calculateComplexity(task, dependencies) {
|
|
323
|
+
const descLength = task.description.length;
|
|
324
|
+
const depCount = dependencies.length;
|
|
325
|
+
const hasGuide = !!task.implementationGuide;
|
|
326
|
+
const hasAnalysis = !!task.analysisResult;
|
|
327
|
+
let score = 0;
|
|
328
|
+
if (descLength > 1000)
|
|
329
|
+
score += 2;
|
|
330
|
+
else if (descLength > 500)
|
|
331
|
+
score += 1;
|
|
332
|
+
if (depCount > 5)
|
|
333
|
+
score += 3;
|
|
334
|
+
else if (depCount > 2)
|
|
335
|
+
score += 2;
|
|
336
|
+
else if (depCount > 0)
|
|
337
|
+
score += 1;
|
|
338
|
+
if (!hasGuide)
|
|
339
|
+
score += 1;
|
|
340
|
+
if (!hasAnalysis)
|
|
341
|
+
score += 1;
|
|
342
|
+
if (score >= 7)
|
|
343
|
+
return 'VERY_HIGH';
|
|
344
|
+
if (score >= 5)
|
|
345
|
+
return 'HIGH';
|
|
346
|
+
if (score >= 3)
|
|
347
|
+
return 'MEDIUM';
|
|
348
|
+
return 'LOW';
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Register plan_task tool
|
|
352
|
+
*
|
|
353
|
+
* Converts natural language task descriptions into structured task proposals.
|
|
354
|
+
* Optionally references existing tasks for context.
|
|
355
|
+
*/
|
|
356
|
+
function registerPlanTask(server, container) {
|
|
357
|
+
server.registerTool({
|
|
358
|
+
name: 'plan_task',
|
|
359
|
+
description: 'Plan tasks and construct a structured task list. Converts natural language descriptions ' +
|
|
360
|
+
'into actionable task proposals with goals and expected outcomes.',
|
|
361
|
+
inputSchema: zodToJsonSchema(PlanTaskParamsSchema, { $refStrategy: 'none' }),
|
|
362
|
+
execute: async (args) => {
|
|
363
|
+
const params = PlanTaskParamsSchema.parse(args);
|
|
364
|
+
const { taskStore, logger } = container;
|
|
365
|
+
logger.info({ description: params.description }, 'Planning task');
|
|
366
|
+
// Load existing tasks if requested (provides context for planning)
|
|
367
|
+
let existingPendingTasks = [];
|
|
368
|
+
let existingCompletedTasks = [];
|
|
369
|
+
if (params.existingTasksReference) {
|
|
370
|
+
const allTasks = await taskStore.getAllAsync();
|
|
371
|
+
existingPendingTasks = allTasks.filter((t) => t.status === 'pending');
|
|
372
|
+
const completed = allTasks.filter((t) => t.status === 'completed');
|
|
373
|
+
const sorted = completed.sort((a, b) => {
|
|
374
|
+
const dateA = a.completedAt ? new Date(a.completedAt) : new Date(0);
|
|
375
|
+
const dateB = b.completedAt ? new Date(b.completedAt) : new Date(0);
|
|
376
|
+
return dateB.getTime() - dateA.getTime();
|
|
377
|
+
});
|
|
378
|
+
existingCompletedTasks = sorted.slice(0, 10); // Limit to last 10 completed tasks
|
|
379
|
+
}
|
|
380
|
+
// Build prompt using template
|
|
381
|
+
const builder = new PlanTaskPromptBuilder();
|
|
382
|
+
const result = await builder.build(params.description, params.requirements ?? undefined, params.existingTasksReference, existingCompletedTasks, existingPendingTasks, container.memoryStore['memoryDir'], container.rulesStore['rulesFilePath']);
|
|
383
|
+
logger.info('Task planning complete');
|
|
384
|
+
return result;
|
|
385
|
+
},
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Register analyze_task tool
|
|
390
|
+
*
|
|
391
|
+
* Performs deep analysis of task requirements with threat modeling,
|
|
392
|
+
* design decisions, and implementation strategies.
|
|
393
|
+
*/
|
|
394
|
+
function registerAnalyzeTask(server, container) {
|
|
395
|
+
server.registerTool({
|
|
396
|
+
name: 'analyze_task',
|
|
397
|
+
description: 'Deeply analyze task requirements and propose a high-level approach. ' +
|
|
398
|
+
'Includes threat modeling, design decisions, and architectural considerations.',
|
|
399
|
+
inputSchema: zodToJsonSchema(AnalyzeTaskParamsSchema, { $refStrategy: 'none' }),
|
|
400
|
+
execute: async (args) => {
|
|
401
|
+
const params = AnalyzeTaskParamsSchema.parse(args);
|
|
402
|
+
const { logger } = container;
|
|
403
|
+
logger.info({ summary: params.summary }, 'Analyzing task');
|
|
404
|
+
// Build prompt for analysis workflow
|
|
405
|
+
const builder = new AnalyzeTaskPromptBuilder();
|
|
406
|
+
const result = await builder.build(params.summary, params.initialConcept, params.previousAnalysis ?? undefined);
|
|
407
|
+
logger.info('Task analysis complete');
|
|
408
|
+
return result;
|
|
409
|
+
},
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Register reflect_task tool
|
|
414
|
+
*
|
|
415
|
+
* Critically reviews analysis results and proposes optimizations.
|
|
416
|
+
* Part of the analyze-reflect-implement cycle.
|
|
417
|
+
*/
|
|
418
|
+
function registerReflectTask(server, container) {
|
|
419
|
+
server.registerTool({
|
|
420
|
+
name: 'reflect_task',
|
|
421
|
+
description: 'Critically review analysis results and propose optimizations. ' +
|
|
422
|
+
'Identifies potential issues, alternative approaches, and improvements.',
|
|
423
|
+
inputSchema: zodToJsonSchema(ReflectTaskParamsSchema, { $refStrategy: 'none' }),
|
|
424
|
+
execute: async (args) => {
|
|
425
|
+
const params = ReflectTaskParamsSchema.parse(args);
|
|
426
|
+
const { logger } = container;
|
|
427
|
+
logger.info({ summary: params.summary }, 'Reflecting on task');
|
|
428
|
+
// Build prompt for reflection workflow
|
|
429
|
+
const builder = new ReflectTaskPromptBuilder();
|
|
430
|
+
const result = await builder.build(params.summary, params.analysis);
|
|
431
|
+
logger.info('Task reflection complete');
|
|
432
|
+
return result;
|
|
433
|
+
},
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Register split_tasks tool
|
|
438
|
+
*
|
|
439
|
+
* Creates multiple tasks in bulk with dependency management.
|
|
440
|
+
* Supports various update modes: append, overwrite, selective, clearAllTasks.
|
|
441
|
+
*/
|
|
442
|
+
function registerSplitTasks(server, container) {
|
|
443
|
+
server.registerTool({
|
|
444
|
+
name: 'split_tasks',
|
|
445
|
+
description: 'Split a complex task into a structured set of smaller tasks. ' +
|
|
446
|
+
'Supports bulk creation with dependency graphs and various update modes.',
|
|
447
|
+
inputSchema: zodToJsonSchema(SplitTasksParamsSchema, { $refStrategy: 'none' }),
|
|
448
|
+
execute: async (args) => {
|
|
449
|
+
const params = SplitTasksParamsSchema.parse(args);
|
|
450
|
+
const { taskStore, logger } = container;
|
|
451
|
+
logger.info({ updateMode: params.updateMode, taskCount: params.tasks.length }, 'Splitting tasks');
|
|
452
|
+
// Handle clear mode first
|
|
453
|
+
if (params.updateMode === 'clearAllTasks') {
|
|
454
|
+
await taskStore.clearAllAsync();
|
|
455
|
+
logger.info('All tasks cleared');
|
|
456
|
+
}
|
|
457
|
+
// Load existing tasks for dependency resolution and overwrite mode
|
|
458
|
+
const existingTasks = await taskStore.getAllAsync();
|
|
459
|
+
const taskNameToId = new Map();
|
|
460
|
+
existingTasks.forEach((t) => taskNameToId.set(t.name, t.id));
|
|
461
|
+
// Process tasks based on update mode
|
|
462
|
+
const createdTasks = [];
|
|
463
|
+
const now = new Date().toISOString();
|
|
464
|
+
for (const taskParams of params.tasks) {
|
|
465
|
+
const existingTaskId = taskNameToId.get(taskParams.name);
|
|
466
|
+
// Overwrite mode: Update existing or create new
|
|
467
|
+
if (params.updateMode === 'overwrite' && existingTaskId) {
|
|
468
|
+
const updatedTask = await updateExistingTask(taskStore, existingTaskId, taskParams, taskNameToId, params.globalAnalysisResult ?? undefined);
|
|
469
|
+
createdTasks.push(updatedTask);
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
472
|
+
// Selective mode: Skip existing tasks
|
|
473
|
+
if (params.updateMode === 'selective' && existingTaskId) {
|
|
474
|
+
logger.debug({ taskName: taskParams.name }, 'Skipping existing task (selective mode)');
|
|
475
|
+
continue;
|
|
476
|
+
}
|
|
477
|
+
// Append mode or new tasks: Create new task
|
|
478
|
+
const newTaskRequest = createNewTask(taskParams, taskNameToId, params.globalAnalysisResult ?? undefined, now);
|
|
479
|
+
const createdTask = await taskStore.createAsync(newTaskRequest);
|
|
480
|
+
createdTasks.push(createdTask);
|
|
481
|
+
// Add to mapping for dependency resolution within this batch
|
|
482
|
+
taskNameToId.set(createdTask.name, createdTask.id);
|
|
483
|
+
}
|
|
484
|
+
// Build result prompt
|
|
485
|
+
const allTasksAfter = await taskStore.getAllAsync();
|
|
486
|
+
const builder = new SplitTasksPromptBuilder();
|
|
487
|
+
const result = await builder.build(params.updateMode, createdTasks, allTasksAfter);
|
|
488
|
+
logger.info({ createdCount: createdTasks.length }, 'Task split complete');
|
|
489
|
+
return result;
|
|
490
|
+
},
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Create a new task from parameters
|
|
495
|
+
*
|
|
496
|
+
* @param params - Task creation parameters
|
|
497
|
+
* @param taskNameToId - Mapping of task names to IDs for dependency resolution
|
|
498
|
+
* @param globalAnalysisResult - Optional analysis result to attach
|
|
499
|
+
* @param timestamp - Creation timestamp
|
|
500
|
+
* @returns New task item
|
|
501
|
+
*/
|
|
502
|
+
function createNewTask(params, _taskNameToId, globalAnalysisResult, _timestamp) {
|
|
503
|
+
return {
|
|
504
|
+
name: params.name,
|
|
505
|
+
description: params.description,
|
|
506
|
+
notes: params.notes ?? null,
|
|
507
|
+
dependencies: params.dependencies ?? [],
|
|
508
|
+
relatedFiles: params.relatedFiles ?? [],
|
|
509
|
+
analysisResult: globalAnalysisResult ?? null,
|
|
510
|
+
agent: params.agent ?? null,
|
|
511
|
+
implementationGuide: params.implementationGuide ?? null,
|
|
512
|
+
verificationCriteria: params.verificationCriteria ?? null,
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Update an existing task with new parameters
|
|
517
|
+
*
|
|
518
|
+
* @param taskStore - Task store instance
|
|
519
|
+
* @param taskId - ID of task to update
|
|
520
|
+
* @param params - Update parameters
|
|
521
|
+
* @param taskNameToId - Mapping for dependency resolution
|
|
522
|
+
* @param globalAnalysisResult - Optional analysis result
|
|
523
|
+
* @returns Updated task item
|
|
524
|
+
*/
|
|
525
|
+
async function updateExistingTask(taskStore, taskId, params, _taskNameToId, globalAnalysisResult) {
|
|
526
|
+
const updates = {
|
|
527
|
+
description: params.description,
|
|
528
|
+
notes: params.notes ?? undefined,
|
|
529
|
+
dependencies: params.dependencies ?? [],
|
|
530
|
+
relatedFiles: params.relatedFiles ?? [],
|
|
531
|
+
analysisResult: globalAnalysisResult ?? undefined,
|
|
532
|
+
agent: params.agent ?? undefined,
|
|
533
|
+
implementationGuide: params.implementationGuide ?? undefined,
|
|
534
|
+
verificationCriteria: params.verificationCriteria ?? undefined,
|
|
535
|
+
};
|
|
536
|
+
const updatedTask = await taskStore.updateAsync(taskId, updates);
|
|
537
|
+
if (!updatedTask) {
|
|
538
|
+
throw new Error(`Failed to update task ${taskId}`);
|
|
539
|
+
}
|
|
540
|
+
return updatedTask;
|
|
541
|
+
}
|
|
542
|
+
//# sourceMappingURL=taskTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskTools.js","sourceRoot":"","sources":["../../../src/tools/task/taskTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/thought/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/thought/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thought Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for structured thinking and reasoning processes.
|
|
5
|
+
*
|
|
6
|
+
* Tools:
|
|
7
|
+
* - process_thought: Record and structure reasoning steps
|
|
8
|
+
*/
|
|
9
|
+
import type { McpServer } from '../../server/mcpServer.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register all thought tools with the MCP server
|
|
12
|
+
*
|
|
13
|
+
* @param server - MCP server instance
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerThoughtTools(server: McpServer): void;
|
|
16
|
+
//# sourceMappingURL=thoughtTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thoughtTools.d.ts","sourceRoot":"","sources":["../../../src/tools/thought/thoughtTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAU3D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAI5D"}
|