import { type TaskPacketV1 } from "../context/index.js"; import type { SubagentExecutor, SubagentRunResult } from "../workers/index.js"; import type { AttemptRecord, EvidenceRecord, MissionId, MissionStoreAdapter, TaskRecord } from "./types.js"; import type { VerificationResultV1 } from "../quality/types.js"; import type { StableId } from "../config/types.js"; import type { AnalyticsEventV1 } from "../analytics/index.js"; export interface MissionTaskExecutionOptions { readonly store: MissionStoreAdapter; readonly contextBroker: { buildPacket(input: { readonly missionId: string; readonly taskId: string; readonly sourceMissionRevision?: number; readonly cwd?: string; }): TaskPacketV1; }; readonly executor: Pick; readonly missionId: MissionId | string; readonly taskId: string; readonly cwd?: string; readonly timeoutMs?: number; readonly signal?: AbortSignal; /** Explicit M7 repair invocation may rerun a completed task; normal callers cannot. */ readonly allowQualityRepair?: boolean; readonly repairFeedback?: VerificationResultV1; readonly excludedRouteIds?: readonly StableId[]; /** Observer-only telemetry; failures never affect mission execution. */ readonly analytics?: { append(event: AnalyticsEventV1): Promise | unknown; }; } export interface MissionTaskExecutionResult { readonly task: TaskRecord; readonly packet: TaskPacketV1; readonly attempt: AttemptRecord; readonly run: SubagentRunResult; readonly evidence?: EvidenceRecord; } /** * Runs one manually selected task through the existing M5 executor. Mission * state records the attempt first; child output is only admitted as proposed * evidence and never updates canonical arrays directly. */ export declare function executeMissionTask(options: MissionTaskExecutionOptions): Promise;