capsule-ai-cli
Version:
The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing
46 lines • 1.79 kB
JavaScript
import { stateService } from '../../services/state.js';
import { configManager } from '../../core/config.js';
export const providerCommand = {
name: 'provider',
description: 'Switch AI provider',
alias: ['p'],
async execute() {
const config = configManager.getConfig();
const hasOpenRouterKey = !!config.providers.openrouter?.apiKey;
const availableProviders = await stateService.getAvailableProviders();
const currentProvider = stateService.getProvider();
const localProviders = ['local', 'ollama', 'lmstudio', 'llamacpp'];
const hasLocalProviders = availableProviders.some(p => localProviders.includes(p));
if (!hasOpenRouterKey && !hasLocalProviders) {
return {
success: true,
action: 'none',
data: {
type: 'openrouter-setup',
showSetupBox: true
}
};
}
if (availableProviders.length === 0) {
return {
success: false,
message: '⚠️ No providers available. Configure API keys with /keys or start a local model server'
};
}
const topProviders = ['local', 'ollama', 'lmstudio', 'openai', 'anthropic', 'google', 'xai'];
const sortedProviders = [
...topProviders.filter(p => availableProviders.includes(p)),
...availableProviders.filter(p => !topProviders.includes(p)).sort()
];
return {
success: true,
action: 'none',
data: {
type: 'provider-select',
providers: sortedProviders,
currentProvider
}
};
}
};
//# sourceMappingURL=provider.js.map