pub trait CanaryLauncher {
// Required method
fn run(&self, prompt: &str, capture: &Path) -> Result<(), String>;
// Provided method
fn agent(&self) -> AgentKind { ... }
}Expand description
How the canary gets a child to talk to.
The seam exists so the matcher can be tested without spawning an agent: every
test in this module injects a launcher that writes a canned capture, and none
of them runs claude. run returns Err ONLY when the child could not be
run to the point of producing a capture — a child that ran and said nothing
useful is Ok, because that is a fact about the CLI’s behaviour and belongs
in the Absent/Confirmed decision rather than in the Unverified one.
Required Methods§
Provided Methods§
Sourcefn agent(&self) -> AgentKind
fn agent(&self) -> AgentKind
Which agent’s transport this launcher drives.
Selects the token-trust predicate in run_delivery_canary
(agent_result::token_reported_in_capture_for): Claude matches a
top-level type: "result" event, Antigravity a top-level
event: "result" object’s result.response (round-3 B2/D-07). The
default keeps every pre-existing (Claude-shaped) launcher unchanged.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".