import { McpClient } from './mcpClient.js';
import { LlmClient } from './llmClient.js';
import { PlanExecutor } from './planExecutor.js';
import { createRouteHandlers } from './routeHandlers.js';
// Main module exports
export { McpClient } from './mcpClient.js';
export { LlmClient } from './llmClient.js';
export { PlanExecutor } from './planExecutor.js';
export { createRouteHandlers } from './routeHandlers.js';
// Factory function to create a complete agent system
export async function createAgentSystem(config) {
const mcpClient = new McpClient(config.mcpEndpoint, config.auth);
await mcpClient.openSession();
const llmClient = new LlmClient(mcpClient, config.strategy, {
DOCKER_MODEL_RUNNER_URL: config.dockerModelRunnerUrl,
OLLAMA_URL: config.ollamaUrl,
OPENAI_API_KEY: config.openaiApiKey
},
{ DOCKER_MODEL_NAME: config.dockerModelName,
OLLAMA_MODEL_NAME: config.ollamaModelName,
OPENAI_MODEL_NAME: config.openaiModelName }
);
const planExecutor = new PlanExecutor(mcpClient, llmClient, config.broadcastFunction);
const routeHandlers = createRouteHandlers(planExecutor, llmClient, config.broadcastFunction);
return {
mcpClient,
llmClient,
planExecutor,
routeHandlers
};
}