export type Instruction = { name: string; description?: string; schemaTemplate?: string; }; export interface AgentCoreConfig { name: string; role: string; goal: string; capabilities: string; instructions?: Instruction[]; instructionToolMap?: { [key: string]: string; }; mcpTools?: any[]; } export interface AgentServiceConfig { llmConfig?: LLMConfig; communicationConfig?: CommunicationConfig; decisionInterval?: string; proactiveInterval?: string; loggingConfig?: LoggingConfig; } export interface LLMConfig { apiKey: string; model: string; baseURL?: string; streamMode?: boolean; maxTokens?: number; temperature?: number; } /** * Function type for query pre-processing * Takes the original query and session ID, returns the processed query * The original query is still stored in memory */ export interface PreprocessResult { user: string; systemContext?: string; } export interface QueryPreProcessor { process: (query: string, sessionId: string) => Promise; } export interface MemoryConfig { type: string; dbFilePath: string; } export interface CommunicationConfig { host?: string; natsUrl?: string; httpPort?: number; grpcPort?: number; streamPort?: number; wsPort?: number; enableStreaming?: boolean; enableWebSocket?: boolean; } export interface InboxConfig { type: string; priority: string; } export interface PromptTemplate { id: string; template: string; } export interface LoggingConfig { type?: 'console' | 'file' | 'both'; destination?: string; level?: 'debug' | 'info' | 'warn' | 'error'; }