mirror of
https://github.com/kolbytn/mindcraft.git
synced 2025-08-04 06:15:32 +02:00
68 lines
No EOL
1.8 KiB
JavaScript
68 lines
No EOL
1.8 KiB
JavaScript
import { createMindServer, registerAgent } from './src/server/mindserver.js';
|
|
import { AgentProcess } from './src/process/agent_process.js';
|
|
|
|
let mindserver;
|
|
let connected = false;
|
|
let agent_processes = {};
|
|
let agent_count = 0;
|
|
let host = 'localhost';
|
|
let port = 8080;
|
|
|
|
export async function init(host='localhost', port=8080) {
|
|
if (connected) {
|
|
console.error('Already initiliazed!');
|
|
return;
|
|
}
|
|
mindserver = createMindServer(host, port);
|
|
host = host;
|
|
port = port;
|
|
connected = true;
|
|
}
|
|
|
|
export async function createAgent(settings) {
|
|
if (!settings.profile.name) {
|
|
console.error('Agent name is required in profile');
|
|
return;
|
|
}
|
|
let agent_name = settings.profile.name;
|
|
registerAgent(settings);
|
|
let load_memory = settings.load_memory || false;
|
|
let init_message = settings.init_message || null;
|
|
const agentProcess = new AgentProcess(agent_name);
|
|
agentProcess.start(load_memory, init_message, agent_count, host, port);
|
|
agent_count++;
|
|
agent_processes[settings.profile.name] = agentProcess;
|
|
}
|
|
|
|
export function getAgentProcess(agentName) {
|
|
return agent_processes[agentName];
|
|
}
|
|
|
|
export function startAgent(agentName) {
|
|
if (this.agent_processes[agentName]) {
|
|
this.agent_processes[agentName].continue();
|
|
}
|
|
else {
|
|
console.error(`Cannot start agent ${agentName}; not found`);
|
|
}
|
|
}
|
|
|
|
export function stopAgent(agentName) {
|
|
if (this.agent_processes[agentName]) {
|
|
this.agent_processes[agentName].stop();
|
|
}
|
|
}
|
|
|
|
export function shutdown() {
|
|
console.log('Shutting down');
|
|
for (let agentName in this.agent_processes) {
|
|
this.agent_processes[agentName].stop();
|
|
}
|
|
setTimeout(() => {
|
|
process.exit(0);
|
|
}, 2000);
|
|
}
|
|
|
|
export function logoutAgent(agentName) {
|
|
this.socket.emit('logout-agent', agentName);
|
|
} |