import { type AuthorizedExecutable, type EvaluationCandidateLauncher } from "./launcher.js"; import type { EvaluationCandidatePolicy, EvaluationEvent, EvaluationFixtureSpec, EvaluationSandboxIdentity } from "./types.js"; export interface EvaluationSandboxPolicy { allowedTools: string[]; deniedEffects: string[]; workspaceBoundary: string; networkPolicy: "none" | "loopback_only" | "provider_only" | "explicit_allowlist"; maximumProcesses: number; maximumToolCalls: number; maximumWallTimeMs: number; maximumOutputBytes: number; maximumDiskBytes: number; maximumCostUsd?: number; /** * The trusted candidate launcher, authorized by executable identity rather * than basename. This authority is separate from `allowedTools`: it starts * the Jensen candidate runtime and does not grant the candidate permission * to invoke arbitrary executables sharing a name. */ authorizedLauncher?: EvaluationCandidateLauncher; /** Logical capability -> resolved executable identity map. */ authorizedExecutables?: AuthorizedExecutable[]; } export interface SandboxProcessResult { exitCode: number | null; signal: NodeJS.Signals | null; stdout: string; stderr: string; durationMs: number; timedOut: boolean; cancelled: boolean; } export interface EvaluationSandbox { readonly root: string; readonly identity: EvaluationSandboxIdentity; readonly policy: Readonly; readonly events: EvaluationEvent[]; runProcess(command: string, args?: string[], options?: { signal?: AbortSignal; env?: Record; }): Promise; retain(): Promise; cleanup(): Promise; } export declare function policyFromCandidate(candidate: EvaluationCandidatePolicy, workspaceBoundary?: string, launcher?: EvaluationCandidateLauncher, authorizedExecutables?: AuthorizedExecutable[]): EvaluationSandboxPolicy; export declare function assertSandboxPath(root: string, candidate: string): string; export declare function createEvaluationSandbox(input: { evaluationRunId: string; fixture: EvaluationFixtureSpec; policy: EvaluationCandidatePolicy; retainOnFailure?: boolean; signal?: AbortSignal; launcher?: EvaluationCandidateLauncher; authorizedExecutables?: AuthorizedExecutable[]; }): Promise; export declare function writeSandboxMetadata(sandbox: EvaluationSandbox): Promise; export declare function readSandboxMetadata(root: string): Promise; //# sourceMappingURL=sandbox.d.ts.map