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.
Files changed (187) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +275 -0
  4. package/dist/config/pathResolver.d.ts +33 -0
  5. package/dist/config/pathResolver.d.ts.map +1 -0
  6. package/dist/config/pathResolver.js +130 -0
  7. package/dist/config/pathResolver.js.map +1 -0
  8. package/dist/data/fileOperations.d.ts +43 -0
  9. package/dist/data/fileOperations.d.ts.map +1 -0
  10. package/dist/data/fileOperations.js +248 -0
  11. package/dist/data/fileOperations.js.map +1 -0
  12. package/dist/data/memoryStore.d.ts +86 -0
  13. package/dist/data/memoryStore.d.ts.map +1 -0
  14. package/dist/data/memoryStore.js +216 -0
  15. package/dist/data/memoryStore.js.map +1 -0
  16. package/dist/data/rulesStore.d.ts +63 -0
  17. package/dist/data/rulesStore.d.ts.map +1 -0
  18. package/dist/data/rulesStore.js +196 -0
  19. package/dist/data/rulesStore.js.map +1 -0
  20. package/dist/data/schemas.d.ts +840 -0
  21. package/dist/data/schemas.d.ts.map +1 -0
  22. package/dist/data/schemas.js +265 -0
  23. package/dist/data/schemas.js.map +1 -0
  24. package/dist/data/taskSearchService.d.ts +110 -0
  25. package/dist/data/taskSearchService.d.ts.map +1 -0
  26. package/dist/data/taskSearchService.js +165 -0
  27. package/dist/data/taskSearchService.js.map +1 -0
  28. package/dist/data/taskStore.d.ts +192 -0
  29. package/dist/data/taskStore.d.ts.map +1 -0
  30. package/dist/data/taskStore.js +347 -0
  31. package/dist/data/taskStore.js.map +1 -0
  32. package/dist/index.d.ts +23 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +86 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/prompts/index.d.ts +12 -0
  37. package/dist/prompts/index.d.ts.map +1 -0
  38. package/dist/prompts/index.js +17 -0
  39. package/dist/prompts/index.js.map +1 -0
  40. package/dist/prompts/projectPromptBuilder.d.ts +13 -0
  41. package/dist/prompts/projectPromptBuilder.d.ts.map +1 -0
  42. package/dist/prompts/projectPromptBuilder.js +29 -0
  43. package/dist/prompts/projectPromptBuilder.js.map +1 -0
  44. package/dist/prompts/researchPromptBuilder.d.ts +10 -0
  45. package/dist/prompts/researchPromptBuilder.d.ts.map +1 -0
  46. package/dist/prompts/researchPromptBuilder.js +20 -0
  47. package/dist/prompts/researchPromptBuilder.js.map +1 -0
  48. package/dist/prompts/taskPromptBuilders.d.ts +87 -0
  49. package/dist/prompts/taskPromptBuilders.d.ts.map +1 -0
  50. package/dist/prompts/taskPromptBuilders.js +529 -0
  51. package/dist/prompts/taskPromptBuilders.js.map +1 -0
  52. package/dist/prompts/templateEngine.d.ts +102 -0
  53. package/dist/prompts/templateEngine.d.ts.map +1 -0
  54. package/dist/prompts/templateEngine.js +145 -0
  55. package/dist/prompts/templateEngine.js.map +1 -0
  56. package/dist/prompts/templateLoader.d.ts +61 -0
  57. package/dist/prompts/templateLoader.d.ts.map +1 -0
  58. package/dist/prompts/templateLoader.js +129 -0
  59. package/dist/prompts/templateLoader.js.map +1 -0
  60. package/dist/prompts/templates/v1/templates_en/analyzeTask/index.md +65 -0
  61. package/dist/prompts/templates/v1/templates_en/analyzeTask/iteration.md +12 -0
  62. package/dist/prompts/templates/v1/templates_en/clearAllTasks/backupInfo.md +1 -0
  63. package/dist/prompts/templates/v1/templates_en/clearAllTasks/cancel.md +7 -0
  64. package/dist/prompts/templates/v1/templates_en/clearAllTasks/empty.md +5 -0
  65. package/dist/prompts/templates/v1/templates_en/clearAllTasks/index.md +5 -0
  66. package/dist/prompts/templates/v1/templates_en/clearAllTasks/result.md +7 -0
  67. package/dist/prompts/templates/v1/templates_en/clearAllTasks/success.md +5 -0
  68. package/dist/prompts/templates/v1/templates_en/deleteTask/completed.md +5 -0
  69. package/dist/prompts/templates/v1/templates_en/deleteTask/index.md +5 -0
  70. package/dist/prompts/templates/v1/templates_en/deleteTask/notFound.md +5 -0
  71. package/dist/prompts/templates/v1/templates_en/deleteTask/result.md +5 -0
  72. package/dist/prompts/templates/v1/templates_en/deleteTask/success.md +5 -0
  73. package/dist/prompts/templates/v1/templates_en/executeTask/analysisResult.md +3 -0
  74. package/dist/prompts/templates/v1/templates_en/executeTask/complexity.md +15 -0
  75. package/dist/prompts/templates/v1/templates_en/executeTask/dependencies.md +3 -0
  76. package/dist/prompts/templates/v1/templates_en/executeTask/dependencyTasks.md +3 -0
  77. package/dist/prompts/templates/v1/templates_en/executeTask/implementationGuide.md +3 -0
  78. package/dist/prompts/templates/v1/templates_en/executeTask/index.md +39 -0
  79. package/dist/prompts/templates/v1/templates_en/executeTask/notes.md +1 -0
  80. package/dist/prompts/templates/v1/templates_en/executeTask/relatedFilesSummary.md +5 -0
  81. package/dist/prompts/templates/v1/templates_en/executeTask/verificationCriteria.md +3 -0
  82. package/dist/prompts/templates/v1/templates_en/getTaskDetail/complatedSummary.md +5 -0
  83. package/dist/prompts/templates/v1/templates_en/getTaskDetail/dependencies.md +1 -0
  84. package/dist/prompts/templates/v1/templates_en/getTaskDetail/error.md +3 -0
  85. package/dist/prompts/templates/v1/templates_en/getTaskDetail/implementationGuide.md +3 -0
  86. package/dist/prompts/templates/v1/templates_en/getTaskDetail/index.md +25 -0
  87. package/dist/prompts/templates/v1/templates_en/getTaskDetail/notFound.md +3 -0
  88. package/dist/prompts/templates/v1/templates_en/getTaskDetail/notes.md +1 -0
  89. package/dist/prompts/templates/v1/templates_en/getTaskDetail/relatedFiles.md +3 -0
  90. package/dist/prompts/templates/v1/templates_en/getTaskDetail/verificationCriteria.md +3 -0
  91. package/dist/prompts/templates/v1/templates_en/initProjectRules/index.md +81 -0
  92. package/dist/prompts/templates/v1/templates_en/listTasks/index.md +7 -0
  93. package/dist/prompts/templates/v1/templates_en/listTasks/notFound.md +3 -0
  94. package/dist/prompts/templates/v1/templates_en/listTasks/taskDetails.md +13 -0
  95. package/dist/prompts/templates/v1/templates_en/planTask/hasThought.md +4 -0
  96. package/dist/prompts/templates/v1/templates_en/planTask/index.md +96 -0
  97. package/dist/prompts/templates/v1/templates_en/planTask/noThought.md +4 -0
  98. package/dist/prompts/templates/v1/templates_en/planTask/tasks.md +17 -0
  99. package/dist/prompts/templates/v1/templates_en/processThought/complatedThought.md +6 -0
  100. package/dist/prompts/templates/v1/templates_en/processThought/index.md +13 -0
  101. package/dist/prompts/templates/v1/templates_en/processThought/moreThought.md +1 -0
  102. package/dist/prompts/templates/v1/templates_en/queryTask/index.md +24 -0
  103. package/dist/prompts/templates/v1/templates_en/queryTask/notFound.md +15 -0
  104. package/dist/prompts/templates/v1/templates_en/queryTask/taskDetails.md +5 -0
  105. package/dist/prompts/templates/v1/templates_en/reflectTask/index.md +57 -0
  106. package/dist/prompts/templates/v1/templates_en/researchMode/index.md +95 -0
  107. package/dist/prompts/templates/v1/templates_en/researchMode/previousState.md +9 -0
  108. package/dist/prompts/templates/v1/templates_en/splitTasks/index.md +34 -0
  109. package/dist/prompts/templates/v1/templates_en/splitTasks/taskDetails.md +12 -0
  110. package/dist/prompts/templates/v1/templates_en/tests/basic.md +1 -0
  111. package/dist/prompts/templates/v1/templates_en/toolsDescription/analyzeTask.md +1 -0
  112. package/dist/prompts/templates/v1/templates_en/toolsDescription/clearAllTasks.md +1 -0
  113. package/dist/prompts/templates/v1/templates_en/toolsDescription/deleteTask.md +1 -0
  114. package/dist/prompts/templates/v1/templates_en/toolsDescription/executeTask.md +1 -0
  115. package/dist/prompts/templates/v1/templates_en/toolsDescription/getTaskDetail.md +1 -0
  116. package/dist/prompts/templates/v1/templates_en/toolsDescription/initProjectRules.md +1 -0
  117. package/dist/prompts/templates/v1/templates_en/toolsDescription/listTasks.md +1 -0
  118. package/dist/prompts/templates/v1/templates_en/toolsDescription/planTask.md +3 -0
  119. package/dist/prompts/templates/v1/templates_en/toolsDescription/processThought.md +1 -0
  120. package/dist/prompts/templates/v1/templates_en/toolsDescription/queryTask.md +1 -0
  121. package/dist/prompts/templates/v1/templates_en/toolsDescription/reflectTask.md +1 -0
  122. package/dist/prompts/templates/v1/templates_en/toolsDescription/researchMode.md +1 -0
  123. package/dist/prompts/templates/v1/templates_en/toolsDescription/splitTasks.md +83 -0
  124. package/dist/prompts/templates/v1/templates_en/toolsDescription/updateTask.md +1 -0
  125. package/dist/prompts/templates/v1/templates_en/toolsDescription/verifyTask.md +37 -0
  126. package/dist/prompts/templates/v1/templates_en/updateTaskContent/emptyUpdate.md +5 -0
  127. package/dist/prompts/templates/v1/templates_en/updateTaskContent/fileDetails.md +1 -0
  128. package/dist/prompts/templates/v1/templates_en/updateTaskContent/index.md +7 -0
  129. package/dist/prompts/templates/v1/templates_en/updateTaskContent/notFound.md +5 -0
  130. package/dist/prompts/templates/v1/templates_en/updateTaskContent/success.md +9 -0
  131. package/dist/prompts/templates/v1/templates_en/updateTaskContent/successDetails.md +3 -0
  132. package/dist/prompts/templates/v1/templates_en/updateTaskContent/validation.md +5 -0
  133. package/dist/prompts/templates/v1/templates_en/verifyTask/index.md +19 -0
  134. package/dist/prompts/templates/v1/templates_en/verifyTask/noPass.md +12 -0
  135. package/dist/prompts/thoughtPromptBuilder.d.ts +11 -0
  136. package/dist/prompts/thoughtPromptBuilder.d.ts.map +1 -0
  137. package/dist/prompts/thoughtPromptBuilder.js +30 -0
  138. package/dist/prompts/thoughtPromptBuilder.js.map +1 -0
  139. package/dist/server/container.d.ts +111 -0
  140. package/dist/server/container.d.ts.map +1 -0
  141. package/dist/server/container.js +135 -0
  142. package/dist/server/container.js.map +1 -0
  143. package/dist/server/logger.d.ts +98 -0
  144. package/dist/server/logger.d.ts.map +1 -0
  145. package/dist/server/logger.js +295 -0
  146. package/dist/server/logger.js.map +1 -0
  147. package/dist/server/mcpServer.d.ts +162 -0
  148. package/dist/server/mcpServer.d.ts.map +1 -0
  149. package/dist/server/mcpServer.js +236 -0
  150. package/dist/server/mcpServer.js.map +1 -0
  151. package/dist/tools/project/index.d.ts +7 -0
  152. package/dist/tools/project/index.d.ts.map +1 -0
  153. package/dist/tools/project/index.js +7 -0
  154. package/dist/tools/project/index.js.map +1 -0
  155. package/dist/tools/project/projectTools.d.ts +17 -0
  156. package/dist/tools/project/projectTools.d.ts.map +1 -0
  157. package/dist/tools/project/projectTools.js +73 -0
  158. package/dist/tools/project/projectTools.js.map +1 -0
  159. package/dist/tools/research/index.d.ts +7 -0
  160. package/dist/tools/research/index.d.ts.map +1 -0
  161. package/dist/tools/research/index.js +7 -0
  162. package/dist/tools/research/index.js.map +1 -0
  163. package/dist/tools/research/researchTools.d.ts +16 -0
  164. package/dist/tools/research/researchTools.d.ts.map +1 -0
  165. package/dist/tools/research/researchTools.js +41 -0
  166. package/dist/tools/research/researchTools.js.map +1 -0
  167. package/dist/tools/task/index.d.ts +8 -0
  168. package/dist/tools/task/index.d.ts.map +1 -0
  169. package/dist/tools/task/index.js +8 -0
  170. package/dist/tools/task/index.js.map +1 -0
  171. package/dist/tools/task/taskTools.d.ts +32 -0
  172. package/dist/tools/task/taskTools.d.ts.map +1 -0
  173. package/dist/tools/task/taskTools.js +542 -0
  174. package/dist/tools/task/taskTools.js.map +1 -0
  175. package/dist/tools/thought/index.d.ts +7 -0
  176. package/dist/tools/thought/index.d.ts.map +1 -0
  177. package/dist/tools/thought/index.js +7 -0
  178. package/dist/tools/thought/index.js.map +1 -0
  179. package/dist/tools/thought/thoughtTools.d.ts +16 -0
  180. package/dist/tools/thought/thoughtTools.d.ts.map +1 -0
  181. package/dist/tools/thought/thoughtTools.js +47 -0
  182. package/dist/tools/thought/thoughtTools.js.map +1 -0
  183. package/docs/API.md +32 -0
  184. package/docs/ARCHITECTURE.md +44 -0
  185. package/docs/COMPATIBILITY_REPORT.md +26 -0
  186. package/docs/PERFORMANCE.md +66 -0
  187. 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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GAevB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAG7C;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAiB,EAAE,SAA2B;IACvE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,eAAe,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI3E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACpE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAE3D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAiB,EAAE,SAA2B;IAC3E,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oFAAoF;QACjG,WAAW,EAAE,eAAe,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI/E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;YAC5E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAE9D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACzD,OAAO,iDAAiD,MAAM,CAAC,MAAM,IAAI,CAAC;YAC5E,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEnD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAiB,EAAE,SAA2B;IACvE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,eAAe,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI3E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACpE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAE3D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAE1E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAE/C,IAAI,OAAO,CAAC;YACZ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvD,OAAO,GAAG;oBACR,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACzB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC3C,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAClC,MAAM,CAAC,KAAK,EACZ,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,CACd,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAiB,EAAE,SAA2B;IACxE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,eAAe,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI5E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;YAExD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;gBAC9C,OAAO,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,OAAO,GAAsB,EAAE,CAAC;YAEtC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAClF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;gBAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9G,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;YAC1E,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YAClF,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YAClF,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;gBAAE,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,SAAS,CAAC;YACpH,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;gBAAE,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,SAAS,CAAC;YAEvH,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxF,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAE1F,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAErE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAiB,EAAE,SAA2B;IACxE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE,eAAe,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI5E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;YAExD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;gBAC9C,OAAO,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW;gBACxC,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAiB,EAAE,SAA2B;IAC3E,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qEAAqE;QAClF,WAAW,EAAE,eAAe,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI/E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;YAC5E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;gBACjD,OAAO,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;gBACjD,OAAO,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YACpC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAElE,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,IAAI,mBAAmB,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEtE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAiB,EAAE,SAA2B;IACzE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,sGAAsG;QACnH,WAAW,EAAE,eAAe,CAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI7E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;YACxE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACzD,OAAO,iDAAiD,MAAM,CAAC,MAAM,IAAI,CAAC;YAC5E,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY;iBACtC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;iBACnD,MAAM,CAAC,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAEjD,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YAC7E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,kCAAkC,CAAC,CAAC;gBAClH,OAAO,mCAAmC,IAAI,CAAC,IAAI,SAAS,cAAc,CAAC,MAAM,+BAA+B;oBAC9G,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,IAAI,EACJ,eAAe,EACf,UAAU,EACV,IAAI,CAAC,cAAc,IAAI,SAAS,CACjC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAiB,EAAE,SAA2B;IACxE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,eAAe,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI5E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAE9E,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACzD,OAAO,iDAAiD,MAAM,CAAC,MAAM,IAAI,CAAC;YAC5E,CAAC;YAED,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE;gBACzC,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YAEH,gCAAgC;YAChC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;YAC3F,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,IAAc,EACd,YAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC5C,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAE1C,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,UAAU,GAAG,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;SAC7B,IAAI,UAAU,GAAG,GAAG;QAAE,KAAK,IAAI,CAAC,CAAC;IAEtC,IAAI,QAAQ,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;SACxB,IAAI,QAAQ,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;SAC7B,IAAI,QAAQ,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ;QAAE,KAAK,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,WAAW;QAAE,KAAK,IAAI,CAAC,CAAC;IAE7B,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAiB,EAAE,SAA2B;IACtE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,0FAA0F;YAC1F,kEAAkE;QACpE,WAAW,EAAE,eAAe,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI1E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;YAClE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;YAElE,mEAAmE;YACnE,IAAI,oBAAoB,GAAe,EAAE,CAAC;YAC1C,IAAI,sBAAsB,GAAe,EAAE,CAAC;YAE5C,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC/C,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;gBACtE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpE,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpE,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC;YACnF,CAAC;YAED,8BAA8B;YAC9B,MAAM,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,IAAI,SAAS,EAChC,MAAM,CAAC,sBAAsB,EAC7B,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,EAClC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CACtC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAiB,EAAE,SAA2B;IACzE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,sEAAsE;YACtE,+EAA+E;QACjF,WAAW,EAAE,eAAe,CAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI7E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;YACxE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAE7B,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAE3D,qCAAqC;YACrC,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,gBAAgB,IAAI,SAAS,CACrC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAiB,EAAE,SAA2B;IACzE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gEAAgE;YAChE,wEAAwE;QAC1E,WAAW,EAAE,eAAe,CAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI7E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;YACxE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAE7B,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAE/D,uCAAuC;YACvC,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEpE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAiB,EAAE,SAA2B;IACxE,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,+DAA+D;YAC/D,yEAAyE;QAC3E,WAAW,EAAE,eAAe,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI5E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAExC,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EACjE,iBAAiB,CAClB,CAAC;YAEF,0BAA0B;YAC1B,IAAI,MAAM,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;gBAC1C,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnC,CAAC;YAED,mEAAmE;YACnE,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC/C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,qCAAqC;YACrC,MAAM,YAAY,GAAe,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEzD,gDAAgD;gBAChD,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,IAAI,cAAc,EAAE,CAAC;oBACxD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,SAAS,EACT,cAAc,EACd,UAAU,EACV,YAAY,EACZ,MAAM,CAAC,oBAAoB,IAAI,SAAS,CACzC,CAAC;oBACF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBAED,sCAAsC;gBACtC,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,IAAI,cAAc,EAAE,CAAC;oBACxD,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,yCAAyC,CAAC,CAAC;oBACvF,SAAS;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,cAAc,GAAG,aAAa,CAClC,UAAU,EACV,YAAY,EACZ,MAAM,CAAC,oBAAoB,IAAI,SAAS,EACxC,GAAG,CACJ,CAAC;gBACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAChE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE/B,6DAA6D;gBAC7D,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,sBAAsB;YACtB,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,MAAM,CAAC,UAAU,EACjB,YAAY,EACZ,aAAa,CACd,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAC1E,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CACpB,MAAwB,EACxB,aAAkC,EAClC,oBAAwC,EACxC,UAAkB;IAElB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,cAAc,EAAE,oBAAoB,IAAI,IAAI;QAC5C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI;QACvD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,IAAI;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAC/B,SAAwC,EACxC,MAAc,EACd,MAAwB,EACxB,aAAkC,EAClC,oBAAwC;IAExC,MAAM,OAAO,GAAsB;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;QAChC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,cAAc,EAAE,oBAAoB,IAAI,SAAS;QACjD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;QAChC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,SAAS;QAC5D,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,SAAS;KAC/D,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Thought Tools - Barrel Export
3
+ *
4
+ * Exports structured thinking tools.
5
+ */
6
+ export { registerThoughtTools } from './thoughtTools.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -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,7 @@
1
+ /**
2
+ * Thought Tools - Barrel Export
3
+ *
4
+ * Exports structured thinking tools.
5
+ */
6
+ export { registerThoughtTools } from './thoughtTools.js';
7
+ //# sourceMappingURL=index.js.map
@@ -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"}