import { ToolDefinition } from "./types.js"; /** * Job status enum */ export type JobStatus = "running" | "completed" | "failed" | "cancelled"; /** * Job information */ export interface Job { id: string; toolName: string; command: string; status: JobStatus; startTime: number; endTime?: number; exitCode?: number; output: string; error?: string; pid?: number; } /** * Job Manager - handles background execution of long-running/interactive tools * * Features: * - Start tools as background jobs * - Query job status * - Get job output (with streaming support) * - Cancel running jobs * - Auto-cleanup of old completed jobs */ export declare class JobManager { private jobs; private processes; private outputBuffers; private readonly JOB_RETENTION_MS; private readonly MAX_OUTPUT_SIZE; constructor(); /** * Start a tool as a background job */ start(tool: ToolDefinition, args: Record): Promise<{ jobId: string; message: string; }>; /** * Get job status */ getStatus(jobId: string): Job | undefined; /** * Get job output (optionally from a specific offset) */ getOutput(jobId: string, fromLine?: number): { output: string; totalLines: number; } | undefined; /** * Cancel a running job */ cancel(jobId: string): { success: boolean; message: string; }; /** * List all jobs (optionally filter by status) */ list(status?: JobStatus): Job[]; /** * Get running job count */ getRunningCount(): number; private generateJobId; private parseCommand; private appendOutput; private getFullOutput; private cleanup; } export declare const jobManager: JobManager;