HarnessConfig object. Build it from the environment (every knob has a HARNESS_* variable) with explicit overrides winning:
Three fields have no environment variable and are set programmatically only:
thresholds (a per-metric threshold map), signal_weights (forwarded to the platform’s signal aggregation), and session_metrics (the metric set to evaluate). Derived workspace paths (mailbox/, journal.jsonl, …) are computed from HARNESS_ROOT and cannot be overridden individually.Workspace & CLI
Evaluation & polling
Thresholds & detection
Noticing
Cost & sampling
Rules & retrieval
Validation & the closed loop
Robustness & scale
Platform credentials
Thepandaprobe subprocess inherits your environment, so the standard SDK/CLI variables apply unchanged: PANDAPROBE_API_KEY, PANDAPROBE_PROJECT_NAME, and PANDAPROBE_ENDPOINT for self-hosting. The harness itself never reads them — authentication is entirely the CLI’s concern.
