import type { EvoPaths } from "../paths.ts"; import { type CommandResult, type CommandRunner } from "./command-runner.ts"; export interface CodeValidationCheck { name: string; result: CommandResult; } export interface CodeL1Result { passed: boolean; errors: string[]; checks: CodeValidationCheck[]; } export interface CodeValidationContext { repositoryRoot: string; worktreePath: string; baseCommit: string; changedPaths: string[]; commandRunner: CommandRunner; signal?: AbortSignal; } export interface CodeValidationExecutor { validate(context: CodeValidationContext): Promise; } export interface CodeWorktreeRevision { schemaVersion: 1; proposalId: string; revision: number; parentBundleDigest: string; repositoryRoot: string; repositoryIdentity: string; baseCommit: string; branch: string; worktreePath: string; revisionDirectory: string; patchFile: string; diffFile: string; changedPaths: string[]; diff: string; approvalDigest: string; diffDigest: string; l1: CodeL1Result; } export interface CodeBuilderWorkspace { runId: string; repositoryRoot: string; repositoryIdentity: string; baseCommit: string; worktreePath: string; } export interface CodeBuilderSnapshot { patch: string; changedPaths: string[]; repositoryRoot: string; repositoryIdentity: string; baseCommit: string; } export interface StageCodeWorktreeOptions { paths: EvoPaths; repositoryCwd: string; proposalId: string; revision: number; parentBundleDigest: string; patch: string; expectedRepositoryRoot?: string; expectedRepositoryIdentity?: string; expectedBaseCommit?: string; commandRunner?: CommandRunner; validationExecutor?: CodeValidationExecutor; signal?: AbortSignal; } export interface RevalidateCodeWorktreeOptions { paths: EvoPaths; proposalId: string; revision: number; expectedApprovalDigest: string; expectedRepositoryRoot: string; expectedRepositoryIdentity: string; expectedBaseCommit: string; expectedParentBundleDigest: string; commandRunner?: CommandRunner; validationExecutor?: CodeValidationExecutor; signal?: AbortSignal; } export declare class CodeWorktreeIntegrityError extends Error { } /** * Code candidates always patch Evo-Pi's own source repository — the git * repository containing this file — never the incidental working directory of * whichever session happened to trigger the evolution cycle. */ export declare function resolveEvoSourceRepositoryRoot(runner?: CommandRunner): Promise; export declare function codeApprovalDigest(options: { repositoryRoot: string; repositoryIdentity: string; baseCommit: string; parentBundleDigest: string; diff: string; }): string; export declare class DefaultSandboxCodeValidationExecutor implements CodeValidationExecutor { validate(context: CodeValidationContext): Promise; } export declare function createCodeBuilderWorkspace(options: { paths: EvoPaths; repositoryCwd: string; runId: string; commandRunner?: CommandRunner; signal?: AbortSignal; }): Promise; export declare function snapshotCodeBuilderWorkspace(options: { workspace: CodeBuilderWorkspace; parentBundleDigest: string; commandRunner?: CommandRunner; }): Promise; export declare function removeCodeBuilderWorkspace(workspace: CodeBuilderWorkspace, commandRunner?: CommandRunner): Promise; export declare function stageCodeWorktree(options: StageCodeWorktreeOptions): Promise; export declare function loadCodeWorktreeRevision(paths: EvoPaths, proposalId: string, revision: number): Promise; export declare function revalidateCodeWorktree(options: RevalidateCodeWorktreeOptions): Promise; //# sourceMappingURL=worktree.d.ts.map