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.
- package/LICENSE +21 -0
- package/README.md +477 -0
- package/dist/cli/install-skills.d.ts +11 -0
- package/dist/cli/install-skills.d.ts.map +1 -0
- package/dist/cli/install-skills.js +143 -0
- package/dist/cli/install-skills.js.map +1 -0
- package/dist/cli/recovery-commands.d.ts +41 -0
- package/dist/cli/recovery-commands.d.ts.map +1 -0
- package/dist/cli/recovery-commands.js +241 -0
- package/dist/cli/recovery-commands.js.map +1 -0
- package/dist/cli/setup-wizard.d.ts +25 -0
- package/dist/cli/setup-wizard.d.ts.map +1 -0
- package/dist/cli/setup-wizard.js +1417 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/test-connection.d.ts +45 -0
- package/dist/cli/test-connection.d.ts.map +1 -0
- package/dist/cli/test-connection.js +317 -0
- package/dist/cli/test-connection.js.map +1 -0
- package/dist/cli.d.ts +75 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +704 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +57 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +99 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +14 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +22 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +184 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +347 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/merger.d.ts +76 -0
- package/dist/config/merger.d.ts.map +1 -0
- package/dist/config/merger.js +189 -0
- package/dist/config/merger.js.map +1 -0
- package/dist/config/schema.d.ts +20 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +20 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +254 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +363 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/config/worktree-defaults.d.ts +23 -0
- package/dist/config/worktree-defaults.d.ts.map +1 -0
- package/dist/config/worktree-defaults.js +78 -0
- package/dist/config/worktree-defaults.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/tools/compare-agents.d.ts +25 -0
- package/dist/mcp/tools/compare-agents.d.ts.map +1 -0
- package/dist/mcp/tools/compare-agents.js +177 -0
- package/dist/mcp/tools/compare-agents.js.map +1 -0
- package/dist/mcp/tools/critique-plan.d.ts +26 -0
- package/dist/mcp/tools/critique-plan.d.ts.map +1 -0
- package/dist/mcp/tools/critique-plan.js +162 -0
- package/dist/mcp/tools/critique-plan.js.map +1 -0
- package/dist/mcp/tools/design-feedback.d.ts +26 -0
- package/dist/mcp/tools/design-feedback.d.ts.map +1 -0
- package/dist/mcp/tools/design-feedback.js +216 -0
- package/dist/mcp/tools/design-feedback.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +50 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +191 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/invoke-agent.d.ts +25 -0
- package/dist/mcp/tools/invoke-agent.d.ts.map +1 -0
- package/dist/mcp/tools/invoke-agent.js +141 -0
- package/dist/mcp/tools/invoke-agent.js.map +1 -0
- package/dist/mcp/tools/review-code.d.ts +25 -0
- package/dist/mcp/tools/review-code.d.ts.map +1 -0
- package/dist/mcp/tools/review-code.js +170 -0
- package/dist/mcp/tools/review-code.js.map +1 -0
- package/dist/mcp/tools/tasks/claim-next-task.d.ts +22 -0
- package/dist/mcp/tools/tasks/claim-next-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/claim-next-task.js +203 -0
- package/dist/mcp/tools/tasks/claim-next-task.js.map +1 -0
- package/dist/mcp/tools/tasks/create-routed-task.d.ts +17 -0
- package/dist/mcp/tools/tasks/create-routed-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/create-routed-task.js +178 -0
- package/dist/mcp/tools/tasks/create-routed-task.js.map +1 -0
- package/dist/mcp/tools/tasks/execute-pipeline.d.ts +22 -0
- package/dist/mcp/tools/tasks/execute-pipeline.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/execute-pipeline.js +401 -0
- package/dist/mcp/tools/tasks/execute-pipeline.js.map +1 -0
- package/dist/mcp/tools/tasks/execute-task.d.ts +32 -0
- package/dist/mcp/tools/tasks/execute-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/execute-task.js +284 -0
- package/dist/mcp/tools/tasks/execute-task.js.map +1 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.d.ts +26 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.js +460 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.js.map +1 -0
- package/dist/mcp/tools/tasks/index.d.ts +36 -0
- package/dist/mcp/tools/tasks/index.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/index.js +66 -0
- package/dist/mcp/tools/tasks/index.js.map +1 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts +17 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.js +147 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.js.map +1 -0
- package/dist/mcp/tools/worktree/get-worktree-status.d.ts +17 -0
- package/dist/mcp/tools/worktree/get-worktree-status.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/get-worktree-status.js +123 -0
- package/dist/mcp/tools/worktree/get-worktree-status.js.map +1 -0
- package/dist/mcp/tools/worktree/index.d.ts +41 -0
- package/dist/mcp/tools/worktree/index.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/index.js +69 -0
- package/dist/mcp/tools/worktree/index.js.map +1 -0
- package/dist/mcp/tools/worktree/list-worktrees.d.ts +17 -0
- package/dist/mcp/tools/worktree/list-worktrees.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/list-worktrees.js +136 -0
- package/dist/mcp/tools/worktree/list-worktrees.js.map +1 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.d.ts +19 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.js +228 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.js.map +1 -0
- package/dist/mcp/transport/stdio.d.ts +13 -0
- package/dist/mcp/transport/stdio.d.ts.map +1 -0
- package/dist/mcp/transport/stdio.js +15 -0
- package/dist/mcp/transport/stdio.js.map +1 -0
- package/dist/observability/logger.d.ts +137 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +235 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +250 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +364 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/persistence/index.d.ts +9 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +9 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/state-schema.d.ts +116 -0
- package/dist/persistence/state-schema.d.ts.map +1 -0
- package/dist/persistence/state-schema.js +28 -0
- package/dist/persistence/state-schema.js.map +1 -0
- package/dist/persistence/state-store.d.ts +111 -0
- package/dist/persistence/state-store.d.ts.map +1 -0
- package/dist/persistence/state-store.js +291 -0
- package/dist/persistence/state-store.js.map +1 -0
- package/dist/providers/anthropic.d.ts +164 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +500 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +151 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +227 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/gemini.d.ts +85 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +414 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/kimi.d.ts +19 -0
- package/dist/providers/kimi.d.ts.map +1 -0
- package/dist/providers/kimi.js +20 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/manager.d.ts +160 -0
- package/dist/providers/manager.d.ts.map +1 -0
- package/dist/providers/manager.js +264 -0
- package/dist/providers/manager.js.map +1 -0
- package/dist/providers/ollama.d.ts +83 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +453 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +96 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +457 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/zai.d.ts +19 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +20 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/router/context-manager.d.ts +2 -0
- package/dist/router/context-manager.d.ts.map +1 -0
- package/dist/router/context-manager.js +3 -0
- package/dist/router/context-manager.js.map +1 -0
- package/dist/router/engine.d.ts +169 -0
- package/dist/router/engine.d.ts.map +1 -0
- package/dist/router/engine.js +435 -0
- package/dist/router/engine.js.map +1 -0
- package/dist/router/pattern-executor.d.ts +317 -0
- package/dist/router/pattern-executor.d.ts.map +1 -0
- package/dist/router/pattern-executor.js +571 -0
- package/dist/router/pattern-executor.js.map +1 -0
- package/dist/router/role-resolver.d.ts +59 -0
- package/dist/router/role-resolver.d.ts.map +1 -0
- package/dist/router/role-resolver.js +95 -0
- package/dist/router/role-resolver.js.map +1 -0
- package/dist/server.d.ts +32 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +223 -0
- package/dist/server.js.map +1 -0
- package/dist/startup.d.ts +78 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +107 -0
- package/dist/startup.js.map +1 -0
- package/dist/tasks/coordinator.d.ts +141 -0
- package/dist/tasks/coordinator.d.ts.map +1 -0
- package/dist/tasks/coordinator.js +331 -0
- package/dist/tasks/coordinator.js.map +1 -0
- package/dist/tasks/index.d.ts +13 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +13 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/persistent-state-coordinator.d.ts +89 -0
- package/dist/tasks/persistent-state-coordinator.d.ts.map +1 -0
- package/dist/tasks/persistent-state-coordinator.js +371 -0
- package/dist/tasks/persistent-state-coordinator.js.map +1 -0
- package/dist/tasks/pipeline-manager.d.ts +103 -0
- package/dist/tasks/pipeline-manager.d.ts.map +1 -0
- package/dist/tasks/pipeline-manager.js +358 -0
- package/dist/tasks/pipeline-manager.js.map +1 -0
- package/dist/tasks/state-coordinator.d.ts +79 -0
- package/dist/tasks/state-coordinator.d.ts.map +1 -0
- package/dist/tasks/state-coordinator.js +200 -0
- package/dist/tasks/state-coordinator.js.map +1 -0
- package/dist/tasks/worker-mode.d.ts +65 -0
- package/dist/tasks/worker-mode.d.ts.map +1 -0
- package/dist/tasks/worker-mode.js +208 -0
- package/dist/tasks/worker-mode.js.map +1 -0
- package/dist/translation/errors.d.ts +203 -0
- package/dist/translation/errors.d.ts.map +1 -0
- package/dist/translation/errors.js +477 -0
- package/dist/translation/errors.js.map +1 -0
- package/dist/translation/index.d.ts +12 -0
- package/dist/translation/index.d.ts.map +1 -0
- package/dist/translation/index.js +32 -0
- package/dist/translation/index.js.map +1 -0
- package/dist/translation/messages.d.ts +295 -0
- package/dist/translation/messages.d.ts.map +1 -0
- package/dist/translation/messages.js +557 -0
- package/dist/translation/messages.js.map +1 -0
- package/dist/translation/streaming.d.ts +226 -0
- package/dist/translation/streaming.d.ts.map +1 -0
- package/dist/translation/streaming.js +520 -0
- package/dist/translation/streaming.js.map +1 -0
- package/dist/translation/tools.d.ts +209 -0
- package/dist/translation/tools.d.ts.map +1 -0
- package/dist/translation/tools.js +331 -0
- package/dist/translation/tools.js.map +1 -0
- package/dist/types.d.ts +747 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +86 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +175 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +315 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +3 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/git.d.ts +58 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +197 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/merge-ordering.d.ts +45 -0
- package/dist/utils/merge-ordering.d.ts.map +1 -0
- package/dist/utils/merge-ordering.js +128 -0
- package/dist/utils/merge-ordering.js.map +1 -0
- package/dist/utils/retry.d.ts +106 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +188 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/worktrees/branch-manager.d.ts +55 -0
- package/dist/worktrees/branch-manager.d.ts.map +1 -0
- package/dist/worktrees/branch-manager.js +129 -0
- package/dist/worktrees/branch-manager.js.map +1 -0
- package/dist/worktrees/conflict-handler.d.ts +72 -0
- package/dist/worktrees/conflict-handler.d.ts.map +1 -0
- package/dist/worktrees/conflict-handler.js +287 -0
- package/dist/worktrees/conflict-handler.js.map +1 -0
- package/dist/worktrees/conflict-parser.d.ts +28 -0
- package/dist/worktrees/conflict-parser.d.ts.map +1 -0
- package/dist/worktrees/conflict-parser.js +140 -0
- package/dist/worktrees/conflict-parser.js.map +1 -0
- package/dist/worktrees/index.d.ts +20 -0
- package/dist/worktrees/index.d.ts.map +1 -0
- package/dist/worktrees/index.js +20 -0
- package/dist/worktrees/index.js.map +1 -0
- package/dist/worktrees/instructions.d.ts +20 -0
- package/dist/worktrees/instructions.d.ts.map +1 -0
- package/dist/worktrees/instructions.js +84 -0
- package/dist/worktrees/instructions.js.map +1 -0
- package/dist/worktrees/manager.d.ts +76 -0
- package/dist/worktrees/manager.d.ts.map +1 -0
- package/dist/worktrees/manager.js +277 -0
- package/dist/worktrees/manager.js.map +1 -0
- package/dist/worktrees/pipeline-merge-orchestrator.d.ts +55 -0
- package/dist/worktrees/pipeline-merge-orchestrator.d.ts.map +1 -0
- package/dist/worktrees/pipeline-merge-orchestrator.js +221 -0
- package/dist/worktrees/pipeline-merge-orchestrator.js.map +1 -0
- package/dist/worktrees/pool.d.ts +95 -0
- package/dist/worktrees/pool.d.ts.map +1 -0
- package/dist/worktrees/pool.js +271 -0
- package/dist/worktrees/pool.js.map +1 -0
- package/dist/worktrees/recovery.d.ts +94 -0
- package/dist/worktrees/recovery.d.ts.map +1 -0
- package/dist/worktrees/recovery.js +371 -0
- package/dist/worktrees/recovery.js.map +1 -0
- package/dist/worktrees/resource-manager.d.ts +74 -0
- package/dist/worktrees/resource-manager.d.ts.map +1 -0
- package/dist/worktrees/resource-manager.js +228 -0
- package/dist/worktrees/resource-manager.js.map +1 -0
- 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"}
|