import { SpecializedAgent, type TaskAssignmentPayload, type TaskResultPayload } from '../specialized-agent.js'; import type { AgentMessage } from '../types.js'; import type { MessageBus } from '../message-bus.js'; export declare class CodeAgent extends SpecializedAgent { constructor(messageBus: MessageBus, opts?: { model?: string; }); protected onMessage(_message: AgentMessage): void; executeTask(task: TaskAssignmentPayload): Promise; private parseCodeResponse; /** * Try multiple strategies to extract JSON from LLM response: * 1. Direct parse * 2. Strip markdown code fences (robust: handles nested backticks in content) * 3. Find first { ... } balanced block */ private extractJson; }