import type { Tool } from '@wrongstack/core/types'; export type GitSubcommand = 'status' | 'log' | 'diff' | 'commit' | 'branch' | 'checkout' | 'stash' | 'push' | 'pull' | 'fetch' | 'reset' | 'worktree'; export interface GitInput { command: GitSubcommand; files?: string | string[] | undefined; dry_run?: boolean | undefined; /** commit message for `commit` subcommand */ message?: string | undefined; /** branch name for `checkout` / `branch` */ branch?: string | undefined; /** pass --graph, --oneline, --stat for `log` */ format?: 'short' | 'oneline' | 'stat' | 'graph' | undefined; /** limit for `log` */ limit?: number | undefined; /** worktree action: list, add, remove, prune */ worktreeAction?: 'list' | 'add' | 'remove' | 'prune' | undefined; /** path for worktree add/remove (e.g. "../wt-feature-xyz") */ worktreePath?: string | undefined; /** create new branch when adding worktree */ newBranch?: boolean | undefined; /** force operation (e.g. worktree remove --force) */ force?: boolean | undefined; } export interface GitOutput { command: GitSubcommand; stdout: string; stderr: string; exitCode: number; truncated: boolean; /** Staged diff shown for commit commands so the caller can verify. */ diff?: string | undefined; /** * Shared-worktree warning for `commit`: present when uncommitted changes * were authored by another agent/session (or a concurrent non-wrongstack * process). The commit still proceeds — this is advisory so the caller can * reconsider committing work it did not write. */ warning?: string | undefined; } type GitContext = Parameters['execute']>[1]; export declare const gitTool: { name: string; category: string; description: string; usageHint: string; permission: "confirm"; icon: "git"; subjectKey: string; subjectFields: string[]; mutating: true; capabilities: string[]; timeoutMs: number; inputSchema: { type: string; properties: { command: { type: string; enum: string[]; description: string; }; files: { type: string; description: string; }; message: { type: string; description: string; }; branch: { type: string; description: string; }; format: { type: string; enum: string[]; description: string; }; limit: { type: string; description: string; }; dry_run: { type: string; description: string; }; worktreeAction: { type: string; enum: string[]; description: string; }; worktreePath: { type: string; description: string; }; newBranch: { type: string; description: string; }; force: { type: string; description: string; }; }; required: string[]; }; execute(input: GitInput, ctx: GitContext, opts?: { signal: AbortSignal; }): Promise; }; export {}; //# sourceMappingURL=git.d.ts.map