/** * OpenKernel — Native Orchestrator * * Always running. Coordinates Mission Engine, Scheduler, Worker Runtime, * Provider Manager, Router, Verification Engine, Recovery Manager, * Checkpoints. Never executes tasks directly. */ import type { Logger, Mission, MissionInput } from './types.js'; import type { EventBus } from './event-bus.js'; import type { MissionEngine } from './mission-engine.js'; import type { Scheduler } from './scheduler.js'; import type { WorkerRuntime } from './worker-runtime.js'; import type { CheckpointEngine } from './checkpoint-engine.js'; import type { ProviderManager } from './provider-manager.js'; import type { CapabilityRouter } from './router.js'; import type { VerificationEngine } from './verification-engine.js'; import type { RecoveryManager } from './recovery-manager.js'; export interface OrchestratorDeps { eventBus: EventBus; missionEngine: MissionEngine; scheduler: Scheduler; workerRuntime: WorkerRuntime; checkpoints: CheckpointEngine; providerManager: ProviderManager; router: CapabilityRouter; verification: VerificationEngine; recovery: RecoveryManager; logger: Logger; } export declare class Orchestrator { private deps; private pausedMissions; private cancelledMissions; private workersByMission; /** Per-task forced provider/model overrides set by the recovery manager. */ private taskOverrides; /** Per-task forced worker type override set by the recovery manager. */ private taskWorkerOverrides; /** How many times each task has been replanned (bounds the replan loop). */ private taskReplans; private maxReplans; /** How many times each task has parked waiting for capacity to return. */ private taskWaitRetries; /** Generous cap so a long outage keeps the task alive without looping forever. */ private maxWaitRetries; constructor(deps: OrchestratorDeps); run(mission: Mission, input: MissionInput): Promise; private runTasks; private executeTask; private handleRecovery; private skipBlockedTasks; private trackWorker; private collectWorkerStates; pauseMission(missionId: string): void; resumeMission(missionId: string): void; cancelMission(missionId: string): void; private sleep; }