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,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cleanup Worktrees MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Cleans up worktrees by status (stale, completing) or force removes specific ones.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Tool description for cleanup_worktrees
|
|
12
|
+
*/
|
|
13
|
+
const TOOL_DESCRIPTION = "Clean up worktrees by status (stale, completing) or force remove specific ones. " +
|
|
14
|
+
"Modes: 'stale' (idle beyond threshold), 'completing' (finished tasks), 'force' (specific IDs).";
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Input Schema
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Zod schema shape for cleanup_worktrees input validation.
|
|
20
|
+
*/
|
|
21
|
+
const cleanupWorktreesInputSchemaShape = {
|
|
22
|
+
mode: z
|
|
23
|
+
.enum(["stale", "completing", "force"])
|
|
24
|
+
.describe("Cleanup mode: 'stale' (idle >24h), 'completing' (finished tasks), 'force' (specific IDs)"),
|
|
25
|
+
worktreeIds: z
|
|
26
|
+
.array(z.string())
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Required for 'force' mode: specific worktree IDs to remove"),
|
|
29
|
+
maxIdleHours: z
|
|
30
|
+
.number()
|
|
31
|
+
.optional()
|
|
32
|
+
.default(24)
|
|
33
|
+
.describe("For 'stale' mode: max idle time in hours"),
|
|
34
|
+
};
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Tool Registration
|
|
37
|
+
// ============================================================================
|
|
38
|
+
/**
|
|
39
|
+
* Register the cleanup_worktrees MCP tool.
|
|
40
|
+
*
|
|
41
|
+
* @param server - MCP server instance
|
|
42
|
+
* @param logger - Logger instance for structured logging
|
|
43
|
+
* @param resourceManager - Optional ResourceManager for worktree cleanup operations
|
|
44
|
+
*/
|
|
45
|
+
export function registerCleanupWorktreesTool(server, logger, resourceManager) {
|
|
46
|
+
// Use type assertion to work around Zod version compatibility issues
|
|
47
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
48
|
+
const inputSchema = cleanupWorktreesInputSchemaShape;
|
|
49
|
+
server.registerTool("cleanup_worktrees", {
|
|
50
|
+
title: "Cleanup Worktrees",
|
|
51
|
+
description: TOOL_DESCRIPTION,
|
|
52
|
+
inputSchema,
|
|
53
|
+
},
|
|
54
|
+
/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
55
|
+
async (args) => {
|
|
56
|
+
const input = args;
|
|
57
|
+
const { mode, worktreeIds, maxIdleHours } = input;
|
|
58
|
+
logger.info("cleanup_worktrees called", { mode });
|
|
59
|
+
if (!resourceManager) {
|
|
60
|
+
return {
|
|
61
|
+
content: [
|
|
62
|
+
{
|
|
63
|
+
type: "text",
|
|
64
|
+
text: "## Error\n\nWorktree management not enabled.",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
let cleaned = [];
|
|
71
|
+
let failed = [];
|
|
72
|
+
switch (mode) {
|
|
73
|
+
case "stale": {
|
|
74
|
+
const maxIdleMs = maxIdleHours * 60 * 60 * 1000;
|
|
75
|
+
cleaned = await resourceManager.cleanupStale(maxIdleMs);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case "completing": {
|
|
79
|
+
cleaned = await resourceManager.cleanupByStatus("completing");
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "force": {
|
|
83
|
+
if (!worktreeIds || worktreeIds.length === 0) {
|
|
84
|
+
return {
|
|
85
|
+
content: [
|
|
86
|
+
{
|
|
87
|
+
type: "text",
|
|
88
|
+
text: "## Error\n\n'force' mode requires worktreeIds parameter.",
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const result = await resourceManager.forceCleanup(worktreeIds);
|
|
94
|
+
cleaned = result.cleaned;
|
|
95
|
+
failed = result.failed;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Format output
|
|
100
|
+
const lines = [];
|
|
101
|
+
if (cleaned.length > 0) {
|
|
102
|
+
lines.push(`## Cleanup Complete\n`);
|
|
103
|
+
lines.push(`**Removed:** ${String(cleaned.length)} worktrees\n`);
|
|
104
|
+
for (const id of cleaned) {
|
|
105
|
+
lines.push(`- ${id}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
lines.push(`## No Worktrees Cleaned\n`);
|
|
110
|
+
lines.push("No worktrees matched the cleanup criteria.");
|
|
111
|
+
}
|
|
112
|
+
if (failed.length > 0) {
|
|
113
|
+
lines.push(`\n### Failed to Remove\n`);
|
|
114
|
+
for (const id of failed) {
|
|
115
|
+
lines.push(`- ${id}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Show current usage
|
|
119
|
+
const usage = await resourceManager.getCurrentUsage();
|
|
120
|
+
lines.push(`\n### Current Usage`);
|
|
121
|
+
lines.push(`- **Worktrees:** ${String(usage.currentWorktrees)}`);
|
|
122
|
+
lines.push(`- **Disk:** ${String(usage.diskUsageMB)} MB`);
|
|
123
|
+
logger.info("cleanup_worktrees completed", {
|
|
124
|
+
mode,
|
|
125
|
+
cleaned: cleaned.length,
|
|
126
|
+
failed: failed.length,
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
134
|
+
logger.error("cleanup_worktrees failed", { error: error instanceof Error ? error : undefined });
|
|
135
|
+
return {
|
|
136
|
+
content: [
|
|
137
|
+
{
|
|
138
|
+
type: "text",
|
|
139
|
+
text: `## Error\n\n${errorMessage}`,
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
logger.debug("Registered cleanup_worktrees tool");
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=cleanup-worktrees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-worktrees.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/cleanup-worktrees.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get Worktree Status MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Gets detailed status of a specific worktree including path, branch, disk usage, and age.
|
|
5
|
+
*/
|
|
6
|
+
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import type { Logger } from "../../../observability/logger.js";
|
|
8
|
+
import type { ResourceManager } from "../../../worktrees/resource-manager.js";
|
|
9
|
+
/**
|
|
10
|
+
* Register the get_worktree_status MCP tool.
|
|
11
|
+
*
|
|
12
|
+
* @param server - MCP server instance
|
|
13
|
+
* @param logger - Logger instance for structured logging
|
|
14
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerGetWorktreeStatusTool(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
|
|
17
|
+
//# sourceMappingURL=get-worktree-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-worktree-status.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/get-worktree-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAoD9E;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAqFN"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get Worktree Status MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Gets detailed status of a specific worktree including path, branch, disk usage, and age.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Tool description for get_worktree_status
|
|
12
|
+
*/
|
|
13
|
+
const TOOL_DESCRIPTION = "Get detailed status of a specific worktree including path, branch, disk usage, and age.";
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Input Schema
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Zod schema shape for get_worktree_status input validation.
|
|
19
|
+
*/
|
|
20
|
+
const getWorktreeStatusInputSchemaShape = {
|
|
21
|
+
worktreeId: z.string().min(1).describe("The worktree ID to get status for"),
|
|
22
|
+
};
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Helper Functions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/**
|
|
27
|
+
* Format duration in human-readable form.
|
|
28
|
+
*/
|
|
29
|
+
function formatDuration(ms) {
|
|
30
|
+
const hours = Math.floor(ms / (1000 * 60 * 60));
|
|
31
|
+
const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));
|
|
32
|
+
if (hours > 24) {
|
|
33
|
+
const days = Math.floor(hours / 24);
|
|
34
|
+
return `${String(days)}d ${String(hours % 24)}h`;
|
|
35
|
+
}
|
|
36
|
+
if (hours > 0)
|
|
37
|
+
return `${String(hours)}h ${String(minutes)}m`;
|
|
38
|
+
return `${String(minutes)}m`;
|
|
39
|
+
}
|
|
40
|
+
// ============================================================================
|
|
41
|
+
// Tool Registration
|
|
42
|
+
// ============================================================================
|
|
43
|
+
/**
|
|
44
|
+
* Register the get_worktree_status MCP tool.
|
|
45
|
+
*
|
|
46
|
+
* @param server - MCP server instance
|
|
47
|
+
* @param logger - Logger instance for structured logging
|
|
48
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics
|
|
49
|
+
*/
|
|
50
|
+
export function registerGetWorktreeStatusTool(server, logger, resourceManager) {
|
|
51
|
+
// Use type assertion to work around Zod version compatibility issues
|
|
52
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
53
|
+
const inputSchema = getWorktreeStatusInputSchemaShape;
|
|
54
|
+
server.registerTool("get_worktree_status", {
|
|
55
|
+
title: "Get Worktree Status",
|
|
56
|
+
description: TOOL_DESCRIPTION,
|
|
57
|
+
inputSchema,
|
|
58
|
+
},
|
|
59
|
+
/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
60
|
+
async (args) => {
|
|
61
|
+
const input = args;
|
|
62
|
+
const { worktreeId } = input;
|
|
63
|
+
logger.info("get_worktree_status called", { worktreeId });
|
|
64
|
+
if (!resourceManager) {
|
|
65
|
+
return {
|
|
66
|
+
content: [
|
|
67
|
+
{
|
|
68
|
+
type: "text",
|
|
69
|
+
text: "## Error\n\nWorktree management not enabled.",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const metrics = await resourceManager.getWorktreeMetrics(worktreeId);
|
|
76
|
+
if (!metrics) {
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: "text",
|
|
81
|
+
text: `## Not Found\n\nWorktree '${worktreeId}' not found.`,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const now = Date.now();
|
|
87
|
+
const age = formatDuration(now - metrics.createdAt);
|
|
88
|
+
const lastActivity = formatDuration(now - metrics.lastActivityAt);
|
|
89
|
+
const lines = [];
|
|
90
|
+
lines.push(`## Worktree: ${metrics.id}\n`);
|
|
91
|
+
lines.push(`| Property | Value |`);
|
|
92
|
+
lines.push(`|:---------|:------|`);
|
|
93
|
+
lines.push(`| **Status** | ${metrics.status} |`);
|
|
94
|
+
lines.push(`| **Path** | \`${metrics.path}\` |`);
|
|
95
|
+
lines.push(`| **Branch** | ${metrics.branch} |`);
|
|
96
|
+
lines.push(`| **Task ID** | ${metrics.taskId ?? "-"} |`);
|
|
97
|
+
lines.push(`| **Disk Usage** | ${String(metrics.diskUsageMB ?? 0)} MB |`);
|
|
98
|
+
lines.push(`| **Age** | ${age} |`);
|
|
99
|
+
lines.push(`| **Last Activity** | ${lastActivity} ago |`);
|
|
100
|
+
logger.info("get_worktree_status completed", {
|
|
101
|
+
worktreeId,
|
|
102
|
+
status: metrics.status,
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
110
|
+
logger.error("get_worktree_status failed", { error: error instanceof Error ? error : undefined });
|
|
111
|
+
return {
|
|
112
|
+
content: [
|
|
113
|
+
{
|
|
114
|
+
type: "text",
|
|
115
|
+
text: `## Error\n\n${errorMessage}`,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
logger.debug("Registered get_worktree_status tool");
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=get-worktree-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-worktree-status.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/get-worktree-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worktree Tools Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all worktree-related MCP tool registration functions.
|
|
5
|
+
* These tools enable conflict resolution and worktree management.
|
|
6
|
+
*/
|
|
7
|
+
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
|
+
import type { Logger } from "../../../observability/logger.js";
|
|
9
|
+
import type { StateCoordinator } from "../../../tasks/state-coordinator.js";
|
|
10
|
+
import type { ResourceManager } from "../../../worktrees/resource-manager.js";
|
|
11
|
+
import type { WorktreeManager } from "../../../worktrees/manager.js";
|
|
12
|
+
/**
|
|
13
|
+
* Registers all worktree-related tools with the MCP server.
|
|
14
|
+
*
|
|
15
|
+
* Tools registered:
|
|
16
|
+
* - resolve_conflicts: Resolve git merge conflicts using various strategies
|
|
17
|
+
*
|
|
18
|
+
* @param server - The MCP server instance
|
|
19
|
+
* @param logger - Logger for tool operations
|
|
20
|
+
* @param worktreeManager - WorktreeManager for git worktree operations
|
|
21
|
+
* @param stateCoordinator - Optional StateCoordinator for conflict state tracking
|
|
22
|
+
*/
|
|
23
|
+
export declare function registerWorktreeTools(server: McpServer, logger: Logger, worktreeManager?: WorktreeManager, stateCoordinator?: StateCoordinator): void;
|
|
24
|
+
/**
|
|
25
|
+
* Registers worktree management tools with the MCP server.
|
|
26
|
+
*
|
|
27
|
+
* Tools registered:
|
|
28
|
+
* - list_worktrees: List all worktrees with status, task associations, and resource usage
|
|
29
|
+
* - cleanup_worktrees: Clean up worktrees by status or force remove specific ones
|
|
30
|
+
* - get_worktree_status: Get detailed status of a specific worktree
|
|
31
|
+
*
|
|
32
|
+
* @param server - The MCP server instance
|
|
33
|
+
* @param logger - Logger for tool operations
|
|
34
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics and cleanup
|
|
35
|
+
*/
|
|
36
|
+
export declare function registerWorktreeManagementTools(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
|
|
37
|
+
export { registerResolveConflictsTool } from "./resolve-conflicts.js";
|
|
38
|
+
export { registerListWorktreesTool } from "./list-worktrees.js";
|
|
39
|
+
export { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
|
|
40
|
+
export { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWrE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,EACjC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAYN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAiBN;AAMD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worktree Tools Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all worktree-related MCP tool registration functions.
|
|
5
|
+
* These tools enable conflict resolution and worktree management.
|
|
6
|
+
*/
|
|
7
|
+
import { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
|
|
8
|
+
import { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
|
|
9
|
+
import { registerListWorktreesTool } from "./list-worktrees.js";
|
|
10
|
+
import { registerResolveConflictsTool } from "./resolve-conflicts.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Convenience Registration
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Registers all worktree-related tools with the MCP server.
|
|
16
|
+
*
|
|
17
|
+
* Tools registered:
|
|
18
|
+
* - resolve_conflicts: Resolve git merge conflicts using various strategies
|
|
19
|
+
*
|
|
20
|
+
* @param server - The MCP server instance
|
|
21
|
+
* @param logger - Logger for tool operations
|
|
22
|
+
* @param worktreeManager - WorktreeManager for git worktree operations
|
|
23
|
+
* @param stateCoordinator - Optional StateCoordinator for conflict state tracking
|
|
24
|
+
*/
|
|
25
|
+
export function registerWorktreeTools(server, logger, worktreeManager, stateCoordinator) {
|
|
26
|
+
logger.info("Registering worktree tools", {
|
|
27
|
+
worktreeSupport: !!worktreeManager,
|
|
28
|
+
stateCoordinatorAvailable: !!stateCoordinator,
|
|
29
|
+
});
|
|
30
|
+
// Register resolve_conflicts tool
|
|
31
|
+
registerResolveConflictsTool(server, logger, worktreeManager, stateCoordinator);
|
|
32
|
+
logger.info("Worktree tools registered successfully", {
|
|
33
|
+
tools: ["resolve_conflicts"],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Registers worktree management tools with the MCP server.
|
|
38
|
+
*
|
|
39
|
+
* Tools registered:
|
|
40
|
+
* - list_worktrees: List all worktrees with status, task associations, and resource usage
|
|
41
|
+
* - cleanup_worktrees: Clean up worktrees by status or force remove specific ones
|
|
42
|
+
* - get_worktree_status: Get detailed status of a specific worktree
|
|
43
|
+
*
|
|
44
|
+
* @param server - The MCP server instance
|
|
45
|
+
* @param logger - Logger for tool operations
|
|
46
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics and cleanup
|
|
47
|
+
*/
|
|
48
|
+
export function registerWorktreeManagementTools(server, logger, resourceManager) {
|
|
49
|
+
logger.info("Registering worktree management tools", {
|
|
50
|
+
resourceManagerAvailable: !!resourceManager,
|
|
51
|
+
});
|
|
52
|
+
// Register list_worktrees tool
|
|
53
|
+
registerListWorktreesTool(server, logger, resourceManager);
|
|
54
|
+
// Register cleanup_worktrees tool
|
|
55
|
+
registerCleanupWorktreesTool(server, logger, resourceManager);
|
|
56
|
+
// Register get_worktree_status tool
|
|
57
|
+
registerGetWorktreeStatusTool(server, logger, resourceManager);
|
|
58
|
+
logger.info("Worktree management tools registered successfully", {
|
|
59
|
+
tools: ["list_worktrees", "cleanup_worktrees", "get_worktree_status"],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Exports
|
|
64
|
+
// ============================================================================
|
|
65
|
+
export { registerResolveConflictsTool } from "./resolve-conflicts.js";
|
|
66
|
+
export { registerListWorktreesTool } from "./list-worktrees.js";
|
|
67
|
+
export { registerCleanupWorktreesTool } from "./cleanup-worktrees.js";
|
|
68
|
+
export { registerGetWorktreeStatusTool } from "./get-worktree-status.js";
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAc,EACd,eAAiC,EACjC,gBAAmC;IAEnC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;QACxC,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,yBAAyB,EAAE,CAAC,CAAC,gBAAgB;KAC9C,CAAC,CAAC;IAEH,kCAAkC;IAClC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAEhF,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;QACpD,KAAK,EAAE,CAAC,mBAAmB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAiB,EACjB,MAAc,EACd,eAAiC;IAEjC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;QACnD,wBAAwB,EAAE,CAAC,CAAC,eAAe;KAC5C,CAAC,CAAC;IAEH,+BAA+B;IAC/B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE3D,kCAAkC;IAClC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9D,oCAAoC;IACpC,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE/D,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAC/D,KAAK,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List Worktrees MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Lists all worktrees with their status, task associations, and resource usage.
|
|
5
|
+
*/
|
|
6
|
+
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import type { Logger } from "../../../observability/logger.js";
|
|
8
|
+
import type { ResourceManager } from "../../../worktrees/resource-manager.js";
|
|
9
|
+
/**
|
|
10
|
+
* Register the list_worktrees MCP tool.
|
|
11
|
+
*
|
|
12
|
+
* @param server - MCP server instance
|
|
13
|
+
* @param logger - Logger instance for structured logging
|
|
14
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerListWorktreesTool(server: McpServer, logger: Logger, resourceManager?: ResourceManager): void;
|
|
17
|
+
//# sourceMappingURL=list-worktrees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-worktrees.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/list-worktrees.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AA4D9E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CA8FN"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List Worktrees MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Lists all worktrees with their status, task associations, and resource usage.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Tool description for list_worktrees
|
|
12
|
+
*/
|
|
13
|
+
const TOOL_DESCRIPTION = "List all worktrees with their status, task associations, and resource usage. " +
|
|
14
|
+
"Filter by status ('available', 'assigned', 'active', 'completing', 'conflict', 'stale', 'all') " +
|
|
15
|
+
"or by task ID.";
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Input Schema
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Zod schema shape for list_worktrees input validation.
|
|
21
|
+
*/
|
|
22
|
+
const listWorktreesInputSchemaShape = {
|
|
23
|
+
status: z
|
|
24
|
+
.enum(["available", "assigned", "active", "completing", "conflict", "stale", "all"])
|
|
25
|
+
.optional()
|
|
26
|
+
.default("all")
|
|
27
|
+
.describe("Filter by worktree status"),
|
|
28
|
+
taskId: z.string().optional().describe("Filter by task ID"),
|
|
29
|
+
};
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Helper Functions
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* Format age in human-readable form.
|
|
35
|
+
*/
|
|
36
|
+
function formatAge(ms) {
|
|
37
|
+
const hours = Math.floor(ms / (1000 * 60 * 60));
|
|
38
|
+
const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));
|
|
39
|
+
if (hours > 24) {
|
|
40
|
+
const days = Math.floor(hours / 24);
|
|
41
|
+
return `${String(days)}d ${String(hours % 24)}h`;
|
|
42
|
+
}
|
|
43
|
+
if (hours > 0)
|
|
44
|
+
return `${String(hours)}h ${String(minutes)}m`;
|
|
45
|
+
return `${String(minutes)}m`;
|
|
46
|
+
}
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Tool Registration
|
|
49
|
+
// ============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Register the list_worktrees MCP tool.
|
|
52
|
+
*
|
|
53
|
+
* @param server - MCP server instance
|
|
54
|
+
* @param logger - Logger instance for structured logging
|
|
55
|
+
* @param resourceManager - Optional ResourceManager for worktree metrics
|
|
56
|
+
*/
|
|
57
|
+
export function registerListWorktreesTool(server, logger, resourceManager) {
|
|
58
|
+
// Use type assertion to work around Zod version compatibility issues
|
|
59
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
60
|
+
const inputSchema = listWorktreesInputSchemaShape;
|
|
61
|
+
server.registerTool("list_worktrees", {
|
|
62
|
+
title: "List Worktrees",
|
|
63
|
+
description: TOOL_DESCRIPTION,
|
|
64
|
+
inputSchema,
|
|
65
|
+
},
|
|
66
|
+
/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
|
|
67
|
+
async (args) => {
|
|
68
|
+
const input = args;
|
|
69
|
+
const { status, taskId } = input;
|
|
70
|
+
logger.info("list_worktrees called", { status, taskId });
|
|
71
|
+
if (!resourceManager) {
|
|
72
|
+
return {
|
|
73
|
+
content: [
|
|
74
|
+
{
|
|
75
|
+
type: "text",
|
|
76
|
+
text: "## Error\n\nWorktree management not enabled.",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const metrics = await resourceManager.getAllWorktreeMetrics();
|
|
83
|
+
let filtered = metrics;
|
|
84
|
+
// Apply filters
|
|
85
|
+
if (status && status !== "all") {
|
|
86
|
+
filtered = filtered.filter((m) => m.status === status);
|
|
87
|
+
}
|
|
88
|
+
if (taskId) {
|
|
89
|
+
filtered = filtered.filter((m) => m.taskId === taskId);
|
|
90
|
+
}
|
|
91
|
+
// Format output
|
|
92
|
+
const lines = [];
|
|
93
|
+
lines.push("## Worktrees\n");
|
|
94
|
+
if (filtered.length === 0) {
|
|
95
|
+
lines.push("No worktrees found matching criteria.\n");
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
lines.push("| ID | Status | Task | Branch | Disk (MB) | Age |");
|
|
99
|
+
lines.push("|:---|:-------|:-----|:-------|----------:|:----|");
|
|
100
|
+
const now = Date.now();
|
|
101
|
+
for (const m of filtered) {
|
|
102
|
+
const age = formatAge(now - m.createdAt);
|
|
103
|
+
const idShort = m.id.length > 12 ? `${m.id.slice(0, 12)}...` : m.id;
|
|
104
|
+
lines.push(`| ${idShort} | ${m.status} | ${m.taskId ?? "-"} | ${m.branch} | ${String(m.diskUsageMB ?? 0)} | ${age} |`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Add summary
|
|
108
|
+
const usage = await resourceManager.getCurrentUsage();
|
|
109
|
+
lines.push("\n### Summary");
|
|
110
|
+
lines.push(`- **Total:** ${String(usage.currentWorktrees)}`);
|
|
111
|
+
lines.push(`- **Available Slots:** ${String(usage.availableSlots)}`);
|
|
112
|
+
lines.push(`- **Disk Usage:** ${String(usage.diskUsageMB)} MB`);
|
|
113
|
+
logger.info("list_worktrees completed", {
|
|
114
|
+
total: metrics.length,
|
|
115
|
+
filtered: filtered.length,
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
123
|
+
logger.error("list_worktrees failed", { error: error instanceof Error ? error : undefined });
|
|
124
|
+
return {
|
|
125
|
+
content: [
|
|
126
|
+
{
|
|
127
|
+
type: "text",
|
|
128
|
+
text: `## Error\n\n${errorMessage}`,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
logger.debug("Registered list_worktrees tool");
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=list-worktrees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-worktrees.js","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/list-worktrees.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve Conflicts MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Allows users to resolve git merge conflicts in worktrees using various strategies.
|
|
5
|
+
*/
|
|
6
|
+
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import type { Logger } from "../../../observability/logger.js";
|
|
8
|
+
import type { StateCoordinator } from "../../../tasks/state-coordinator.js";
|
|
9
|
+
import type { WorktreeManager } from "../../../worktrees/manager.js";
|
|
10
|
+
/**
|
|
11
|
+
* Register the resolve_conflicts MCP tool.
|
|
12
|
+
*
|
|
13
|
+
* @param server - MCP server instance
|
|
14
|
+
* @param logger - Logger instance for structured logging
|
|
15
|
+
* @param worktreeManager - Optional WorktreeManager for git worktree operations
|
|
16
|
+
* @param stateCoordinator - Optional StateCoordinator for conflict state tracking
|
|
17
|
+
*/
|
|
18
|
+
export declare function registerResolveConflictsTool(server: McpServer, logger: Logger, worktreeManager?: WorktreeManager, stateCoordinator?: StateCoordinator): void;
|
|
19
|
+
//# sourceMappingURL=resolve-conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-conflicts.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/worktree/resolve-conflicts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAO5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAyKrE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,EACjC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwIN"}
|