/** * Leaper Agent – Delegate Tool * * Subagent architecture for spawning and managing child agents. * Translates Python tools/delegate_tool.py. */ export interface SubAgentConfig { task: string; maxRounds?: number; timeout?: number; toolset?: string[]; systemPrompt?: string; /** Internal: depth counter to enforce MAX_DEPTH */ _depth?: number; } export type SubAgentStatus = 'pending' | 'running' | 'completed' | 'failed' | 'interrupted'; export interface SubAgentRecord { id: string; task: string; status: SubAgentStatus; output: string; startedAt: Date; completedAt?: Date; error?: string; } export declare class DelegateManager { private activeAgents; private maxConcurrent; private spawnPaused; private queue; /** * Injectable executor: given a task string and config, returns the output * string. If not set, spawned agents fail immediately. */ executor?: (task: string, config: SubAgentConfig) => Promise; constructor(maxConcurrent?: number); /** * Spawn a new subagent for a task. * Returns the SubAgentRecord once spawned (runs in background). */ spawnSubAgent(config: SubAgentConfig): Promise; /** List all active and recent subagents. */ listSubAgents(): SubAgentRecord[]; /** Interrupt a running subagent. Returns true if found and interrupted. */ interruptSubAgent(id: string): boolean; /** Pause all new spawns. */ setSpawnPaused(paused: boolean): void; isSpawnPaused(): boolean; /** * Wait for all running subagents to complete (with optional timeout). * Returns the final records. */ waitAll(timeoutMs?: number): Promise; /** Get a specific record by id. */ getRecord(id: string): SubAgentRecord | undefined; private doSpawn; private drainQueue; private runningCount; private makeRecord; private registerAgent; private unregisterAgent; } export declare const delegateManager: DelegateManager; export declare function spawnSubAgent(config: SubAgentConfig): Promise; export declare function listSubAgents(): SubAgentRecord[]; export declare function interruptSubAgent(id: string): boolean; //# sourceMappingURL=delegate.d.ts.map