fix(cli): make 'fix --ai' command provider-agnostic
This commit is contained in:
+29
-8
@@ -1687,15 +1687,22 @@ program.command('fix')
|
||||
Recommended Command: <command>
|
||||
`;
|
||||
|
||||
// Use the preferred provider to generate response
|
||||
// Use preferred provider or auto-resolve
|
||||
const provider = aiProvider.resolveProvider(opts.provider);
|
||||
if (provider === 'none') {
|
||||
Progress.stop('');
|
||||
console.log(color.yellow('No AI provider configured. Falling back to simple heuristics.'));
|
||||
// ... heuristic fallback ...
|
||||
let rec = '';
|
||||
if (ahead > 0 && behind === 0) rec = 'Push (g push)';
|
||||
else if (behind > 0 && ahead === 0) rec = 'Pull (g pull)';
|
||||
else rec = 'Rebase (g fix --rebase)';
|
||||
console.log(`Recommendation: ${rec}`);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await aiProvider.generateWithGemini(prompt, null, { temperature: 0.3 }); // Defaulting to using the generate methods available
|
||||
// Note: In a cleaner refactor, we would expose a generic 'generate' on AIProviderManager
|
||||
// For now, we assume Gemini or fallback logic is inside manager, but let's assume we can call generateText or similar
|
||||
// Wait, looking at previous file reads, AIProviderManager has 'generateWithGemini' etc but maybe not a generic 'generate'.
|
||||
// Let's use the 'generateCommitMessage's underlying logic or just call the provider directly if we can't genericize.
|
||||
// Actually, I should check if there is a 'ask' method.
|
||||
// ... (Self-correction: I'll use a safer approach below)
|
||||
const response = await aiProvider.generateWithProvider(provider, prompt, { temperature: 0.3 }); // Use generic provider method
|
||||
|
||||
Progress.stop('');
|
||||
console.log(`\n${color.bold('🤖 AI Analysis:')}`);
|
||||
@@ -1712,6 +1719,20 @@ program.command('fix')
|
||||
}
|
||||
return;
|
||||
}
|
||||
console.log(`\n${color.bold('🤖 AI Analysis:')}`);
|
||||
console.log(response.trim());
|
||||
} catch (e) {
|
||||
Progress.stop('');
|
||||
console.log(color.yellow('AI Analysis failed, falling back to heuristics.'));
|
||||
// ... heuristic fallback code ...
|
||||
let rec = '';
|
||||
if (ahead > 0 && behind === 0) rec = 'Push (g push)';
|
||||
else if (behind > 0 && ahead === 0) rec = 'Pull (g pull)';
|
||||
else rec = 'Rebase (g fix --rebase)';
|
||||
console.log(`Recommendation: ${rec}`);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Show interactive menu
|
||||
console.log(color.bold('🔧 Fix Options:\n'));
|
||||
|
||||
Reference in New Issue
Block a user