/** * Git-Worktree MCP Tool Handlers * * Exposes git-worktree management functionality as MCP tools for * Claude Code Agent coordination and parallel development workflows. * * Tools provided: * - create_agent_worktree: Create isolated worktree for an agent * - merge_agent_work: Merge completed agent work back to target branch * - cleanup_worktree: Clean up a specific worktree and its branch * - worktree_status: Get comprehensive status of all worktrees * - cleanup_all_merged: Bulk cleanup of all merged agent worktrees */ import type { WorktreeMetadata } from './git-helpers.js'; export interface CreateAgentWorktreeArgs { agentType: string; taskId: string; baseBranch?: string; } export interface MergeAgentWorkArgs { worktreeName: string; targetBranch?: string; mergeStrategy?: 'no-ff' | 'squash' | 'rebase'; autoCommit?: boolean; } export interface CleanupWorktreeArgs { worktreeName: string; force?: boolean; } export interface WorktreeStatusArgs { detailed?: boolean; format?: 'json' | 'text'; } export interface CleanupAllMergedArgs { targetBranch?: string; dryRun?: boolean; } export interface MCPToolResult { success: boolean; message: string; error?: string; data?: Record; } export interface CreateWorktreeResult extends MCPToolResult { data?: { worktreeName: string; worktreePath: string; branchName: string; agentType: string; taskId: string; baseBranch: string; created: string; }; } export interface MergeResult extends MCPToolResult { data?: { worktreeName: string; branchName: string; targetBranch: string; mergeStrategy: string; commitsmerged: number; conflicted?: boolean; conflictFiles?: string[]; }; } export interface CleanupResult extends MCPToolResult { data?: { worktreeName: string; branchName: string; wasMerged: boolean; forceCleanup: boolean; }; } export interface StatusResult extends MCPToolResult { data?: { repository: { root: string; currentBranch: string; hasUncommittedChanges: boolean; }; registry: { total: number; active: number; merged: number; cleaned: number; byAgent: Record; }; worktrees: Array<{ name: string; path: string; branch: string | null; isDetached: boolean; uncommittedChanges: number; isMerged: boolean; commitsAhead: number; metadata?: WorktreeMetadata; diskSize: string; }>; maintenance: { staleWorktrees: boolean; mergedBranchesToClean: number; gitRepoSize: string; }; }; } export interface CleanupAllResult extends MCPToolResult { data?: { dryRun: boolean; targetBranch: string; branchesFound: number; cleaned: number; failed: number; skipped: number; details: Array<{ worktreeName: string; branch: string; status: 'cleaned' | 'failed' | 'skipped'; reason?: string; }>; }; } export declare class GitWorktreeHandler { /** * Create a new isolated worktree for a Claude Code agent */ createAgentWorktree(args: CreateAgentWorktreeArgs): Promise; /** * Merge completed agent work back to target branch */ mergeAgentWork(args: MergeAgentWorkArgs): Promise; /** * Clean up a specific worktree and its associated branch */ cleanupWorktree(args: CleanupWorktreeArgs): Promise; /** * Get comprehensive status of all worktrees */ worktreeStatus(args: WorktreeStatusArgs): Promise; /** * Bulk cleanup of all merged agent worktrees */ cleanupAllMerged(args: CleanupAllMergedArgs): Promise; private formatError; private formatStatusAsText; } export declare const gitWorktreeToolDefinitions: ({ name: string; description: string; inputSchema: { type: string; properties: { agentType: { type: string; description: string; }; taskId: { type: string; description: string; }; baseBranch: { type: string; description: string; default: string; }; worktreeName?: undefined; targetBranch?: undefined; mergeStrategy?: undefined; autoCommit?: undefined; force?: undefined; detailed?: undefined; format?: undefined; dryRun?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { worktreeName: { type: string; description: string; }; targetBranch: { type: string; description: string; default: string; }; mergeStrategy: { type: string; enum: string[]; description: string; default: string; }; autoCommit: { type: string; description: string; default: boolean; }; agentType?: undefined; taskId?: undefined; baseBranch?: undefined; force?: undefined; detailed?: undefined; format?: undefined; dryRun?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { worktreeName: { type: string; description: string; }; force: { type: string; description: string; default: boolean; }; agentType?: undefined; taskId?: undefined; baseBranch?: undefined; targetBranch?: undefined; mergeStrategy?: undefined; autoCommit?: undefined; detailed?: undefined; format?: undefined; dryRun?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { detailed: { type: string; description: string; default: boolean; }; format: { type: string; enum: string[]; description: string; default: string; }; agentType?: undefined; taskId?: undefined; baseBranch?: undefined; worktreeName?: undefined; targetBranch?: undefined; mergeStrategy?: undefined; autoCommit?: undefined; force?: undefined; dryRun?: undefined; }; required: never[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { targetBranch: { type: string; description: string; default: string; }; dryRun: { type: string; description: string; default: boolean; }; agentType?: undefined; taskId?: undefined; baseBranch?: undefined; worktreeName?: undefined; mergeStrategy?: undefined; autoCommit?: undefined; force?: undefined; detailed?: undefined; format?: undefined; }; required: never[]; }; })[]; export declare const gitWorktreeHandler: GitWorktreeHandler; //# sourceMappingURL=git-worktree.d.ts.map