import { BaseSubagent } from '../base-subagent.js'; import type { BaseChatModel } from '@langchain/core/language_models/chat_models'; import type { FastifyBaseLogger } from 'fastify'; import type { MCPClientConnector } from '../../mcp-client.js'; /** * Strategy Subagent * * Specialized agent for writing PandasStrategy classes, running backtests, * and managing strategy activation/deactivation. */ export class StrategySubagent extends BaseSubagent { protected getRecursionLimit() { return 30; } protected getFallbackText() { return 'Strategy task completed.'; } } /** * Factory function to create and initialize StrategySubagent */ export async function createStrategySubagent( model: BaseChatModel, logger: FastifyBaseLogger, basePath: string, mcpClient?: MCPClientConnector, tools?: any[] ): Promise { const config = await BaseSubagent.loadConfig(basePath); const subagent = new StrategySubagent(config, model, logger, mcpClient, tools); await subagent.initialize(basePath); return subagent; }