behemoth-cli
Version:
🌍 BEHEMOTH CLIv3.760.4 - Level 50+ POST-SINGULARITY Intelligence Trading AI
56 lines • 2.54 kB
JavaScript
import { PROVIDERS } from '../../utils/multi-provider-config.js';
export const modelCommand = {
command: 'model',
description: 'Select AI provider and model.',
handler: async ({ addMessage, parsedArgs, agent }) => {
const providerArg = parsedArgs?.[0]?.toLowerCase();
const modelArg = parsedArgs?.[1]; // Keep case for model name
if (!providerArg) {
// `/model` - List providers and current selection
const providers = agent.getAllProviderInfo();
const currentProvider = agent.providerName;
const currentModel = agent.getCurrentModel();
let message = '🤖 **AI Model & Provider Selection**\n\n';
message += `**Current Provider:** ${agent.providerName}\n`;
message += `**Current Model:** ${agent.getCurrentModel()}\n\n`;
message += '**Available Providers:**\n';
Object.keys(PROVIDERS).forEach(p => {
message += `- ${p}\n`;
});
message += '\n**Usage:**\n';
message += '• `/model <provider>` - See models for a provider\n';
message += '• `/model <provider> <model>` - Set provider and model\n';
addMessage({ role: 'system', content: message });
return;
}
if (providerArg && !modelArg) {
// `/model <provider>` - List models for provider
const models = PROVIDERS[providerArg]?.supportedModels;
if (!models || models.length === 0) {
addMessage({ role: 'system', content: `No models found for provider: ${providerArg}` });
return;
}
let message = `🤖 **Models for ${providerArg}**\n\n`;
models.forEach(m => {
message += `- ${m}\n`;
});
message += `\nTo set a model, use:
/model ${providerArg} <model_name>
`;
addMessage({ role: 'system', content: message });
return;
}
if (providerArg && modelArg) {
// `/model <provider> <model>` - Set provider and model
try {
agent.switchProvider(providerArg, modelArg);
addMessage({ role: 'system', content: `✅ Switched to provider **${providerArg}** with model **${modelArg}**` });
}
catch (error) {
addMessage({ role: 'system', content: `❌ Error switching model: ${error.message}` });
}
return;
}
}
};
//# sourceMappingURL=model.js.map