export interface GlasshouseConfig { /** Docker image to use as execution environment */ image: string; /** Shell command to execute inside container */ command: string; /** Optional stdin payload (for stdin-based exploits) */ stdin?: Buffer | string; /** Resource limits */ limits?: { memoryMb?: number; cpuPeriod?: number; cpuQuota?: number; pidsLimit?: number; timeoutSeconds?: number; }; /** Environment variables */ env?: Record; /** Mount paths (host:container) */ mounts?: { host: string; container: string; readonly?: boolean; }[]; /** Enable sanitizers */ sanitizers?: ('asan' | 'ubsan' | 'msan')[]; /** Baseline command for regression comparison */ baselineCommand?: string; /** Label for chain primitive validation */ chainLabel?: string; } export interface GlasshouseResult { /** Exit code (null if killed by signal) */ exitCode: number | null; /** Signal that killed the process (SIGSEGV, SIGABRT, etc.) */ signal: string | null; /** Captured stdout (decoded) */ stdout: string; /** Captured stderr (decoded) */ stderr: string; /** Combined output */ output: string; /** Execution wall time in ms */ durationMs: number; /** Peak memory usage in bytes */ maxMemoryBytes: number; /** Sanitizer findings */ sanitizerFindings: SanitizerFinding[]; /** Whether a crash was detected */ crashed: boolean; /** Crash type if crashed */ crashType: string | null; /** Crash address if available */ crashAddress: string | null; /** Regression result (if baseline provided) */ regression?: { matches: boolean; diff: string; baselineExitCode: number | null; baselineSignal: string | null; }; /** Chain validation verdict */ chainValidated?: boolean; /** Container log path for forensic review */ artifactPath: string; } export interface SanitizerFinding { type: 'heap-buffer-overflow' | 'stack-buffer-overflow' | 'use-after-free' | 'double-free' | 'memory-leak' | 'undefined-behavior' | 'uninitialized-read' | 'null-dereference' | 'integer-overflow'; address: string; function: string; file: string; line: number; description: string; } export interface GlasshouseArtifact { id: string; config: GlasshouseConfig; result: GlasshouseResult; timestamp: string; } export declare function executeInGlasshouse(config: GlasshouseConfig): GlasshouseResult; export declare function regressionTest(config: GlasshouseConfig): GlasshouseResult; export interface ChainPrimitive { name: string; description: string; config: GlasshouseConfig; /** Assertions on the result */ assertions: { expectExitCode?: number; expectCrash?: boolean; expectCrashType?: string; expectStdoutContains?: string[]; expectStderrContains?: string[]; expectSanitizerFinding?: SanitizerFinding['type']; }; } export interface ChainValidationResult { chainLabel: string; primitives: { name: string; passed: boolean; failures: string[]; result: GlasshouseResult; }[]; allPassed: boolean; evidence: string; } export declare function validateChain(chainLabel: string, primitives: ChainPrimitive[]): ChainValidationResult; //# sourceMappingURL=glasshouse.d.ts.map