export function quoteCommandPart(value: string): string { return JSON.stringify(value); } export function splitCommandParts(value: string): string[] { const parts: string[] = []; let current = ""; let quote: "'" | '"' | null = null; let escaping = false; for (const ch of value) { if (escaping) { current += ch; escaping = false; continue; } if (ch === "\\" && quote !== "'") { escaping = true; continue; } if (quote) { if (ch === quote) { quote = null; } else { current += ch; } continue; } if (ch === "'" || ch === '"') { quote = ch; continue; } if (/\s/.test(ch)) { if (current) { parts.push(current); current = ""; } continue; } current += ch; } if (escaping) { current += "\\"; } if (current) { parts.push(current); } return parts; }