import { execSync } from "node:child_process"; export function hasCommand(cmd: string): boolean { try { execSync(`which ${cmd}`, { stdio: "ignore" }); return true; } catch { return false; } } export function isUntrackedStatus(status?: string): boolean { return status === "?" || status === "??"; } export function isIgnoredStatus(status?: string): boolean { return status === "!" || status === "!!"; } export function isMarkdownPath(path: string): boolean { return path.toLowerCase().endsWith(".md"); } export function stripLeadingEmptyLines(lines: string[]): string[] { let startIdx = 0; while (startIdx < lines.length && !lines[startIdx].trim()) { startIdx++; } return lines.slice(startIdx); }