From 35528a84f8cecb605abb9ea81d4681e2aa2f36af Mon Sep 17 00:00:00 2001 From: Nivokvo Bounty Hunter Date: Tue, 28 Jul 2026 18:55:45 +0300 Subject: [PATCH] fix(ai): resolve engine aliases in pickAiEngine pickAiEngine() passed the raw preferred string directly to ENGINES lookup, so aliases like 'cc' for claude or 'openai' for codex were never resolved. Fixed by calling resolveEngine() first, matching all other CLI surfaces. --- src/engines.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engines.mjs b/src/engines.mjs index b42851c..7f43926 100644 --- a/src/engines.mjs +++ b/src/engines.mjs @@ -155,7 +155,8 @@ export function aiExecArgs(engine, prompt) { /** First installed engine that supports headless ai(), honoring a preference. */ export function pickAiEngine(preferred) { - const order = preferred ? [preferred] : ["claude", "codex", "opencode", "gemini", "aider"]; + const resolved = preferred ? resolveEngine(preferred)?.[0] : null; + const order = resolved ? [resolved] : ["claude", "codex", "opencode", "gemini", "aider"]; for (const key of order) { if (Object.hasOwn(ENGINES, key) && Object.hasOwn(AI_EXEC, key) && isInstalled(ENGINES[key].bin)) return key; }