import type { WorkflowDefinition, WorkflowProgressData } from "../workflows/types.js"; import { type ResolvedPlanApprovalPolicy } from "./plan-approval.workflow.js"; export type MonitorInput = { task: string; everyMinutes?: number; stopWhen?: string; maxChecks?: number; }; type MonitorConfig = { task: string; everyMinutes: number; stopWhen: string; maxChecks: number; }; type MonitorRoute = "wait" | "act" | "stop"; type MonitorGoalState = "complete" | "incomplete" | "blocked"; type MonitorWorkState = "running" | "waiting" | "idle" | "failed" | "stopped" | "unknown"; type MonitorActionKind = "advance" | "recover" | "repair"; type MonitorTrack = { key: string; data: WorkflowProgressData; }; type MonitorAuthority = { status: "authorized" | "outside"; basis: string; allowedMutations: string[]; forbiddenMutations: string[]; costLimit: string; providerRuntime: string; requiredChecks: string[]; stopConditions: string[]; allowedRecoveryActions: string[]; repository?: string; baseBranch?: string; merge: boolean; repairApproval: ResolvedPlanApprovalPolicy; }; type MonitorCostSafety = { paidAction: boolean; status: "not-applicable" | "within-limit" | "missing" | "exceeded"; evidence: string; }; type MonitorDefectSafety = { sharedCodeOrDataDefect: boolean; paidWorkers: "not-applicable" | "stopped" | "running"; evidence: string; }; type MonitorActionRequest = { kind: MonitorActionKind; incomplete: string; evidence: unknown; nextAction: string; authority: MonitorAuthority; cost: MonitorCostSafety; defect: MonitorDefectSafety; verification: string; failureId: string; targetStateId: string; }; export type MonitorObservation = { route: MonitorRoute; goalState: MonitorGoalState; workState: MonitorWorkState; observation: string; report: string; targetStateId: string; authorizedActions: string[]; progress?: { tracks: MonitorTrack[]; }; action?: MonitorActionRequest; reason: string; }; type MonitorActionResult = { status: "succeeded" | "failed" | "blocked"; summary: string; evidence: unknown; verification: string; failureId: string; targetStateId: string; }; export declare function prepareMonitorInput(input: unknown): MonitorConfig; export declare function validateMonitorObservation(output: unknown): MonitorObservation; export declare function validateMonitorActionResult(output: unknown, expected: Pick): MonitorActionResult; declare const monitorWorkflow: WorkflowDefinition; export default monitorWorkflow;