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,460 @@
1
+ /**
2
+ * get_pipeline_status MCP Tool
3
+ *
4
+ * Queries the execution status of a pipeline, showing step progress,
5
+ * dependency graph, and available results.
6
+ */
7
+ import { z } from "zod";
8
+ // ============================================================================
9
+ // Constants
10
+ // ============================================================================
11
+ /**
12
+ * Tool description for get_pipeline_status
13
+ */
14
+ const TOOL_DESCRIPTION = "Query the execution status of a pipeline by name. Returns overall progress, step statuses, dependency graph, and available results.";
15
+ // ============================================================================
16
+ // Input Schema
17
+ // ============================================================================
18
+ /**
19
+ * Zod schema shape for get_pipeline_status input validation.
20
+ * Uses raw shape format as expected by MCP SDK's registerTool.
21
+ */
22
+ const getPipelineStatusInputSchemaShape = {
23
+ pipelineName: z
24
+ .string()
25
+ .min(1)
26
+ .describe("The pipeline name to query status for"),
27
+ };
28
+ // ============================================================================
29
+ // Status Helpers
30
+ // ============================================================================
31
+ /**
32
+ * Status emoji for step visualization
33
+ */
34
+ const STATUS_EMOJI = {
35
+ complete: "\u2705", // checkmark
36
+ running: "\uD83D\uDD04", // arrows circle
37
+ blocked: "\u23F3", // hourglass
38
+ pending: "\u23F8", // pause
39
+ };
40
+ /**
41
+ * Determine the status of a step within an execution
42
+ */
43
+ function getStepStatus(step, execution) {
44
+ // Check if completed
45
+ if (execution.completedSteps.has(step.name)) {
46
+ return "complete";
47
+ }
48
+ // Check if all dependencies are complete (step is ready)
49
+ const depsComplete = step.dependsOn?.every((dep) => execution.completedSteps.has(dep)) ?? true;
50
+ if (!depsComplete) {
51
+ return "blocked";
52
+ }
53
+ // If pipeline is running and step is ready, it's running
54
+ if (execution.status === "running") {
55
+ return "running";
56
+ }
57
+ return "pending";
58
+ }
59
+ /**
60
+ * Format duration in human-readable format
61
+ */
62
+ function formatDuration(ms) {
63
+ if (ms < 1000) {
64
+ return `${ms}ms`;
65
+ }
66
+ else if (ms < 60000) {
67
+ return `${(ms / 1000).toFixed(1)}s`;
68
+ }
69
+ else {
70
+ const minutes = Math.floor(ms / 60000);
71
+ const seconds = Math.floor((ms % 60000) / 1000);
72
+ return `${minutes}m ${seconds}s`;
73
+ }
74
+ }
75
+ /**
76
+ * Build a text-based dependency graph
77
+ */
78
+ function buildDependencyGraph(execution) {
79
+ const steps = execution.definition.steps;
80
+ // Group steps by their dependency depth
81
+ const depthMap = new Map();
82
+ // Calculate depth for each step (BFS-style)
83
+ for (const step of steps) {
84
+ if (!step.dependsOn || step.dependsOn.length === 0) {
85
+ depthMap.set(step.name, 0);
86
+ }
87
+ }
88
+ let changed = true;
89
+ while (changed) {
90
+ changed = false;
91
+ for (const step of steps) {
92
+ if (depthMap.has(step.name))
93
+ continue;
94
+ const deps = step.dependsOn ?? [];
95
+ const depsResolved = deps.every((d) => depthMap.has(d));
96
+ if (depsResolved) {
97
+ const maxDepth = Math.max(...deps.map((d) => depthMap.get(d) ?? 0));
98
+ depthMap.set(step.name, maxDepth + 1);
99
+ changed = true;
100
+ }
101
+ }
102
+ }
103
+ // Build adjacency for visualization
104
+ const lines = [];
105
+ const processed = new Set();
106
+ // Sort by depth for better visualization
107
+ const sortedSteps = [...steps].sort((a, b) => (depthMap.get(a.name) ?? 0) - (depthMap.get(b.name) ?? 0));
108
+ for (const step of sortedSteps) {
109
+ if (processed.has(step.name))
110
+ continue;
111
+ processed.add(step.name);
112
+ // Find what this step leads to
113
+ const dependents = steps.filter((s) => s.dependsOn?.includes(step.name));
114
+ if (dependents.length === 0) {
115
+ // Terminal node
116
+ if (step.dependsOn && step.dependsOn.length > 0) {
117
+ // Already shown as part of a chain
118
+ continue;
119
+ }
120
+ lines.push(step.name);
121
+ }
122
+ else if (dependents.length === 1) {
123
+ // Simple chain
124
+ const firstDependent = dependents[0];
125
+ if (firstDependent) {
126
+ lines.push(`${step.name} --> ${firstDependent.name}`);
127
+ }
128
+ }
129
+ else {
130
+ // Fan-out
131
+ const targets = dependents.map((d) => d.name).join(", ");
132
+ lines.push(`${step.name} --> [${targets}]`);
133
+ }
134
+ }
135
+ // Deduplicate and clean up
136
+ const uniqueLines = [...new Set(lines)];
137
+ return uniqueLines.length > 0 ? uniqueLines.join("\n") : "(single step)";
138
+ }
139
+ /**
140
+ * Format the results summary
141
+ */
142
+ function formatResults(execution) {
143
+ const resultSummaries = [];
144
+ for (const [stepName, result] of execution.results) {
145
+ // Get text content preview
146
+ const textContent = result.content
147
+ .filter((b) => b.type === "text")
148
+ .map((b) => b.text ?? "")
149
+ .join(" ")
150
+ .trim();
151
+ // Truncate to reasonable preview length
152
+ const preview = textContent.length > 60
153
+ ? textContent.substring(0, 60) + "..."
154
+ : textContent;
155
+ resultSummaries.push(`- **${stepName}**: "${preview}"`);
156
+ }
157
+ return resultSummaries.length > 0
158
+ ? resultSummaries.join("\n")
159
+ : "(no results yet)";
160
+ }
161
+ // ============================================================================
162
+ // Response Formatter
163
+ // ============================================================================
164
+ /**
165
+ * Formats a pipeline status response for MCP text output
166
+ */
167
+ function formatPipelineStatus(execution) {
168
+ const { definition, completedSteps, startTime, status } = execution;
169
+ const totalSteps = definition.steps.length;
170
+ const completedCount = completedSteps.size;
171
+ const percentage = Math.round((completedCount / totalSteps) * 100);
172
+ const elapsedTime = formatDuration(Date.now() - startTime);
173
+ // Build step status table
174
+ const stepRows = [];
175
+ for (const step of definition.steps) {
176
+ const stepStatus = getStepStatus(step, execution);
177
+ const result = execution.results.get(step.name);
178
+ const duration = result ? formatDuration(result.metadata.durationMs) : "-";
179
+ const provider = result ? result.provider : "-";
180
+ stepRows.push(`| ${step.name} | ${step.role} | ${STATUS_EMOJI[stepStatus]} ${stepStatus} | ${provider} | ${duration} |`);
181
+ }
182
+ const stepTable = `| Step | Role | Status | Provider | Duration |
183
+ |------|------|--------|----------|----------|
184
+ ${stepRows.join("\n")}`;
185
+ // Build dependency graph
186
+ const depGraph = buildDependencyGraph(execution);
187
+ // Build results section
188
+ const results = formatResults(execution);
189
+ // Overall status indicator
190
+ const statusIndicator = status === "completed"
191
+ ? `${STATUS_EMOJI.complete} completed`
192
+ : status === "failed"
193
+ ? "\u274C failed"
194
+ : status === "running"
195
+ ? `${STATUS_EMOJI.running} running`
196
+ : `${STATUS_EMOJI.pending} pending`;
197
+ return `## Pipeline Status: ${definition.name}
198
+
199
+ **Overall:** ${completedCount}/${totalSteps} steps complete (${percentage}%) - ${statusIndicator}
200
+ **Elapsed:** ${elapsedTime}
201
+
202
+ ### Step Status
203
+ ${stepTable}
204
+
205
+ ### Dependency Graph
206
+ \`\`\`
207
+ ${depGraph}
208
+ \`\`\`
209
+
210
+ ### Results Available
211
+ ${results}`;
212
+ }
213
+ // ============================================================================
214
+ // Worktree Status Helpers
215
+ // ============================================================================
216
+ /**
217
+ * Status emoji for worktree visualization
218
+ */
219
+ const WORKTREE_STATUS_EMOJI = {
220
+ pending: "\u23F8", // pause
221
+ allocated: "\uD83D\uDCE6", // package
222
+ active: "\uD83D\uDD04", // arrows circle
223
+ completed: "\u2705", // checkmark
224
+ merged: "\uD83D\uDD00", // shuffle
225
+ conflict: "\u26A0\uFE0F", // warning
226
+ };
227
+ /**
228
+ * Status emoji for merge phase visualization
229
+ */
230
+ const MERGE_PHASE_EMOJI = {
231
+ pending: "\u23F8", // pause
232
+ executing: "\uD83D\uDD04", // arrows circle
233
+ merging: "\uD83D\uDD00", // shuffle
234
+ completed: "\u2705", // checkmark
235
+ conflict: "\u26A0\uFE0F", // warning
236
+ failed: "\u274C", // cross
237
+ };
238
+ /**
239
+ * Format worktree allocations for display
240
+ */
241
+ function formatWorktreeStatus(allocations) {
242
+ if (allocations.size === 0) {
243
+ return "(no worktrees allocated)";
244
+ }
245
+ const rows = [];
246
+ for (const [stepId, allocation] of allocations) {
247
+ const statusEmoji = WORKTREE_STATUS_EMOJI[allocation.status] ?? "\u2753";
248
+ rows.push(`| ${stepId} | ${allocation.branch} | ${statusEmoji} ${allocation.status} | \`${allocation.worktreePath}\` |`);
249
+ }
250
+ return `| Step | Branch | Status | Path |
251
+ |------|--------|--------|------|
252
+ ${rows.join("\n")}`;
253
+ }
254
+ /**
255
+ * Derive merge status from worktree allocations
256
+ */
257
+ function deriveMergeStatus(allocations) {
258
+ const mergedSteps = [];
259
+ const conflictedSteps = [];
260
+ const conflictDetails = [];
261
+ let hasActive = false;
262
+ let hasPending = false;
263
+ let hasCompleted = false;
264
+ let hasConflict = false;
265
+ let allMerged = true;
266
+ for (const [stepId, allocation] of allocations) {
267
+ switch (allocation.status) {
268
+ case 'merged':
269
+ mergedSteps.push(stepId);
270
+ break;
271
+ case 'conflict':
272
+ conflictedSteps.push(stepId);
273
+ conflictDetails.push({ stepId, files: [] }); // Files not available at this level
274
+ hasConflict = true;
275
+ allMerged = false;
276
+ break;
277
+ case 'active':
278
+ hasActive = true;
279
+ allMerged = false;
280
+ break;
281
+ case 'pending':
282
+ case 'allocated':
283
+ hasPending = true;
284
+ allMerged = false;
285
+ break;
286
+ case 'completed':
287
+ hasCompleted = true;
288
+ allMerged = false;
289
+ break;
290
+ }
291
+ }
292
+ // Determine phase based on allocation states
293
+ let phase;
294
+ if (hasConflict) {
295
+ phase = 'conflict';
296
+ }
297
+ else if (allocations.size > 0 && allMerged) {
298
+ phase = 'completed';
299
+ }
300
+ else if (hasCompleted && !hasActive && !hasPending) {
301
+ phase = 'merging';
302
+ }
303
+ else if (hasActive) {
304
+ phase = 'executing';
305
+ }
306
+ else {
307
+ phase = 'pending';
308
+ }
309
+ return {
310
+ phase,
311
+ mergedSteps,
312
+ conflictedSteps,
313
+ conflictDetails,
314
+ };
315
+ }
316
+ /**
317
+ * Format merge status for display
318
+ */
319
+ function formatMergeStatus(phase, mergedSteps, conflictedSteps, conflictDetails) {
320
+ const phaseEmoji = MERGE_PHASE_EMOJI[phase] ?? "\u2753";
321
+ let output = `**Phase:** ${phaseEmoji} ${phase}\n`;
322
+ if (mergedSteps.length > 0) {
323
+ output += `**Merged:** ${mergedSteps.join(", ")}\n`;
324
+ }
325
+ if (conflictedSteps.length > 0) {
326
+ output += `**Conflicts:** ${conflictedSteps.join(", ")}\n`;
327
+ // Show conflict details if available
328
+ for (const detail of conflictDetails) {
329
+ if (detail.files.length > 0) {
330
+ output += ` - ${detail.stepId}: ${detail.files.join(", ")}\n`;
331
+ }
332
+ }
333
+ }
334
+ return output;
335
+ }
336
+ /**
337
+ * Formats a pipeline status response for MCP text output, including worktree information
338
+ */
339
+ function formatPipelineStatusWithWorktrees(execution, worktreeAllocations, worktreesEnabled) {
340
+ // Get base status
341
+ const baseStatus = formatPipelineStatus(execution);
342
+ // If worktrees not enabled or no allocations, return base status
343
+ if (!worktreesEnabled) {
344
+ return baseStatus;
345
+ }
346
+ // Build worktree section
347
+ const worktreeSection = formatWorktreeStatus(worktreeAllocations);
348
+ // Build merge status section
349
+ const mergeInfo = deriveMergeStatus(worktreeAllocations);
350
+ const mergeSection = formatMergeStatus(mergeInfo.phase, mergeInfo.mergedSteps, mergeInfo.conflictedSteps, mergeInfo.conflictDetails);
351
+ return `${baseStatus}
352
+
353
+ ### Worktrees
354
+ ${worktreeAllocations.size > 0 ? worktreeSection : "(no worktrees allocated)"}
355
+
356
+ ### Merge Status
357
+ ${mergeSection}`;
358
+ }
359
+ /**
360
+ * Registers the get_pipeline_status tool with the MCP server
361
+ *
362
+ * @param server - MCP server instance
363
+ * @param pipelineManager - PipelineManager for querying executions
364
+ * @param logger - Logger instance for structured logging
365
+ * @param options - Optional configuration for worktree support
366
+ */
367
+ export function registerGetPipelineStatusTool(server, pipelineManager, logger, options = {}) {
368
+ const { worktreesEnabled = false } = options;
369
+ // Use type assertion to work around Zod version compatibility issues
370
+ // between zod 3.25+ and the MCP SDK's ZodRawShapeCompat type
371
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
372
+ const inputSchema = getPipelineStatusInputSchemaShape;
373
+ server.registerTool("get_pipeline_status", {
374
+ title: "Get Pipeline Status",
375
+ description: TOOL_DESCRIPTION,
376
+ inputSchema,
377
+ },
378
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
379
+ async (args) => {
380
+ // Type-safe access with explicit casting after validation
381
+ const { pipelineName } = args;
382
+ logger.info("get_pipeline_status called", {
383
+ pipelineName,
384
+ });
385
+ try {
386
+ // Search through active executions for matching pipeline name
387
+ const activeExecutions = pipelineManager.getActiveExecutions();
388
+ const allExecutions = [...activeExecutions];
389
+ // Also check all tracked executions (completed ones might not be in active)
390
+ // We search by pipeline definition name
391
+ let foundExecution;
392
+ for (const execution of allExecutions) {
393
+ if (execution.definition.name === pipelineName) {
394
+ foundExecution = execution;
395
+ break;
396
+ }
397
+ }
398
+ if (!foundExecution) {
399
+ logger.warn("Pipeline not found", { pipelineName });
400
+ return {
401
+ content: [
402
+ {
403
+ type: "text",
404
+ text: `## Pipeline Not Found: ${pipelineName}\n\nNo active pipeline execution found with name "${pipelineName}".\n\nActive pipelines: ${activeExecutions.length > 0 ? activeExecutions.map((e) => e.definition.name).join(", ") : "(none)"}`,
405
+ },
406
+ ],
407
+ };
408
+ }
409
+ // Get worktree allocations if enabled
410
+ const worktreeAllocations = worktreesEnabled
411
+ ? pipelineManager.getAllocatedWorktrees()
412
+ : new Map();
413
+ logger.info("get_pipeline_status completed", {
414
+ pipelineName,
415
+ pipelineId: foundExecution.pipelineId,
416
+ status: foundExecution.status,
417
+ completedSteps: foundExecution.completedSteps.size,
418
+ totalSteps: foundExecution.definition.steps.length,
419
+ worktreesEnabled,
420
+ worktreeCount: worktreeAllocations.size,
421
+ });
422
+ return {
423
+ content: [
424
+ {
425
+ type: "text",
426
+ text: formatPipelineStatusWithWorktrees(foundExecution, worktreeAllocations, worktreesEnabled),
427
+ },
428
+ ],
429
+ };
430
+ }
431
+ catch (error) {
432
+ const errorMessage = error instanceof Error ? error.message : String(error);
433
+ // Only pass error to logger if it's an Error instance
434
+ if (error instanceof Error) {
435
+ logger.error("get_pipeline_status failed", {
436
+ pipelineName,
437
+ error,
438
+ errorMessage,
439
+ });
440
+ }
441
+ else {
442
+ logger.error("get_pipeline_status failed", {
443
+ pipelineName,
444
+ errorMessage,
445
+ });
446
+ }
447
+ // Return error as text content for MCP compatibility
448
+ return {
449
+ content: [
450
+ {
451
+ type: "text",
452
+ text: `## Error Getting Pipeline Status\n\n${errorMessage}`,
453
+ },
454
+ ],
455
+ };
456
+ }
457
+ });
458
+ logger.debug("Registered get_pipeline_status tool");
459
+ }
460
+ //# sourceMappingURL=get-pipeline-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pipeline-status.js","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/get-pipeline-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Task Tools Index
3
+ *
4
+ * Exports all task-related MCP tool registration functions.
5
+ * These tools enable Claude Code task integration with AgentRouter.
6
+ */
7
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import type { Logger } from "../../../observability/logger.js";
9
+ import type { RouterEngine } from "../../../router/engine.js";
10
+ import type { TaskCoordinator } from "../../../tasks/coordinator.js";
11
+ import type { PipelineManager } from "../../../tasks/pipeline-manager.js";
12
+ import type { WorktreeManager } from "../../../worktrees/manager.js";
13
+ /**
14
+ * Registers all task-related tools with the MCP server.
15
+ *
16
+ * Tools registered:
17
+ * - execute_task: Execute a Claude Code task using AgentRouter (with worktree support)
18
+ * - create_routed_task: Generate TaskCreate instructions for routed tasks
19
+ * - execute_pipeline: Create multi-provider task pipelines with dependency resolution
20
+ * - claim_next_task: Generate instructions for workers to claim available tasks
21
+ * - get_pipeline_status: Query the execution status of a pipeline
22
+ *
23
+ * @param server - The MCP server instance
24
+ * @param router - The router engine for agent invocation
25
+ * @param coordinator - TaskCoordinator for task lifecycle management
26
+ * @param pipelineManager - PipelineManager for pipeline validation and execution
27
+ * @param logger - Logger for tool operations
28
+ * @param worktreeManager - Optional WorktreeManager for isolated git worktrees
29
+ */
30
+ export declare function registerTaskTools(server: McpServer, router: RouterEngine, coordinator: TaskCoordinator, pipelineManager: PipelineManager, logger: Logger, worktreeManager?: WorktreeManager): void;
31
+ export { registerExecuteTaskTool } from "./execute-task.js";
32
+ export { registerCreateRoutedTaskTool } from "./create-routed-task.js";
33
+ export { registerExecutePipelineTool } from "./execute-pipeline.js";
34
+ export { registerClaimNextTaskTool } from "./claim-next-task.js";
35
+ export { registerGetPipelineStatusTool, type GetPipelineStatusToolOptions, } from "./get-pipeline-status.js";
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAYrE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,eAAe,EAC5B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CA+BN;AAMD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,6BAA6B,EAC7B,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Task Tools Index
3
+ *
4
+ * Exports all task-related MCP tool registration functions.
5
+ * These tools enable Claude Code task integration with AgentRouter.
6
+ */
7
+ import { registerClaimNextTaskTool } from "./claim-next-task.js";
8
+ import { registerCreateRoutedTaskTool } from "./create-routed-task.js";
9
+ import { registerExecutePipelineTool } from "./execute-pipeline.js";
10
+ import { registerExecuteTaskTool } from "./execute-task.js";
11
+ import { registerGetPipelineStatusTool } from "./get-pipeline-status.js";
12
+ // ============================================================================
13
+ // Convenience Registration
14
+ // ============================================================================
15
+ /**
16
+ * Registers all task-related tools with the MCP server.
17
+ *
18
+ * Tools registered:
19
+ * - execute_task: Execute a Claude Code task using AgentRouter (with worktree support)
20
+ * - create_routed_task: Generate TaskCreate instructions for routed tasks
21
+ * - execute_pipeline: Create multi-provider task pipelines with dependency resolution
22
+ * - claim_next_task: Generate instructions for workers to claim available tasks
23
+ * - get_pipeline_status: Query the execution status of a pipeline
24
+ *
25
+ * @param server - The MCP server instance
26
+ * @param router - The router engine for agent invocation
27
+ * @param coordinator - TaskCoordinator for task lifecycle management
28
+ * @param pipelineManager - PipelineManager for pipeline validation and execution
29
+ * @param logger - Logger for tool operations
30
+ * @param worktreeManager - Optional WorktreeManager for isolated git worktrees
31
+ */
32
+ export function registerTaskTools(server, router, coordinator, pipelineManager, logger, worktreeManager) {
33
+ logger.info("Registering task tools", {
34
+ worktreeSupport: !!worktreeManager,
35
+ });
36
+ // Register execute_task tool (with optional worktree support)
37
+ registerExecuteTaskTool(server, router, coordinator, logger, worktreeManager);
38
+ // Register create_routed_task tool
39
+ registerCreateRoutedTaskTool(server, logger);
40
+ // Register execute_pipeline tool (with optional worktree support)
41
+ registerExecutePipelineTool(server, pipelineManager, logger, worktreeManager);
42
+ // Register claim_next_task tool
43
+ registerClaimNextTaskTool(server, logger);
44
+ // Register get_pipeline_status tool (with worktree status if enabled)
45
+ registerGetPipelineStatusTool(server, pipelineManager, logger, {
46
+ worktreesEnabled: !!worktreeManager,
47
+ });
48
+ logger.info("Task tools registered successfully", {
49
+ tools: [
50
+ "execute_task",
51
+ "create_routed_task",
52
+ "execute_pipeline",
53
+ "claim_next_task",
54
+ "get_pipeline_status",
55
+ ],
56
+ });
57
+ }
58
+ // ============================================================================
59
+ // Exports
60
+ // ============================================================================
61
+ export { registerExecuteTaskTool } from "./execute-task.js";
62
+ export { registerCreateRoutedTaskTool } from "./create-routed-task.js";
63
+ export { registerExecutePipelineTool } from "./execute-pipeline.js";
64
+ export { registerClaimNextTaskTool } from "./claim-next-task.js";
65
+ export { registerGetPipelineStatusTool, } from "./get-pipeline-status.js";
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAEzE,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,MAAoB,EACpB,WAA4B,EAC5B,eAAgC,EAChC,MAAc,EACd,eAAiC;IAEjC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;QACpC,eAAe,EAAE,CAAC,CAAC,eAAe;KACnC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9E,mCAAmC;IACnC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,kEAAkE;IAClE,2BAA2B,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9E,gCAAgC;IAChC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,sEAAsE;IACtE,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAC7D,gBAAgB,EAAE,CAAC,CAAC,eAAe;KACpC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;QAChD,KAAK,EAAE;YACL,cAAc;YACd,oBAAoB;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,qBAAqB;SACtB;KACF,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,6BAA6B,GAE9B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Cleanup Worktrees MCP Tool
3
+ *
4
+ * Cleans up worktrees by status (stale, completing) or force removes specific ones.
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 cleanup_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 cleanup operations
15
+ */
16
+ export declare function registerCleanupWorktreesTool(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
17
+ //# sourceMappingURL=cleanup-worktrees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-worktrees.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/cleanup-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;AAkD9E;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAmHN"}