/** * Stable vocabulary of run-log event kinds emitted across both orchestrators. * Typed as a union so consumers can rely on a fixed set when aggregating logs. */ export type RunLogEventKind = "obligation" | "executor_start" | "executor_end" | "artifact_write" | "scope" | "outcome" | "step" | "state" | "error"; export interface RunLogEvent { /** Coarse phase/state, e.g. "advance" or "implementing". */ phase?: string; /** The obligation/decision this event relates to. */ obligation?: string; /** Event kind drawn from the stable {@link RunLogEventKind} vocabulary. */ kind: RunLogEventKind; artifact?: string; tokens_est?: number; duration_ms?: number; note?: string; /** Run- or request-scoped token for correlating log events across a single invocation. */ correlationId?: string; } export interface RunLoggerOptions { enabled?: boolean; /** Injectable clock (epoch ms) for deterministic tests. */ now?: () => number; } export declare class RunLogger { private readonly path; private readonly enabled; private readonly now; constructor(path: string, options?: RunLoggerOptions); /** A logger that drops every event. Use when observability is disabled. */ static disabled(): RunLogger; get isEnabled(): boolean; /** Append one event line. Atomic per line (O_APPEND); swallows all errors. */ event(event: RunLogEvent): void; } //# sourceMappingURL=runLog.d.ts.map