/** * Which executor runs a governed child — ADR-0031. * * `PI_DADDY_HERDR` is three-state, and **absent means probe**. That reverses ADR-0016 point 6's opt-in, and * the reversal is narrower than it sounds: nothing is detected from `herdr` being on `PATH` (option C, rejected * by name), only from a server that *answered*. The grant, the depth bound, the gate and `--tools` enforcement * are identical either way — `planSpawn` produces one plan and both executors enforce it. * * **Pure on purpose.** The probe is I/O and lives in `herdr-cli.ts`; the DECISION is a table, and a table that * fits on one screen is the only reason a reversal like this is reviewable at all. * * The disclosure string is part of the return value rather than composed at the call site, because ADR-0031's * defence against "this relocates silently" is that every outcome says what it chose AND what to set instead. * Two call sites composing that separately is how one of them comes to omit it (R-28). */ import type { HerdrProbe } from "./herdr-cli.ts"; export { EXECUTOR_KINDS, type ExecutorKind } from "../kernel/delegate-types.ts"; import type { ExecutorKind } from "../kernel/delegate-types.ts"; export { ENV_HERDR } from "../kernel/env-names.ts"; export interface ExecutorChoice { kind: ExecutorKind; /** The operator named it: `PI_DADDY_HERDR` was exactly `0` or `1`. */ forced: boolean; /** Whether a probe was needed at all — false only for `0`. */ probed: boolean; /** * Set ONLY when herdr was demanded and is unreachable. Every delegation must refuse with this. * * Note that `kind` stays `"herdr"` in that case, deliberately: nothing downstream may mistake a refusing * session for a working process-executor one. */ refusal?: string; /** One line for the session banner and `/grants`. Always present. */ disclosure: string; } /** `0` is the one value that needs no probe: the operator ruled herdr out, so asking is pure cost. */ export declare function needsProbe(raw: string | undefined): boolean; export declare function chooseExecutor(raw: string | undefined, probe: HerdrProbe | null): ExecutorChoice; //# sourceMappingURL=executor.d.ts.map