Skip to main content

CanaryLauncher

Trait CanaryLauncher 

Source
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§

Source

fn run(&self, prompt: &str, capture: &Path) -> Result<(), String>

Run one throwaway agent turn against prompt, teeing its stdout to capture.

Provided Methods§

Source

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".

Implementors§