/**
 * Kernel Runtime — types.
 *
 * Shapes shared between the RuntimeBackend contract and the
 * KernelExecutionService. Deliberately minimal: step lifecycle
 * spans prepare → execute → inspect → (optional) cleanup.
 */
export interface RuntimeExecuteInput {
    runId: string;
    stepId: string;
    task: string;
    /** Candidate files the backend may read/modify. Passed as paths; backend resolves. */
    candidateFiles?: string[];
    /** Arbitrary caller metadata persisted in the ledger. */
    metadata?: Record<string, unknown>;
}
export interface PreparedStep {
    runId: string;
    stepId: string;
    /** Branch or worktree reference the backend set up. Undefined for stateless backends. */
    worktreeRef?: string;
    /** Files the backend determined are relevant. May be empty. */
    candidateFiles: string[];
    debugMeta?: Record<string, unknown>;
}
export interface ExecutedStep {
    runId: string;
    stepId: string;
    /** Relative paths of files that changed. Backend best-effort; may be empty. */
    changedFiles: string[];
    worktreeRef?: string;
    summary?: string;
    warnings: string[];
    debugMeta?: Record<string, unknown>;
}
export interface InspectedStep {
    runId: string;
    stepId: string;
    /** sha256 hashes of changed files post-execution. May be empty if backend can't compute. */
    fileHashes?: Record<string, string>;
    headRef?: string;
    warnings: string[];
    debugMeta?: Record<string, unknown>;
}
