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,22 @@
1
+ /**
2
+ * execute_pipeline MCP Tool
3
+ *
4
+ * Creates multi-provider task pipelines with dependency resolution.
5
+ * Validates DAG structure and generates TaskCreate instructions for Claude.
6
+ * Automatically allocates isolated git worktrees for coding roles and
7
+ * handles merging in dependency order when the pipeline completes.
8
+ */
9
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
+ import type { Logger } from "../../../observability/logger.js";
11
+ import { PipelineManager } from "../../../tasks/pipeline-manager.js";
12
+ import type { WorktreeManager } from "../../../worktrees/manager.js";
13
+ /**
14
+ * Registers the execute_pipeline tool with the MCP server.
15
+ *
16
+ * @param server - MCP server instance
17
+ * @param pipelineManager - PipelineManager for validation and execution tracking
18
+ * @param logger - Logger instance for structured logging
19
+ * @param worktreeManager - Optional WorktreeManager for git worktree allocation
20
+ */
21
+ export declare function registerExecutePipelineTool(server: McpServer, pipelineManager: PipelineManager, logger: Logger, worktreeManager?: WorktreeManager): void;
22
+ //# sourceMappingURL=execute-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/execute-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAOrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA+SrE;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAmNN"}
@@ -0,0 +1,401 @@
1
+ /**
2
+ * execute_pipeline MCP Tool
3
+ *
4
+ * Creates multi-provider task pipelines with dependency resolution.
5
+ * Validates DAG structure and generates TaskCreate instructions for Claude.
6
+ * Automatically allocates isolated git worktrees for coding roles and
7
+ * handles merging in dependency order when the pipeline completes.
8
+ */
9
+ import { z } from "zod";
10
+ import { roleNeedsWorktree } from "../../../config/worktree-defaults.js";
11
+ import { injectWorktreeContext } from "../../../worktrees/instructions.js";
12
+ // ============================================================================
13
+ // Constants
14
+ // ============================================================================
15
+ /**
16
+ * Available agent roles for pipeline steps
17
+ */
18
+ const AGENT_ROLES = ["coder", "critic", "designer", "researcher", "reviewer"];
19
+ /**
20
+ * Tool description for execute_pipeline
21
+ */
22
+ const TOOL_DESCRIPTION = "Create a multi-provider task pipeline with dependency resolution. " +
23
+ "Validates the DAG structure (no cycles, valid dependencies) and generates " +
24
+ "TaskCreate instructions for Claude to execute. Steps can run in parallel " +
25
+ "when their dependencies are satisfied. " +
26
+ "For coder/developer roles, isolated git worktrees are automatically allocated. " +
27
+ "When all steps complete, worktrees are merged in dependency order.";
28
+ // ============================================================================
29
+ // Input Schema
30
+ // ============================================================================
31
+ /**
32
+ * Zod schema shape for execute_pipeline input validation.
33
+ * Uses raw shape format as expected by MCP SDK's registerTool.
34
+ */
35
+ const executePipelineInputSchemaShape = {
36
+ name: z.string().min(1).describe("Pipeline name for identification"),
37
+ steps: z
38
+ .array(z.object({
39
+ name: z.string().min(1).describe("Unique step identifier within the pipeline"),
40
+ subject: z.string().min(1).describe("Task subject line (imperative form)"),
41
+ description: z.string().optional().describe("Detailed task description"),
42
+ role: z.enum(AGENT_ROLES).describe("Agent role for this step"),
43
+ dependsOn: z
44
+ .array(z.string())
45
+ .optional()
46
+ .describe("Names of steps this step depends on"),
47
+ }))
48
+ .min(1)
49
+ .describe("Pipeline steps with dependencies"),
50
+ context: z
51
+ .string()
52
+ .optional()
53
+ .describe("Global context passed to all steps in the pipeline"),
54
+ parallel: z
55
+ .boolean()
56
+ .default(true)
57
+ .describe("Execute independent steps in parallel (default: true)"),
58
+ worktreeOptions: z
59
+ .object({
60
+ enabled: z
61
+ .boolean()
62
+ .default(true)
63
+ .describe("Enable worktree allocation for coding roles (default: true)"),
64
+ autoMerge: z
65
+ .boolean()
66
+ .default(true)
67
+ .describe("Automatically merge worktrees when pipeline completes (default: true)"),
68
+ targetBranch: z
69
+ .string()
70
+ .optional()
71
+ .describe("Target branch for merging (defaults to main)"),
72
+ })
73
+ .optional()
74
+ .describe("Worktree configuration for the pipeline"),
75
+ };
76
+ // ============================================================================
77
+ // Response Formatter
78
+ // ============================================================================
79
+ /**
80
+ * Computes execution phases for the pipeline based on dependencies.
81
+ * Steps in the same phase can run in parallel.
82
+ *
83
+ * @param steps - Pipeline steps with dependencies
84
+ * @returns Array of phases, each containing step names that can run in parallel
85
+ */
86
+ function computeExecutionPhases(steps) {
87
+ const phases = [];
88
+ const completed = new Set();
89
+ const remaining = new Set(steps.map((s) => s.name));
90
+ while (remaining.size > 0) {
91
+ const phase = [];
92
+ for (const step of steps) {
93
+ if (!remaining.has(step.name))
94
+ continue;
95
+ const depsComplete = step.dependsOn?.every((dep) => completed.has(dep)) ?? true;
96
+ if (depsComplete) {
97
+ phase.push(step.name);
98
+ }
99
+ }
100
+ if (phase.length === 0) {
101
+ // This shouldn't happen if validation passed, but handle gracefully
102
+ break;
103
+ }
104
+ for (const stepName of phase) {
105
+ remaining.delete(stepName);
106
+ completed.add(stepName);
107
+ }
108
+ phases.push(phase);
109
+ }
110
+ return phases;
111
+ }
112
+ /**
113
+ * Formats the execution plan showing phases and parallelism.
114
+ *
115
+ * @param definition - The pipeline definition
116
+ * @param phases - Computed execution phases
117
+ * @param parallel - Whether parallel execution is enabled
118
+ * @returns Formatted execution plan string
119
+ */
120
+ function formatExecutionPlan(definition, phases, parallel) {
121
+ const lines = [];
122
+ lines.push(`## Execution Plan: ${definition.name}`);
123
+ lines.push("");
124
+ lines.push(`**Mode**: ${parallel ? "Parallel" : "Sequential"}`);
125
+ lines.push(`**Total Steps**: ${definition.steps.length}`);
126
+ lines.push(`**Total Phases**: ${phases.length}`);
127
+ lines.push("");
128
+ for (let i = 0; i < phases.length; i++) {
129
+ const phase = phases[i] ?? [];
130
+ const parallelNote = parallel && phase.length > 1 ? ` (${phase.length} steps in parallel)` : "";
131
+ lines.push(`### Phase ${i + 1}${parallelNote}`);
132
+ for (const stepName of phase) {
133
+ const step = definition.steps.find((s) => s.name === stepName);
134
+ if (step) {
135
+ const deps = step.dependsOn?.length ? ` [depends on: ${step.dependsOn.join(", ")}]` : "";
136
+ lines.push(`- **${stepName}** (${step.role}): ${step.subject}${deps}`);
137
+ }
138
+ }
139
+ lines.push("");
140
+ }
141
+ return lines.join("\n");
142
+ }
143
+ /**
144
+ * Formats the complete pipeline response including plan, instructions, and guidance.
145
+ *
146
+ * @param definition - The pipeline definition
147
+ * @param pipelineId - The pipeline ID
148
+ * @param taskInstructions - Generated TaskCreate instructions
149
+ * @param phases - Computed execution phases
150
+ * @param parallel - Whether parallel execution is enabled
151
+ * @param worktreeAllocations - Optional worktree allocations for coding steps
152
+ * @param autoMerge - Whether auto-merge is enabled
153
+ * @returns Complete formatted response
154
+ */
155
+ function formatPipelineResponse(definition, pipelineId, taskInstructions, phases, parallel, worktreeAllocations, autoMerge) {
156
+ const lines = [];
157
+ // Execution plan
158
+ lines.push(formatExecutionPlan(definition, phases, parallel));
159
+ // Worktree allocations if any
160
+ if (worktreeAllocations && worktreeAllocations.length > 0) {
161
+ lines.push("---");
162
+ lines.push("");
163
+ lines.push("## Worktree Allocations");
164
+ lines.push("");
165
+ lines.push("The following coding steps have isolated git worktrees allocated:");
166
+ lines.push("");
167
+ for (const alloc of worktreeAllocations) {
168
+ lines.push(`### ${alloc.stepName}`);
169
+ lines.push(`- **Worktree ID**: \`${alloc.worktreeId}\``);
170
+ lines.push(`- **Path**: \`${alloc.path}\``);
171
+ lines.push(`- **Branch**: \`${alloc.branch}\``);
172
+ lines.push("");
173
+ }
174
+ if (autoMerge) {
175
+ lines.push("*Worktrees will be automatically merged in dependency order when all steps complete.*");
176
+ }
177
+ else {
178
+ lines.push("*Auto-merge disabled. Use `merge_pipeline_worktrees` to merge manually.*");
179
+ }
180
+ lines.push("");
181
+ }
182
+ // TaskCreate instructions
183
+ lines.push("---");
184
+ lines.push("");
185
+ lines.push("## TaskCreate Instructions");
186
+ lines.push("");
187
+ lines.push("Execute the following to create all pipeline tasks:");
188
+ lines.push("");
189
+ lines.push("```");
190
+ lines.push(taskInstructions);
191
+ lines.push("```");
192
+ lines.push("");
193
+ // Next steps guidance
194
+ lines.push("---");
195
+ lines.push("");
196
+ lines.push("## Next Steps");
197
+ lines.push("");
198
+ const readySteps = phases[0] ?? [];
199
+ if (parallel && readySteps.length > 1) {
200
+ lines.push(`1. Execute TaskCreate for all steps above to create the task items`);
201
+ lines.push(`2. Start Phase 1 steps in parallel: ${readySteps.join(", ")}`);
202
+ lines.push(`3. As each phase completes, its dependent steps become ready`);
203
+ }
204
+ else if (readySteps.length > 0) {
205
+ lines.push(`1. Execute TaskCreate for all steps above to create the task items`);
206
+ lines.push(`2. Start with the first step: **${readySteps[0]}**`);
207
+ lines.push(`3. Proceed through steps as dependencies are satisfied`);
208
+ }
209
+ else {
210
+ lines.push(`1. Execute TaskCreate for all steps above to create the task items`);
211
+ lines.push(`2. Proceed through steps as dependencies are satisfied`);
212
+ }
213
+ if (worktreeAllocations && worktreeAllocations.length > 0) {
214
+ lines.push(`4. When all steps complete, worktrees will be merged in dependency order`);
215
+ }
216
+ lines.push("");
217
+ lines.push(`**Pipeline ID**: \`${pipelineId}\``);
218
+ lines.push(`*Use this ID to track execution status and complete step results*`);
219
+ return lines.join("\n");
220
+ }
221
+ // ============================================================================
222
+ // Tool Registration
223
+ // ============================================================================
224
+ /**
225
+ * Registers the execute_pipeline tool with the MCP server.
226
+ *
227
+ * @param server - MCP server instance
228
+ * @param pipelineManager - PipelineManager for validation and execution tracking
229
+ * @param logger - Logger instance for structured logging
230
+ * @param worktreeManager - Optional WorktreeManager for git worktree allocation
231
+ */
232
+ export function registerExecutePipelineTool(server, pipelineManager, logger, worktreeManager) {
233
+ // Use type assertion to work around Zod version compatibility issues
234
+ // between zod 3.25+ and the MCP SDK's ZodRawShapeCompat type
235
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
236
+ const inputSchema = executePipelineInputSchemaShape;
237
+ server.registerTool("execute_pipeline", {
238
+ title: "Execute Pipeline",
239
+ description: TOOL_DESCRIPTION,
240
+ inputSchema,
241
+ },
242
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
243
+ async (args) => {
244
+ // Type-safe access with explicit casting after validation
245
+ const { name, steps, context, parallel = true, worktreeOptions, } = args;
246
+ const worktreesEnabled = worktreeOptions?.enabled ?? true;
247
+ const autoMerge = worktreeOptions?.autoMerge ?? true;
248
+ // targetBranch will be used by PipelineMergeOrchestrator when triggered
249
+ const _targetBranch = worktreeOptions?.targetBranch ?? "main";
250
+ logger.info("execute_pipeline called", {
251
+ name,
252
+ stepCount: steps.length,
253
+ hasContext: context !== undefined,
254
+ parallel,
255
+ worktreesEnabled,
256
+ autoMerge,
257
+ targetBranch: _targetBranch,
258
+ });
259
+ try {
260
+ // Build the pipeline definition
261
+ // Use explicit property assignment to handle exactOptionalPropertyTypes
262
+ const pipelineSteps = steps.map((step) => {
263
+ const pipelineStep = {
264
+ name: step.name,
265
+ subject: step.subject,
266
+ role: step.role,
267
+ };
268
+ if (step.description !== undefined) {
269
+ pipelineStep.description = step.description;
270
+ }
271
+ if (step.dependsOn !== undefined) {
272
+ pipelineStep.dependsOn = step.dependsOn;
273
+ }
274
+ return pipelineStep;
275
+ });
276
+ const definition = {
277
+ name,
278
+ steps: pipelineSteps,
279
+ };
280
+ if (context !== undefined) {
281
+ definition.globalContext = context;
282
+ }
283
+ // Validate the definition (throws on error)
284
+ pipelineManager.validateDefinition(definition);
285
+ // Create the execution tracker
286
+ const execution = pipelineManager.createExecution(definition);
287
+ // Allocate worktrees for coding roles if enabled and manager available
288
+ const worktreeAllocations = [];
289
+ if (worktreesEnabled && worktreeManager) {
290
+ logger.info("Allocating worktrees for coding steps", {
291
+ pipelineId: execution.pipelineId,
292
+ });
293
+ for (const step of definition.steps) {
294
+ if (roleNeedsWorktree(step.role)) {
295
+ try {
296
+ // Create a unique step ID for the pipeline
297
+ const stepId = `${execution.pipelineId}-${step.name}`;
298
+ // Allocate worktree for this step
299
+ const allocationResult = await worktreeManager.allocate(stepId, `pipeline-${execution.pipelineId}`);
300
+ if (allocationResult.success && allocationResult.worktree) {
301
+ const worktree = allocationResult.worktree;
302
+ // Track allocation in PipelineManager
303
+ const stepAllocation = {
304
+ stepId: step.name,
305
+ worktreeId: worktree.id,
306
+ worktreePath: worktree.path,
307
+ branch: worktree.branch,
308
+ status: "allocated",
309
+ allocatedAt: Date.now(),
310
+ };
311
+ pipelineManager.allocateWorktreeForStep(step.name, stepAllocation);
312
+ // Inject worktree context into step description
313
+ if (allocationResult.instructions) {
314
+ const originalDesc = step.description ?? step.subject;
315
+ step.description = injectWorktreeContext(originalDesc, worktree, "compact");
316
+ }
317
+ worktreeAllocations.push({
318
+ stepName: step.name,
319
+ worktreeId: worktree.id,
320
+ path: worktree.path,
321
+ branch: worktree.branch,
322
+ });
323
+ logger.info("Worktree allocated for step", {
324
+ stepName: step.name,
325
+ worktreeId: worktree.id,
326
+ branch: worktree.branch,
327
+ });
328
+ }
329
+ else {
330
+ logger.warn("Failed to allocate worktree for step", {
331
+ stepName: step.name,
332
+ error: allocationResult.error,
333
+ });
334
+ }
335
+ }
336
+ catch (err) {
337
+ const errMsg = err instanceof Error ? err.message : String(err);
338
+ logger.warn("Error allocating worktree for step", {
339
+ stepName: step.name,
340
+ error: errMsg,
341
+ });
342
+ }
343
+ }
344
+ }
345
+ }
346
+ else if (worktreesEnabled && !worktreeManager) {
347
+ logger.debug("Worktrees enabled but WorktreeManager not available");
348
+ }
349
+ // Generate TaskCreate instructions (after worktree context injection)
350
+ const taskInstructions = pipelineManager.generatePipelineCreation(definition);
351
+ // Compute execution phases for the plan
352
+ const phases = computeExecutionPhases(definition.steps);
353
+ logger.info("execute_pipeline completed", {
354
+ name,
355
+ pipelineId: execution.pipelineId,
356
+ stepCount: steps.length,
357
+ phaseCount: phases.length,
358
+ worktreeCount: worktreeAllocations.length,
359
+ });
360
+ return {
361
+ content: [
362
+ {
363
+ type: "text",
364
+ text: formatPipelineResponse(definition, execution.pipelineId, taskInstructions, phases, parallel, worktreeAllocations.length > 0 ? worktreeAllocations : undefined, autoMerge),
365
+ },
366
+ ],
367
+ };
368
+ }
369
+ catch (error) {
370
+ const errorMessage = error instanceof Error ? error.message : String(error);
371
+ if (error instanceof Error) {
372
+ logger.error("execute_pipeline failed", {
373
+ name,
374
+ error,
375
+ errorMessage,
376
+ });
377
+ }
378
+ else {
379
+ logger.error("execute_pipeline failed", {
380
+ name,
381
+ errorMessage,
382
+ });
383
+ }
384
+ // Return error as text content for MCP compatibility
385
+ return {
386
+ content: [
387
+ {
388
+ type: "text",
389
+ text: `## Error Creating Pipeline\n\n**Pipeline**: ${name}\n**Error**: ${errorMessage}\n\n` +
390
+ `Common issues:\n` +
391
+ `- Duplicate step names\n` +
392
+ `- Missing dependency (step depends on non-existent step)\n` +
393
+ `- Circular dependencies`,
394
+ },
395
+ ],
396
+ };
397
+ }
398
+ });
399
+ logger.debug("Registered execute_pipeline tool", { roles: AGENT_ROLES });
400
+ }
401
+ //# sourceMappingURL=execute-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-pipeline.js","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/execute-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * execute_task MCP Tool
3
+ *
4
+ * Executes a Claude Code task using AgentRouter.
5
+ * Coordinates with TaskCoordinator for lifecycle management.
6
+ * Automatically allocates isolated git worktrees for coder/developer roles.
7
+ */
8
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
+ import type { Logger } from "../../../observability/logger.js";
10
+ import type { RouterEngine } from "../../../router/engine.js";
11
+ import type { TaskCoordinator } from "../../../tasks/coordinator.js";
12
+ import type { WorktreeManager } from "../../../worktrees/manager.js";
13
+ /**
14
+ * Registers the execute_task tool with the MCP server
15
+ *
16
+ * @param server - MCP server instance
17
+ * @param router - RouterEngine for agent invocation
18
+ * @param coordinator - TaskCoordinator for task lifecycle management
19
+ * @param logger - Logger instance for structured logging
20
+ * @param worktreeManager - Optional WorktreeManager for git worktree allocation
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const server = new McpServer({ name: 'agent-router', version: '3.0.0' });
25
+ * const router = new RouterEngine(config, providers, logger);
26
+ * const coordinator = new TaskCoordinator(logger);
27
+ * const worktreeManager = new WorktreeManager(repoPath, worktreeConfig);
28
+ * registerExecuteTaskTool(server, router, coordinator, logger, worktreeManager);
29
+ * ```
30
+ */
31
+ export declare function registerExecuteTaskTool(server: McpServer, router: RouterEngine, coordinator: TaskCoordinator, logger: Logger, worktreeManager?: WorktreeManager): void;
32
+ //# sourceMappingURL=execute-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-task.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/execute-task.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,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;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAiKrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAgMN"}