> $ops the kept server fixes' ops */ public function __construct(private readonly ?Transport $inner, private readonly array $ops) { } public function routes(): array { $routes = $this->inner?->routes() ?? []; foreach ($this->ops as $op) { if (is_string($op['route'] ?? null)) { $routes[] = $op['route']; } } $routes = array_values(array_unique($routes)); sort($routes, SORT_STRING); return $routes; } public function evaluate(string $routeId, array $envelope, float $budgetSec): ?Verdict { $mine = array_values(array_filter( $this->ops, static fn (array $op): bool => ($op['route'] ?? null) === $routeId, )); if ($mine === []) { return $this->inner?->evaluate($routeId, $envelope, $budgetSec); } return VerdictEngine::evaluate($mine, $envelope['body'] ?? null); } public function files(float $budgetSec): ?array { return $this->inner?->files($budgetSec); } public function fileFetch(string $patchId, float $budgetSec): ?array { return $this->inner?->fileFetch($patchId, $budgetSec); } }