mcp-agent-foundry 1.0.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 (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +477 -0
  3. package/dist/cli/install-skills.d.ts +11 -0
  4. package/dist/cli/install-skills.d.ts.map +1 -0
  5. package/dist/cli/install-skills.js +143 -0
  6. package/dist/cli/install-skills.js.map +1 -0
  7. package/dist/cli/recovery-commands.d.ts +41 -0
  8. package/dist/cli/recovery-commands.d.ts.map +1 -0
  9. package/dist/cli/recovery-commands.js +241 -0
  10. package/dist/cli/recovery-commands.js.map +1 -0
  11. package/dist/cli/setup-wizard.d.ts +25 -0
  12. package/dist/cli/setup-wizard.d.ts.map +1 -0
  13. package/dist/cli/setup-wizard.js +1417 -0
  14. package/dist/cli/setup-wizard.js.map +1 -0
  15. package/dist/cli/test-connection.d.ts +45 -0
  16. package/dist/cli/test-connection.d.ts.map +1 -0
  17. package/dist/cli/test-connection.js +317 -0
  18. package/dist/cli/test-connection.js.map +1 -0
  19. package/dist/cli.d.ts +75 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +704 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/config/defaults.d.ts +57 -0
  24. package/dist/config/defaults.d.ts.map +1 -0
  25. package/dist/config/defaults.js +99 -0
  26. package/dist/config/defaults.js.map +1 -0
  27. package/dist/config/index.d.ts +14 -0
  28. package/dist/config/index.d.ts.map +1 -0
  29. package/dist/config/index.js +22 -0
  30. package/dist/config/index.js.map +1 -0
  31. package/dist/config/manager.d.ts +184 -0
  32. package/dist/config/manager.d.ts.map +1 -0
  33. package/dist/config/manager.js +347 -0
  34. package/dist/config/manager.js.map +1 -0
  35. package/dist/config/merger.d.ts +76 -0
  36. package/dist/config/merger.d.ts.map +1 -0
  37. package/dist/config/merger.js +189 -0
  38. package/dist/config/merger.js.map +1 -0
  39. package/dist/config/schema.d.ts +20 -0
  40. package/dist/config/schema.d.ts.map +1 -0
  41. package/dist/config/schema.js +20 -0
  42. package/dist/config/schema.js.map +1 -0
  43. package/dist/config/validator.d.ts +254 -0
  44. package/dist/config/validator.d.ts.map +1 -0
  45. package/dist/config/validator.js +363 -0
  46. package/dist/config/validator.js.map +1 -0
  47. package/dist/config/worktree-defaults.d.ts +23 -0
  48. package/dist/config/worktree-defaults.d.ts.map +1 -0
  49. package/dist/config/worktree-defaults.js +78 -0
  50. package/dist/config/worktree-defaults.js.map +1 -0
  51. package/dist/index.d.ts +8 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +44 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/mcp/tools/compare-agents.d.ts +25 -0
  56. package/dist/mcp/tools/compare-agents.d.ts.map +1 -0
  57. package/dist/mcp/tools/compare-agents.js +177 -0
  58. package/dist/mcp/tools/compare-agents.js.map +1 -0
  59. package/dist/mcp/tools/critique-plan.d.ts +26 -0
  60. package/dist/mcp/tools/critique-plan.d.ts.map +1 -0
  61. package/dist/mcp/tools/critique-plan.js +162 -0
  62. package/dist/mcp/tools/critique-plan.js.map +1 -0
  63. package/dist/mcp/tools/design-feedback.d.ts +26 -0
  64. package/dist/mcp/tools/design-feedback.d.ts.map +1 -0
  65. package/dist/mcp/tools/design-feedback.js +216 -0
  66. package/dist/mcp/tools/design-feedback.js.map +1 -0
  67. package/dist/mcp/tools/index.d.ts +50 -0
  68. package/dist/mcp/tools/index.d.ts.map +1 -0
  69. package/dist/mcp/tools/index.js +191 -0
  70. package/dist/mcp/tools/index.js.map +1 -0
  71. package/dist/mcp/tools/invoke-agent.d.ts +25 -0
  72. package/dist/mcp/tools/invoke-agent.d.ts.map +1 -0
  73. package/dist/mcp/tools/invoke-agent.js +141 -0
  74. package/dist/mcp/tools/invoke-agent.js.map +1 -0
  75. package/dist/mcp/tools/review-code.d.ts +25 -0
  76. package/dist/mcp/tools/review-code.d.ts.map +1 -0
  77. package/dist/mcp/tools/review-code.js +170 -0
  78. package/dist/mcp/tools/review-code.js.map +1 -0
  79. package/dist/mcp/tools/tasks/claim-next-task.d.ts +22 -0
  80. package/dist/mcp/tools/tasks/claim-next-task.d.ts.map +1 -0
  81. package/dist/mcp/tools/tasks/claim-next-task.js +203 -0
  82. package/dist/mcp/tools/tasks/claim-next-task.js.map +1 -0
  83. package/dist/mcp/tools/tasks/create-routed-task.d.ts +17 -0
  84. package/dist/mcp/tools/tasks/create-routed-task.d.ts.map +1 -0
  85. package/dist/mcp/tools/tasks/create-routed-task.js +178 -0
  86. package/dist/mcp/tools/tasks/create-routed-task.js.map +1 -0
  87. package/dist/mcp/tools/tasks/execute-pipeline.d.ts +22 -0
  88. package/dist/mcp/tools/tasks/execute-pipeline.d.ts.map +1 -0
  89. package/dist/mcp/tools/tasks/execute-pipeline.js +401 -0
  90. package/dist/mcp/tools/tasks/execute-pipeline.js.map +1 -0
  91. package/dist/mcp/tools/tasks/execute-task.d.ts +32 -0
  92. package/dist/mcp/tools/tasks/execute-task.d.ts.map +1 -0
  93. package/dist/mcp/tools/tasks/execute-task.js +284 -0
  94. package/dist/mcp/tools/tasks/execute-task.js.map +1 -0
  95. package/dist/mcp/tools/tasks/get-pipeline-status.d.ts +26 -0
  96. package/dist/mcp/tools/tasks/get-pipeline-status.d.ts.map +1 -0
  97. package/dist/mcp/tools/tasks/get-pipeline-status.js +460 -0
  98. package/dist/mcp/tools/tasks/get-pipeline-status.js.map +1 -0
  99. package/dist/mcp/tools/tasks/index.d.ts +36 -0
  100. package/dist/mcp/tools/tasks/index.d.ts.map +1 -0
  101. package/dist/mcp/tools/tasks/index.js +66 -0
  102. package/dist/mcp/tools/tasks/index.js.map +1 -0
  103. package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts +17 -0
  104. package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts.map +1 -0
  105. package/dist/mcp/tools/worktree/cleanup-worktrees.js +147 -0
  106. package/dist/mcp/tools/worktree/cleanup-worktrees.js.map +1 -0
  107. package/dist/mcp/tools/worktree/get-worktree-status.d.ts +17 -0
  108. package/dist/mcp/tools/worktree/get-worktree-status.d.ts.map +1 -0
  109. package/dist/mcp/tools/worktree/get-worktree-status.js +123 -0
  110. package/dist/mcp/tools/worktree/get-worktree-status.js.map +1 -0
  111. package/dist/mcp/tools/worktree/index.d.ts +41 -0
  112. package/dist/mcp/tools/worktree/index.d.ts.map +1 -0
  113. package/dist/mcp/tools/worktree/index.js +69 -0
  114. package/dist/mcp/tools/worktree/index.js.map +1 -0
  115. package/dist/mcp/tools/worktree/list-worktrees.d.ts +17 -0
  116. package/dist/mcp/tools/worktree/list-worktrees.d.ts.map +1 -0
  117. package/dist/mcp/tools/worktree/list-worktrees.js +136 -0
  118. package/dist/mcp/tools/worktree/list-worktrees.js.map +1 -0
  119. package/dist/mcp/tools/worktree/resolve-conflicts.d.ts +19 -0
  120. package/dist/mcp/tools/worktree/resolve-conflicts.d.ts.map +1 -0
  121. package/dist/mcp/tools/worktree/resolve-conflicts.js +228 -0
  122. package/dist/mcp/tools/worktree/resolve-conflicts.js.map +1 -0
  123. package/dist/mcp/transport/stdio.d.ts +13 -0
  124. package/dist/mcp/transport/stdio.d.ts.map +1 -0
  125. package/dist/mcp/transport/stdio.js +15 -0
  126. package/dist/mcp/transport/stdio.js.map +1 -0
  127. package/dist/observability/logger.d.ts +137 -0
  128. package/dist/observability/logger.d.ts.map +1 -0
  129. package/dist/observability/logger.js +235 -0
  130. package/dist/observability/logger.js.map +1 -0
  131. package/dist/observability/metrics.d.ts +250 -0
  132. package/dist/observability/metrics.d.ts.map +1 -0
  133. package/dist/observability/metrics.js +364 -0
  134. package/dist/observability/metrics.js.map +1 -0
  135. package/dist/persistence/index.d.ts +9 -0
  136. package/dist/persistence/index.d.ts.map +1 -0
  137. package/dist/persistence/index.js +9 -0
  138. package/dist/persistence/index.js.map +1 -0
  139. package/dist/persistence/state-schema.d.ts +116 -0
  140. package/dist/persistence/state-schema.d.ts.map +1 -0
  141. package/dist/persistence/state-schema.js +28 -0
  142. package/dist/persistence/state-schema.js.map +1 -0
  143. package/dist/persistence/state-store.d.ts +111 -0
  144. package/dist/persistence/state-store.d.ts.map +1 -0
  145. package/dist/persistence/state-store.js +291 -0
  146. package/dist/persistence/state-store.js.map +1 -0
  147. package/dist/providers/anthropic.d.ts +164 -0
  148. package/dist/providers/anthropic.d.ts.map +1 -0
  149. package/dist/providers/anthropic.js +500 -0
  150. package/dist/providers/anthropic.js.map +1 -0
  151. package/dist/providers/base.d.ts +151 -0
  152. package/dist/providers/base.d.ts.map +1 -0
  153. package/dist/providers/base.js +227 -0
  154. package/dist/providers/base.js.map +1 -0
  155. package/dist/providers/gemini.d.ts +85 -0
  156. package/dist/providers/gemini.d.ts.map +1 -0
  157. package/dist/providers/gemini.js +414 -0
  158. package/dist/providers/gemini.js.map +1 -0
  159. package/dist/providers/kimi.d.ts +19 -0
  160. package/dist/providers/kimi.d.ts.map +1 -0
  161. package/dist/providers/kimi.js +20 -0
  162. package/dist/providers/kimi.js.map +1 -0
  163. package/dist/providers/manager.d.ts +160 -0
  164. package/dist/providers/manager.d.ts.map +1 -0
  165. package/dist/providers/manager.js +264 -0
  166. package/dist/providers/manager.js.map +1 -0
  167. package/dist/providers/ollama.d.ts +83 -0
  168. package/dist/providers/ollama.d.ts.map +1 -0
  169. package/dist/providers/ollama.js +453 -0
  170. package/dist/providers/ollama.js.map +1 -0
  171. package/dist/providers/openai.d.ts +96 -0
  172. package/dist/providers/openai.d.ts.map +1 -0
  173. package/dist/providers/openai.js +457 -0
  174. package/dist/providers/openai.js.map +1 -0
  175. package/dist/providers/zai.d.ts +19 -0
  176. package/dist/providers/zai.d.ts.map +1 -0
  177. package/dist/providers/zai.js +20 -0
  178. package/dist/providers/zai.js.map +1 -0
  179. package/dist/router/context-manager.d.ts +2 -0
  180. package/dist/router/context-manager.d.ts.map +1 -0
  181. package/dist/router/context-manager.js +3 -0
  182. package/dist/router/context-manager.js.map +1 -0
  183. package/dist/router/engine.d.ts +169 -0
  184. package/dist/router/engine.d.ts.map +1 -0
  185. package/dist/router/engine.js +435 -0
  186. package/dist/router/engine.js.map +1 -0
  187. package/dist/router/pattern-executor.d.ts +317 -0
  188. package/dist/router/pattern-executor.d.ts.map +1 -0
  189. package/dist/router/pattern-executor.js +571 -0
  190. package/dist/router/pattern-executor.js.map +1 -0
  191. package/dist/router/role-resolver.d.ts +59 -0
  192. package/dist/router/role-resolver.d.ts.map +1 -0
  193. package/dist/router/role-resolver.js +95 -0
  194. package/dist/router/role-resolver.js.map +1 -0
  195. package/dist/server.d.ts +32 -0
  196. package/dist/server.d.ts.map +1 -0
  197. package/dist/server.js +223 -0
  198. package/dist/server.js.map +1 -0
  199. package/dist/startup.d.ts +78 -0
  200. package/dist/startup.d.ts.map +1 -0
  201. package/dist/startup.js +107 -0
  202. package/dist/startup.js.map +1 -0
  203. package/dist/tasks/coordinator.d.ts +141 -0
  204. package/dist/tasks/coordinator.d.ts.map +1 -0
  205. package/dist/tasks/coordinator.js +331 -0
  206. package/dist/tasks/coordinator.js.map +1 -0
  207. package/dist/tasks/index.d.ts +13 -0
  208. package/dist/tasks/index.d.ts.map +1 -0
  209. package/dist/tasks/index.js +13 -0
  210. package/dist/tasks/index.js.map +1 -0
  211. package/dist/tasks/persistent-state-coordinator.d.ts +89 -0
  212. package/dist/tasks/persistent-state-coordinator.d.ts.map +1 -0
  213. package/dist/tasks/persistent-state-coordinator.js +371 -0
  214. package/dist/tasks/persistent-state-coordinator.js.map +1 -0
  215. package/dist/tasks/pipeline-manager.d.ts +103 -0
  216. package/dist/tasks/pipeline-manager.d.ts.map +1 -0
  217. package/dist/tasks/pipeline-manager.js +358 -0
  218. package/dist/tasks/pipeline-manager.js.map +1 -0
  219. package/dist/tasks/state-coordinator.d.ts +79 -0
  220. package/dist/tasks/state-coordinator.d.ts.map +1 -0
  221. package/dist/tasks/state-coordinator.js +200 -0
  222. package/dist/tasks/state-coordinator.js.map +1 -0
  223. package/dist/tasks/worker-mode.d.ts +65 -0
  224. package/dist/tasks/worker-mode.d.ts.map +1 -0
  225. package/dist/tasks/worker-mode.js +208 -0
  226. package/dist/tasks/worker-mode.js.map +1 -0
  227. package/dist/translation/errors.d.ts +203 -0
  228. package/dist/translation/errors.d.ts.map +1 -0
  229. package/dist/translation/errors.js +477 -0
  230. package/dist/translation/errors.js.map +1 -0
  231. package/dist/translation/index.d.ts +12 -0
  232. package/dist/translation/index.d.ts.map +1 -0
  233. package/dist/translation/index.js +32 -0
  234. package/dist/translation/index.js.map +1 -0
  235. package/dist/translation/messages.d.ts +295 -0
  236. package/dist/translation/messages.d.ts.map +1 -0
  237. package/dist/translation/messages.js +557 -0
  238. package/dist/translation/messages.js.map +1 -0
  239. package/dist/translation/streaming.d.ts +226 -0
  240. package/dist/translation/streaming.d.ts.map +1 -0
  241. package/dist/translation/streaming.js +520 -0
  242. package/dist/translation/streaming.js.map +1 -0
  243. package/dist/translation/tools.d.ts +209 -0
  244. package/dist/translation/tools.d.ts.map +1 -0
  245. package/dist/translation/tools.js +331 -0
  246. package/dist/translation/tools.js.map +1 -0
  247. package/dist/types.d.ts +747 -0
  248. package/dist/types.d.ts.map +1 -0
  249. package/dist/types.js +86 -0
  250. package/dist/types.js.map +1 -0
  251. package/dist/utils/circuit-breaker.d.ts +175 -0
  252. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  253. package/dist/utils/circuit-breaker.js +315 -0
  254. package/dist/utils/circuit-breaker.js.map +1 -0
  255. package/dist/utils/env.d.ts +2 -0
  256. package/dist/utils/env.d.ts.map +1 -0
  257. package/dist/utils/env.js +3 -0
  258. package/dist/utils/env.js.map +1 -0
  259. package/dist/utils/git.d.ts +58 -0
  260. package/dist/utils/git.d.ts.map +1 -0
  261. package/dist/utils/git.js +197 -0
  262. package/dist/utils/git.js.map +1 -0
  263. package/dist/utils/index.d.ts +9 -0
  264. package/dist/utils/index.d.ts.map +1 -0
  265. package/dist/utils/index.js +9 -0
  266. package/dist/utils/index.js.map +1 -0
  267. package/dist/utils/merge-ordering.d.ts +45 -0
  268. package/dist/utils/merge-ordering.d.ts.map +1 -0
  269. package/dist/utils/merge-ordering.js +128 -0
  270. package/dist/utils/merge-ordering.js.map +1 -0
  271. package/dist/utils/retry.d.ts +106 -0
  272. package/dist/utils/retry.d.ts.map +1 -0
  273. package/dist/utils/retry.js +188 -0
  274. package/dist/utils/retry.js.map +1 -0
  275. package/dist/worktrees/branch-manager.d.ts +55 -0
  276. package/dist/worktrees/branch-manager.d.ts.map +1 -0
  277. package/dist/worktrees/branch-manager.js +129 -0
  278. package/dist/worktrees/branch-manager.js.map +1 -0
  279. package/dist/worktrees/conflict-handler.d.ts +72 -0
  280. package/dist/worktrees/conflict-handler.d.ts.map +1 -0
  281. package/dist/worktrees/conflict-handler.js +287 -0
  282. package/dist/worktrees/conflict-handler.js.map +1 -0
  283. package/dist/worktrees/conflict-parser.d.ts +28 -0
  284. package/dist/worktrees/conflict-parser.d.ts.map +1 -0
  285. package/dist/worktrees/conflict-parser.js +140 -0
  286. package/dist/worktrees/conflict-parser.js.map +1 -0
  287. package/dist/worktrees/index.d.ts +20 -0
  288. package/dist/worktrees/index.d.ts.map +1 -0
  289. package/dist/worktrees/index.js +20 -0
  290. package/dist/worktrees/index.js.map +1 -0
  291. package/dist/worktrees/instructions.d.ts +20 -0
  292. package/dist/worktrees/instructions.d.ts.map +1 -0
  293. package/dist/worktrees/instructions.js +84 -0
  294. package/dist/worktrees/instructions.js.map +1 -0
  295. package/dist/worktrees/manager.d.ts +76 -0
  296. package/dist/worktrees/manager.d.ts.map +1 -0
  297. package/dist/worktrees/manager.js +277 -0
  298. package/dist/worktrees/manager.js.map +1 -0
  299. package/dist/worktrees/pipeline-merge-orchestrator.d.ts +55 -0
  300. package/dist/worktrees/pipeline-merge-orchestrator.d.ts.map +1 -0
  301. package/dist/worktrees/pipeline-merge-orchestrator.js +221 -0
  302. package/dist/worktrees/pipeline-merge-orchestrator.js.map +1 -0
  303. package/dist/worktrees/pool.d.ts +95 -0
  304. package/dist/worktrees/pool.d.ts.map +1 -0
  305. package/dist/worktrees/pool.js +271 -0
  306. package/dist/worktrees/pool.js.map +1 -0
  307. package/dist/worktrees/recovery.d.ts +94 -0
  308. package/dist/worktrees/recovery.d.ts.map +1 -0
  309. package/dist/worktrees/recovery.js +371 -0
  310. package/dist/worktrees/recovery.js.map +1 -0
  311. package/dist/worktrees/resource-manager.d.ts +74 -0
  312. package/dist/worktrees/resource-manager.d.ts.map +1 -0
  313. package/dist/worktrees/resource-manager.js +228 -0
  314. package/dist/worktrees/resource-manager.js.map +1 -0
  315. package/package.json +88 -0
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Cleanup Worktrees MCP Tool
3
+ *
4
+ * Cleans up worktrees by status (stale, completing) or force removes specific ones.
5
+ */
6
+ import { z } from "zod";
7
+ // ============================================================================
8
+ // Constants
9
+ // ============================================================================
10
+ /**
11
+ * Tool description for cleanup_worktrees
12
+ */
13
+ const TOOL_DESCRIPTION = "Clean up worktrees by status (stale, completing) or force remove specific ones. " +
14
+ "Modes: 'stale' (idle beyond threshold), 'completing' (finished tasks), 'force' (specific IDs).";
15
+ // ============================================================================
16
+ // Input Schema
17
+ // ============================================================================
18
+ /**
19
+ * Zod schema shape for cleanup_worktrees input validation.
20
+ */
21
+ const cleanupWorktreesInputSchemaShape = {
22
+ mode: z
23
+ .enum(["stale", "completing", "force"])
24
+ .describe("Cleanup mode: 'stale' (idle >24h), 'completing' (finished tasks), 'force' (specific IDs)"),
25
+ worktreeIds: z
26
+ .array(z.string())
27
+ .optional()
28
+ .describe("Required for 'force' mode: specific worktree IDs to remove"),
29
+ maxIdleHours: z
30
+ .number()
31
+ .optional()
32
+ .default(24)
33
+ .describe("For 'stale' mode: max idle time in hours"),
34
+ };
35
+ // ============================================================================
36
+ // Tool Registration
37
+ // ============================================================================
38
+ /**
39
+ * Register the cleanup_worktrees MCP tool.
40
+ *
41
+ * @param server - MCP server instance
42
+ * @param logger - Logger instance for structured logging
43
+ * @param resourceManager - Optional ResourceManager for worktree cleanup operations
44
+ */
45
+ export function registerCleanupWorktreesTool(server, logger, resourceManager) {
46
+ // Use type assertion to work around Zod version compatibility issues
47
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
48
+ const inputSchema = cleanupWorktreesInputSchemaShape;
49
+ server.registerTool("cleanup_worktrees", {
50
+ title: "Cleanup Worktrees",
51
+ description: TOOL_DESCRIPTION,
52
+ inputSchema,
53
+ },
54
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
55
+ async (args) => {
56
+ const input = args;
57
+ const { mode, worktreeIds, maxIdleHours } = input;
58
+ logger.info("cleanup_worktrees called", { mode });
59
+ if (!resourceManager) {
60
+ return {
61
+ content: [
62
+ {
63
+ type: "text",
64
+ text: "## Error\n\nWorktree management not enabled.",
65
+ },
66
+ ],
67
+ };
68
+ }
69
+ try {
70
+ let cleaned = [];
71
+ let failed = [];
72
+ switch (mode) {
73
+ case "stale": {
74
+ const maxIdleMs = maxIdleHours * 60 * 60 * 1000;
75
+ cleaned = await resourceManager.cleanupStale(maxIdleMs);
76
+ break;
77
+ }
78
+ case "completing": {
79
+ cleaned = await resourceManager.cleanupByStatus("completing");
80
+ break;
81
+ }
82
+ case "force": {
83
+ if (!worktreeIds || worktreeIds.length === 0) {
84
+ return {
85
+ content: [
86
+ {
87
+ type: "text",
88
+ text: "## Error\n\n'force' mode requires worktreeIds parameter.",
89
+ },
90
+ ],
91
+ };
92
+ }
93
+ const result = await resourceManager.forceCleanup(worktreeIds);
94
+ cleaned = result.cleaned;
95
+ failed = result.failed;
96
+ break;
97
+ }
98
+ }
99
+ // Format output
100
+ const lines = [];
101
+ if (cleaned.length > 0) {
102
+ lines.push(`## Cleanup Complete\n`);
103
+ lines.push(`**Removed:** ${String(cleaned.length)} worktrees\n`);
104
+ for (const id of cleaned) {
105
+ lines.push(`- ${id}`);
106
+ }
107
+ }
108
+ else {
109
+ lines.push(`## No Worktrees Cleaned\n`);
110
+ lines.push("No worktrees matched the cleanup criteria.");
111
+ }
112
+ if (failed.length > 0) {
113
+ lines.push(`\n### Failed to Remove\n`);
114
+ for (const id of failed) {
115
+ lines.push(`- ${id}`);
116
+ }
117
+ }
118
+ // Show current usage
119
+ const usage = await resourceManager.getCurrentUsage();
120
+ lines.push(`\n### Current Usage`);
121
+ lines.push(`- **Worktrees:** ${String(usage.currentWorktrees)}`);
122
+ lines.push(`- **Disk:** ${String(usage.diskUsageMB)} MB`);
123
+ logger.info("cleanup_worktrees completed", {
124
+ mode,
125
+ cleaned: cleaned.length,
126
+ failed: failed.length,
127
+ });
128
+ return {
129
+ content: [{ type: "text", text: lines.join("\n") }],
130
+ };
131
+ }
132
+ catch (error) {
133
+ const errorMessage = error instanceof Error ? error.message : String(error);
134
+ logger.error("cleanup_worktrees failed", { error: error instanceof Error ? error : undefined });
135
+ return {
136
+ content: [
137
+ {
138
+ type: "text",
139
+ text: `## Error\n\n${errorMessage}`,
140
+ },
141
+ ],
142
+ };
143
+ }
144
+ });
145
+ logger.debug("Registered cleanup_worktrees tool");
146
+ }
147
+ //# sourceMappingURL=cleanup-worktrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-worktrees.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/cleanup-worktrees.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Get Worktree Status MCP Tool
3
+ *
4
+ * Gets detailed status of a specific worktree including path, branch, disk usage, and age.
5
+ */
6
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import type { Logger } from "../../../observability/logger.js";
8
+ import type { ResourceManager } from "../../../worktrees/resource-manager.js";
9
+ /**
10
+ * Register the get_worktree_status MCP tool.
11
+ *
12
+ * @param server - MCP server instance
13
+ * @param logger - Logger instance for structured logging
14
+ * @param resourceManager - Optional ResourceManager for worktree metrics
15
+ */
16
+ export declare function registerGetWorktreeStatusTool(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
17
+ //# sourceMappingURL=get-worktree-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-worktree-status.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/get-worktree-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAoD9E;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAqFN"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Get Worktree Status MCP Tool
3
+ *
4
+ * Gets detailed status of a specific worktree including path, branch, disk usage, and age.
5
+ */
6
+ import { z } from "zod";
7
+ // ============================================================================
8
+ // Constants
9
+ // ============================================================================
10
+ /**
11
+ * Tool description for get_worktree_status
12
+ */
13
+ const TOOL_DESCRIPTION = "Get detailed status of a specific worktree including path, branch, disk usage, and age.";
14
+ // ============================================================================
15
+ // Input Schema
16
+ // ============================================================================
17
+ /**
18
+ * Zod schema shape for get_worktree_status input validation.
19
+ */
20
+ const getWorktreeStatusInputSchemaShape = {
21
+ worktreeId: z.string().min(1).describe("The worktree ID to get status for"),
22
+ };
23
+ // ============================================================================
24
+ // Helper Functions
25
+ // ============================================================================
26
+ /**
27
+ * Format duration in human-readable form.
28
+ */
29
+ function formatDuration(ms) {
30
+ const hours = Math.floor(ms / (1000 * 60 * 60));
31
+ const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));
32
+ if (hours > 24) {
33
+ const days = Math.floor(hours / 24);
34
+ return `${String(days)}d ${String(hours % 24)}h`;
35
+ }
36
+ if (hours > 0)
37
+ return `${String(hours)}h ${String(minutes)}m`;
38
+ return `${String(minutes)}m`;
39
+ }
40
+ // ============================================================================
41
+ // Tool Registration
42
+ // ============================================================================
43
+ /**
44
+ * Register the get_worktree_status MCP tool.
45
+ *
46
+ * @param server - MCP server instance
47
+ * @param logger - Logger instance for structured logging
48
+ * @param resourceManager - Optional ResourceManager for worktree metrics
49
+ */
50
+ export function registerGetWorktreeStatusTool(server, logger, resourceManager) {
51
+ // Use type assertion to work around Zod version compatibility issues
52
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
53
+ const inputSchema = getWorktreeStatusInputSchemaShape;
54
+ server.registerTool("get_worktree_status", {
55
+ title: "Get Worktree Status",
56
+ description: TOOL_DESCRIPTION,
57
+ inputSchema,
58
+ },
59
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
60
+ async (args) => {
61
+ const input = args;
62
+ const { worktreeId } = input;
63
+ logger.info("get_worktree_status called", { worktreeId });
64
+ if (!resourceManager) {
65
+ return {
66
+ content: [
67
+ {
68
+ type: "text",
69
+ text: "## Error\n\nWorktree management not enabled.",
70
+ },
71
+ ],
72
+ };
73
+ }
74
+ try {
75
+ const metrics = await resourceManager.getWorktreeMetrics(worktreeId);
76
+ if (!metrics) {
77
+ return {
78
+ content: [
79
+ {
80
+ type: "text",
81
+ text: `## Not Found\n\nWorktree '${worktreeId}' not found.`,
82
+ },
83
+ ],
84
+ };
85
+ }
86
+ const now = Date.now();
87
+ const age = formatDuration(now - metrics.createdAt);
88
+ const lastActivity = formatDuration(now - metrics.lastActivityAt);
89
+ const lines = [];
90
+ lines.push(`## Worktree: ${metrics.id}\n`);
91
+ lines.push(`| Property | Value |`);
92
+ lines.push(`|:---------|:------|`);
93
+ lines.push(`| **Status** | ${metrics.status} |`);
94
+ lines.push(`| **Path** | \`${metrics.path}\` |`);
95
+ lines.push(`| **Branch** | ${metrics.branch} |`);
96
+ lines.push(`| **Task ID** | ${metrics.taskId ?? "-"} |`);
97
+ lines.push(`| **Disk Usage** | ${String(metrics.diskUsageMB ?? 0)} MB |`);
98
+ lines.push(`| **Age** | ${age} |`);
99
+ lines.push(`| **Last Activity** | ${lastActivity} ago |`);
100
+ logger.info("get_worktree_status completed", {
101
+ worktreeId,
102
+ status: metrics.status,
103
+ });
104
+ return {
105
+ content: [{ type: "text", text: lines.join("\n") }],
106
+ };
107
+ }
108
+ catch (error) {
109
+ const errorMessage = error instanceof Error ? error.message : String(error);
110
+ logger.error("get_worktree_status failed", { error: error instanceof Error ? error : undefined });
111
+ return {
112
+ content: [
113
+ {
114
+ type: "text",
115
+ text: `## Error\n\n${errorMessage}`,
116
+ },
117
+ ],
118
+ };
119
+ }
120
+ });
121
+ logger.debug("Registered get_worktree_status tool");
122
+ }
123
+ //# sourceMappingURL=get-worktree-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-worktree-status.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/get-worktree-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Worktree Tools Index
3
+ *
4
+ * Exports all worktree-related MCP tool registration functions.
5
+ * These tools enable conflict resolution and worktree management.
6
+ */
7
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import type { Logger } from "../../../observability/logger.js";
9
+ import type { StateCoordinator } from "../../../tasks/state-coordinator.js";
10
+ import type { ResourceManager } from "../../../worktrees/resource-manager.js";
11
+ import type { WorktreeManager } from "../../../worktrees/manager.js";
12
+ /**
13
+ * Registers all worktree-related tools with the MCP server.
14
+ *
15
+ * Tools registered:
16
+ * - resolve_conflicts: Resolve git merge conflicts using various strategies
17
+ *
18
+ * @param server - The MCP server instance
19
+ * @param logger - Logger for tool operations
20
+ * @param worktreeManager - WorktreeManager for git worktree operations
21
+ * @param stateCoordinator - Optional StateCoordinator for conflict state tracking
22
+ */
23
+ export declare function registerWorktreeTools(server: McpServer, logger: Logger, worktreeManager?: WorktreeManager, stateCoordinator?: StateCoordinator): void;
24
+ /**
25
+ * Registers worktree management tools with the MCP server.
26
+ *
27
+ * Tools registered:
28
+ * - list_worktrees: List all worktrees with status, task associations, and resource usage
29
+ * - cleanup_worktrees: Clean up worktrees by status or force remove specific ones
30
+ * - get_worktree_status: Get detailed status of a specific worktree
31
+ *
32
+ * @param server - The MCP server instance
33
+ * @param logger - Logger for tool operations
34
+ * @param resourceManager - Optional ResourceManager for worktree metrics and cleanup
35
+ */
36
+ export declare function registerWorktreeManagementTools(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
37
+ export { registerResolveConflictsTool } from "./resolve-conflicts.js";
38
+ export { registerListWorktreesTool } from "./list-worktrees.js";
39
+ export { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
40
+ export { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWrE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,EACjC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAYN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAiBN;AAMD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Worktree Tools Index
3
+ *
4
+ * Exports all worktree-related MCP tool registration functions.
5
+ * These tools enable conflict resolution and worktree management.
6
+ */
7
+ import { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
8
+ import { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
9
+ import { registerListWorktreesTool } from "./list-worktrees.js";
10
+ import { registerResolveConflictsTool } from "./resolve-conflicts.js";
11
+ // ============================================================================
12
+ // Convenience Registration
13
+ // ============================================================================
14
+ /**
15
+ * Registers all worktree-related tools with the MCP server.
16
+ *
17
+ * Tools registered:
18
+ * - resolve_conflicts: Resolve git merge conflicts using various strategies
19
+ *
20
+ * @param server - The MCP server instance
21
+ * @param logger - Logger for tool operations
22
+ * @param worktreeManager - WorktreeManager for git worktree operations
23
+ * @param stateCoordinator - Optional StateCoordinator for conflict state tracking
24
+ */
25
+ export function registerWorktreeTools(server, logger, worktreeManager, stateCoordinator) {
26
+ logger.info("Registering worktree tools", {
27
+ worktreeSupport: !!worktreeManager,
28
+ stateCoordinatorAvailable: !!stateCoordinator,
29
+ });
30
+ // Register resolve_conflicts tool
31
+ registerResolveConflictsTool(server, logger, worktreeManager, stateCoordinator);
32
+ logger.info("Worktree tools registered successfully", {
33
+ tools: ["resolve_conflicts"],
34
+ });
35
+ }
36
+ /**
37
+ * Registers worktree management tools with the MCP server.
38
+ *
39
+ * Tools registered:
40
+ * - list_worktrees: List all worktrees with status, task associations, and resource usage
41
+ * - cleanup_worktrees: Clean up worktrees by status or force remove specific ones
42
+ * - get_worktree_status: Get detailed status of a specific worktree
43
+ *
44
+ * @param server - The MCP server instance
45
+ * @param logger - Logger for tool operations
46
+ * @param resourceManager - Optional ResourceManager for worktree metrics and cleanup
47
+ */
48
+ export function registerWorktreeManagementTools(server, logger, resourceManager) {
49
+ logger.info("Registering worktree management tools", {
50
+ resourceManagerAvailable: !!resourceManager,
51
+ });
52
+ // Register list_worktrees tool
53
+ registerListWorktreesTool(server, logger, resourceManager);
54
+ // Register cleanup_worktrees tool
55
+ registerCleanupWorktreesTool(server, logger, resourceManager);
56
+ // Register get_worktree_status tool
57
+ registerGetWorktreeStatusTool(server, logger, resourceManager);
58
+ logger.info("Worktree management tools registered successfully", {
59
+ tools: ["list_worktrees", "cleanup_worktrees", "get_worktree_status"],
60
+ });
61
+ }
62
+ // ============================================================================
63
+ // Exports
64
+ // ============================================================================
65
+ export { registerResolveConflictsTool } from "./resolve-conflicts.js";
66
+ export { registerListWorktreesTool } from "./list-worktrees.js";
67
+ export { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
68
+ export { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAc,EACd,eAAiC,EACjC,gBAAmC;IAEnC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;QACxC,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,yBAAyB,EAAE,CAAC,CAAC,gBAAgB;KAC9C,CAAC,CAAC;IAEH,kCAAkC;IAClC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAEhF,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;QACpD,KAAK,EAAE,CAAC,mBAAmB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAiB,EACjB,MAAc,EACd,eAAiC;IAEjC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;QACnD,wBAAwB,EAAE,CAAC,CAAC,eAAe;KAC5C,CAAC,CAAC;IAEH,+BAA+B;IAC/B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE3D,kCAAkC;IAClC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9D,oCAAoC;IACpC,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE/D,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAC/D,KAAK,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * List Worktrees MCP Tool
3
+ *
4
+ * Lists all worktrees with their status, task associations, and resource usage.
5
+ */
6
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import type { Logger } from "../../../observability/logger.js";
8
+ import type { ResourceManager } from "../../../worktrees/resource-manager.js";
9
+ /**
10
+ * Register the list_worktrees MCP tool.
11
+ *
12
+ * @param server - MCP server instance
13
+ * @param logger - Logger instance for structured logging
14
+ * @param resourceManager - Optional ResourceManager for worktree metrics
15
+ */
16
+ export declare function registerListWorktreesTool(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
17
+ //# sourceMappingURL=list-worktrees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-worktrees.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/list-worktrees.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AA4D9E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CA8FN"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * List Worktrees MCP Tool
3
+ *
4
+ * Lists all worktrees with their status, task associations, and resource usage.
5
+ */
6
+ import { z } from "zod";
7
+ // ============================================================================
8
+ // Constants
9
+ // ============================================================================
10
+ /**
11
+ * Tool description for list_worktrees
12
+ */
13
+ const TOOL_DESCRIPTION = "List all worktrees with their status, task associations, and resource usage. " +
14
+ "Filter by status ('available', 'assigned', 'active', 'completing', 'conflict', 'stale', 'all') " +
15
+ "or by task ID.";
16
+ // ============================================================================
17
+ // Input Schema
18
+ // ============================================================================
19
+ /**
20
+ * Zod schema shape for list_worktrees input validation.
21
+ */
22
+ const listWorktreesInputSchemaShape = {
23
+ status: z
24
+ .enum(["available", "assigned", "active", "completing", "conflict", "stale", "all"])
25
+ .optional()
26
+ .default("all")
27
+ .describe("Filter by worktree status"),
28
+ taskId: z.string().optional().describe("Filter by task ID"),
29
+ };
30
+ // ============================================================================
31
+ // Helper Functions
32
+ // ============================================================================
33
+ /**
34
+ * Format age in human-readable form.
35
+ */
36
+ function formatAge(ms) {
37
+ const hours = Math.floor(ms / (1000 * 60 * 60));
38
+ const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));
39
+ if (hours > 24) {
40
+ const days = Math.floor(hours / 24);
41
+ return `${String(days)}d ${String(hours % 24)}h`;
42
+ }
43
+ if (hours > 0)
44
+ return `${String(hours)}h ${String(minutes)}m`;
45
+ return `${String(minutes)}m`;
46
+ }
47
+ // ============================================================================
48
+ // Tool Registration
49
+ // ============================================================================
50
+ /**
51
+ * Register the list_worktrees MCP tool.
52
+ *
53
+ * @param server - MCP server instance
54
+ * @param logger - Logger instance for structured logging
55
+ * @param resourceManager - Optional ResourceManager for worktree metrics
56
+ */
57
+ export function registerListWorktreesTool(server, logger, resourceManager) {
58
+ // Use type assertion to work around Zod version compatibility issues
59
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
60
+ const inputSchema = listWorktreesInputSchemaShape;
61
+ server.registerTool("list_worktrees", {
62
+ title: "List Worktrees",
63
+ description: TOOL_DESCRIPTION,
64
+ inputSchema,
65
+ },
66
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
67
+ async (args) => {
68
+ const input = args;
69
+ const { status, taskId } = input;
70
+ logger.info("list_worktrees called", { status, taskId });
71
+ if (!resourceManager) {
72
+ return {
73
+ content: [
74
+ {
75
+ type: "text",
76
+ text: "## Error\n\nWorktree management not enabled.",
77
+ },
78
+ ],
79
+ };
80
+ }
81
+ try {
82
+ const metrics = await resourceManager.getAllWorktreeMetrics();
83
+ let filtered = metrics;
84
+ // Apply filters
85
+ if (status && status !== "all") {
86
+ filtered = filtered.filter((m) => m.status === status);
87
+ }
88
+ if (taskId) {
89
+ filtered = filtered.filter((m) => m.taskId === taskId);
90
+ }
91
+ // Format output
92
+ const lines = [];
93
+ lines.push("## Worktrees\n");
94
+ if (filtered.length === 0) {
95
+ lines.push("No worktrees found matching criteria.\n");
96
+ }
97
+ else {
98
+ lines.push("| ID | Status | Task | Branch | Disk (MB) | Age |");
99
+ lines.push("|:---|:-------|:-----|:-------|----------:|:----|");
100
+ const now = Date.now();
101
+ for (const m of filtered) {
102
+ const age = formatAge(now - m.createdAt);
103
+ const idShort = m.id.length > 12 ? `${m.id.slice(0, 12)}...` : m.id;
104
+ lines.push(`| ${idShort} | ${m.status} | ${m.taskId ?? "-"} | ${m.branch} | ${String(m.diskUsageMB ?? 0)} | ${age} |`);
105
+ }
106
+ }
107
+ // Add summary
108
+ const usage = await resourceManager.getCurrentUsage();
109
+ lines.push("\n### Summary");
110
+ lines.push(`- **Total:** ${String(usage.currentWorktrees)}`);
111
+ lines.push(`- **Available Slots:** ${String(usage.availableSlots)}`);
112
+ lines.push(`- **Disk Usage:** ${String(usage.diskUsageMB)} MB`);
113
+ logger.info("list_worktrees completed", {
114
+ total: metrics.length,
115
+ filtered: filtered.length,
116
+ });
117
+ return {
118
+ content: [{ type: "text", text: lines.join("\n") }],
119
+ };
120
+ }
121
+ catch (error) {
122
+ const errorMessage = error instanceof Error ? error.message : String(error);
123
+ logger.error("list_worktrees failed", { error: error instanceof Error ? error : undefined });
124
+ return {
125
+ content: [
126
+ {
127
+ type: "text",
128
+ text: `## Error\n\n${errorMessage}`,
129
+ },
130
+ ],
131
+ };
132
+ }
133
+ });
134
+ logger.debug("Registered list_worktrees tool");
135
+ }
136
+ //# sourceMappingURL=list-worktrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-worktrees.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/list-worktrees.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Resolve Conflicts MCP Tool
3
+ *
4
+ * Allows users to resolve git merge conflicts in worktrees using various strategies.
5
+ */
6
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import type { Logger } from "../../../observability/logger.js";
8
+ import type { StateCoordinator } from "../../../tasks/state-coordinator.js";
9
+ import type { WorktreeManager } from "../../../worktrees/manager.js";
10
+ /**
11
+ * Register the resolve_conflicts MCP tool.
12
+ *
13
+ * @param server - MCP server instance
14
+ * @param logger - Logger instance for structured logging
15
+ * @param worktreeManager - Optional WorktreeManager for git worktree operations
16
+ * @param stateCoordinator - Optional StateCoordinator for conflict state tracking
17
+ */
18
+ export declare function registerResolveConflictsTool(server: McpServer, logger: Logger, worktreeManager?: WorktreeManager, stateCoordinator?: StateCoordinator): void;
19
+ //# sourceMappingURL=resolve-conflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-conflicts.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/resolve-conflicts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAO5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAyKrE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,EACjC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwIN"}