UI shows error for create-agent

This commit is contained in:
MaxRobinsonTheGreat 2025-08-29 11:30:38 -05:00
parent 7e3d9c0c85
commit a83c5bb236
3 changed files with 36 additions and 14 deletions

View file

@ -23,14 +23,17 @@ export async function init(host_public=false, port=8080, auto_open_ui=true) {
if (numStateListeners() === 0) {
open('http://localhost:'+port);
}
}, 2000);
}, 3000);
}
}
export async function createAgent(settings) {
if (!settings.profile.name) {
console.error('Agent name is required in profile');
return;
return {
success: false,
error: 'Agent name is required in profile'
};
}
settings = JSON.parse(JSON.stringify(settings));
let agent_name = settings.profile.name;
@ -39,15 +42,28 @@ export async function createAgent(settings) {
let load_memory = settings.load_memory || false;
let init_message = settings.init_message || null;
const server = await getServer(settings.host, settings.port, settings.minecraft_version);
settings.host = server.host;
settings.port = server.port;
settings.minecraft_version = server.version;
try {
const server = await getServer(settings.host, settings.port, settings.minecraft_version);
settings.host = server.host;
settings.port = server.port;
settings.minecraft_version = server.version;
const agentProcess = new AgentProcess(agent_name, port);
agentProcess.start(load_memory, init_message, agent_count);
agent_count++;
agent_processes[settings.profile.name] = agentProcess;
const agentProcess = new AgentProcess(agent_name, port);
agentProcess.start(load_memory, init_message, agent_count);
agent_count++;
agent_processes[settings.profile.name] = agentProcess;
} catch (error) {
console.error(`Error creating agent ${agent_name}:`, error);
destroyAgent(agent_name);
return {
success: false,
error: error.message
};
}
return {
success: true,
error: null
};
}
export function getAgentProcess(agentName) {

View file

@ -61,7 +61,7 @@ export function createMindServer(host_public = false, port = 8080) {
agentsStatusUpdate(socket);
socket.on('create-agent', (settings, callback) => {
socket.on('create-agent', async (settings, callback) => {
console.log('API create agent...');
for (let key in settings_spec) {
if (!(key in settings)) {
@ -84,8 +84,14 @@ export function createMindServer(host_public = false, port = 8080) {
callback({ success: false, error: 'Agent already exists' });
return;
}
mindcraft.createAgent(settings);
callback({ success: true });
let returned = await mindcraft.createAgent(settings);
callback({ success: returned.success, error: returned.error });
let name = settings.profile.name;
if (!returned.success && agent_connections[name]) {
mindcraft.destroyAgent(name);
delete agent_connections[name];
}
agentsStatusUpdate();
}
else {
console.error('Agent name is required in profile');

View file

@ -55,7 +55,7 @@ export function selectAPI(profile) {
else if (profile.model.includes('gemini'))
profile.api = "google";
else if (profile.model.includes('grok'))
profile.api = 'grok';
profile.api = 'xai';
else if (profile.model.includes('mistral'))
profile.api = 'mistral';
else if (profile.model.includes('deepseek'))