import type { EffectAction, IterationMetadata, IterationResult, ProcessLogger, EffectSchedulerHints } from "../runtime/types"; import type { JsonRecord } from "../storage/types"; import type { DeterministicUlidHandle, FixedClockHandle } from "./deterministic"; export interface FakeActionSuccess { status: "ok"; value?: unknown; stdout?: string; stderr?: string; metadata?: JsonRecord; startedAt?: string; finishedAt?: string; } export interface FakeActionError { status: "error"; error: unknown; stdout?: string; stderr?: string; metadata?: JsonRecord; startedAt?: string; finishedAt?: string; } export type FakeActionResolution = FakeActionSuccess | FakeActionError; export type FakeActionResolver = ((action: EffectAction) => FakeActionResolution | undefined | Promise); export interface RunToCompletionWithFakeRunnerOptions { runDir: string; resolve: FakeActionResolver; maxIterations?: number; logger?: ProcessLogger; onIteration?: (iteration: IterationResult) => void | Promise; now?: Date | (() => Date); clock?: FixedClockHandle; ulids?: DeterministicUlidHandle; harnessCapabilities?: string[]; } export interface ExecutedFakeAction { action: EffectAction; resolution: FakeActionResolution; } export interface RunToCompletionResult { status: "completed" | "halted" | "failed" | "waiting"; output?: unknown; error?: unknown; pending?: EffectAction[]; metadata: IterationMetadata | null; iterations: number; executed: ExecutedFakeAction[]; executionLog: HarnessIterationLogEntry[]; } export interface HarnessIterationLogEntry { iteration: number; status: IterationResult["status"]; metadata: IterationMetadata | null; pending: HarnessActionSnapshot[]; executed: HarnessActionSnapshot[]; } export interface HarnessActionSnapshot { effectId: string; invocationKey: string; taskId?: string; stepId?: string; kind?: string; schedulerHints?: EffectSchedulerHints; } export declare function runToCompletionWithFakeRunner(options: RunToCompletionWithFakeRunnerOptions): Promise; //# sourceMappingURL=runHarness.d.ts.map