import { type EvidenceReference } from "../evidence/store.js"; import { type ProcessRunner } from "../providers/process.js"; import { type LocalTicketInput, type TicketQueueRecord } from "../tickets/store.js"; import { type TicketWorktreeRecord } from "../worktrees/manager.js"; export interface TicketExecutorRequest { ticketId: string; ticketContentPath: string; worktreeRoot: string; attempt: number; leaseToken: string; } export interface TicketExecutorDecision { status: "done" | "blocked" | "failed"; summary: string; } export interface TicketGraderRequest { ticketId: string; worktreeRoot: string; attempt: number; deterministicEvidence: EvidenceReference; deterministicEvidencePath: string; } export interface TicketGraderDecision { verdict: "pass" | "fail"; summary: string; failures?: readonly string[]; } export interface OneTicketTracerOptions { packageRoot: string; configRoot?: string; repositoryRoot: string; stateRoot: string; ticket: LocalTicketInput; systemActor: string; workerId: string; sessionId: string; clock: () => string; executor: (request: Readonly) => TicketExecutorDecision; grader: (request: Readonly) => TicketGraderDecision; baseRef?: string; leaseDurationMs?: number; env?: NodeJS.ProcessEnv; gitRunner?: ProcessRunner; verificationRunner?: ProcessRunner; } export interface OneTicketTraceResult { ticket: TicketQueueRecord; worktree: TicketWorktreeRecord; verificationPlanEvidence: EvidenceReference; executorEvidence: EvidenceReference; deterministicEvidence: EvidenceReference | null; graderEvidence: EvidenceReference | null; } /** * Runs one local ticket through the canonical queue authority. The only * executor-facing ticket content is an immutable absolute file path. */ export declare function runOneTicketTracer(options: OneTicketTracerOptions): OneTicketTraceResult;