rea-agents
    Preparing search index...

    Capture seam used by paired process experiments.

    interface ProcessCapturePort {
        capture(
            scenario: {
                approved: true;
                arguments: string[];
                checkpoints: {
                    name: string;
                    trigger:
                        | { at_ms: number; type: "time" }
                        | { occurrence: number; type: "terminal_literal"; value: string }
                        | { type: "root_exit" }
                        | { type: "settled" };
                }[];
                command_shims: {
                    name: string;
                    routes: {
                        arguments: string[];
                        max_calls: number;
                        outputs: { at_ms: number; data: string; stream: "stdout"
                        | "stderr" }[];
                        termination:
                            | { code: number; type: "exit" }
                            | { signal: "SIGINT" | "SIGTERM" | "SIGKILL"; type: "signal" };
                    }[];
                }[];
                environment: Record<string, string>;
                events: (
                    | { at_ms: number; data: string; sensitive: boolean; type: "input" }
                    | { at_ms: number; columns: number; rows: number; type: "resize" }
                    | {
                        at_ms: number;
                        signal: "SIGINT" | "SIGTERM" | "SIGKILL";
                        type: "signal";
                    }
                )[];
                executable: string;
                filesystem_roots: string[];
                idle_timeout_ms: number;
                inherit_environment: string[];
                limits: {
                    connections: number;
                    file_bytes: number;
                    files: number;
                    filesystem_depth: number;
                    frames: number;
                    output_bytes: number;
                    processes: number;
                    protocol_body_bytes: number;
                    protocol_events: number;
                };
                network_access: "host";
                normalization: {
                    paths: boolean;
                    patterns: { pattern: string; replacement: string }[];
                    pids: boolean;
                    ports: boolean;
                    time_bucket_ms: number;
                };
                replay: {
                    http: {
                        body: string;
                        delay_ms: number;
                        disconnect: boolean;
                        max_calls: number;
                        method: string;
                        path: string;
                        request_body?: string;
                        request_headers: Record<string, string>;
                        response_headers: Record<string, string>;
                        status: number;
                    }[];
                    websocket_connections: {
                        disconnect_after: boolean;
                        messages: { data: string; delay_ms: number }[];
                    }[];
                    websocket_messages: string[];
                };
                secret_aliases: string[];
                settle_ms: number;
                terminal: { columns: number; rows: number; scrollback: number };
                timeout_ms: number;
                unknown_registry_approved?: true;
                working_directory: string;
            },
            policy: ProcessExecutionPolicy,
            signal?: AbortSignal,
        ): Promise<Result<ProcessCapture, ProcessCaptureError>>;
    }
    Index
    • Parameters

      • scenario: {
            approved: true;
            arguments: string[];
            checkpoints: {
                name: string;
                trigger:
                    | { at_ms: number; type: "time" }
                    | { occurrence: number; type: "terminal_literal"; value: string }
                    | { type: "root_exit" }
                    | { type: "settled" };
            }[];
            command_shims: {
                name: string;
                routes: {
                    arguments: string[];
                    max_calls: number;
                    outputs: { at_ms: number; data: string; stream: "stdout"
                    | "stderr" }[];
                    termination:
                        | { code: number; type: "exit" }
                        | { signal: "SIGINT" | "SIGTERM" | "SIGKILL"; type: "signal" };
                }[];
            }[];
            environment: Record<string, string>;
            events: (
                | { at_ms: number; data: string; sensitive: boolean; type: "input" }
                | { at_ms: number; columns: number; rows: number; type: "resize" }
                | {
                    at_ms: number;
                    signal: "SIGINT" | "SIGTERM" | "SIGKILL";
                    type: "signal";
                }
            )[];
            executable: string;
            filesystem_roots: string[];
            idle_timeout_ms: number;
            inherit_environment: string[];
            limits: {
                connections: number;
                file_bytes: number;
                files: number;
                filesystem_depth: number;
                frames: number;
                output_bytes: number;
                processes: number;
                protocol_body_bytes: number;
                protocol_events: number;
            };
            network_access: "host";
            normalization: {
                paths: boolean;
                patterns: { pattern: string; replacement: string }[];
                pids: boolean;
                ports: boolean;
                time_bucket_ms: number;
            };
            replay: {
                http: {
                    body: string;
                    delay_ms: number;
                    disconnect: boolean;
                    max_calls: number;
                    method: string;
                    path: string;
                    request_body?: string;
                    request_headers: Record<string, string>;
                    response_headers: Record<string, string>;
                    status: number;
                }[];
                websocket_connections: {
                    disconnect_after: boolean;
                    messages: { data: string; delay_ms: number }[];
                }[];
                websocket_messages: string[];
            };
            secret_aliases: string[];
            settle_ms: number;
            terminal: { columns: number; rows: number; scrollback: number };
            timeout_ms: number;
            unknown_registry_approved?: true;
            working_directory: string;
        }
      • policy: ProcessExecutionPolicy
      • Optionalsignal: AbortSignal

      Returns Promise<Result<ProcessCapture, ProcessCaptureError>>