rea-agents - v2.0.0
    Preparing search index...

    Function parseProcessScenario

    • Parse untrusted process scenario input and apply safe default budgets.

      Parameters

      • input: unknown

      Returns {
          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;
              }[];
              machine: | {
                  initial_state: string;
                  limits: {
                      bytes: number;
                      connections: number;
                      duration_ms: number;
                      messages: number;
                  };
                  max_transitions: number;
                  states: { max_visits: number; name: string; terminal: boolean }[];
                  transitions: {
                      actions: (
                          | {
                              body: string;
                              headers: Record<string, string>;
                              status: number;
                              type: "http_response";
                          }
                          | { data: string; type: "websocket_send" }
                          | { type: "disconnect" }
                          | { duration_ms: number; type: "delay" }
                      )[];
                      captures: {
                          sensitive: boolean;
                          value:
                              | { name: string; source: "request_header" }
                              | { path: (...)[]; source: "request_json" }
                              | { path: (...)[]; source: "websocket_json" }
                              | { path: (...)[]; source: "action_json" };
                          variable: string;
                      }[];
                      from: string;
                      guards: {
                          value: | { name: string; source: "request_header" }
                          | { path: (...)[]; source: "request_json" }
                          | { path: (...)[]; source: "websocket_json" }
                          | { path: (...)[]; source: "action_json" };
                          variable: string;
                      }[];
                      id: string;
                      max_uses: number;
                      priority: number;
                      to: string;
                      trigger: | {
                          body: string
                          | null;
                          headers: { [k: string]: string };
                          method: string;
                          path: string;
                          protocol: "http";
                      }
                      | {
                          headers: { [k: string]: string };
                          path: string;
                          protocol: "websocket_connect";
                      }
                      | { body: string
                      | null; path: string; protocol: "websocket_message" };
                  }[];
              }
              | null;
              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;
      }