Skip to main content

AblationConfig

Struct AblationConfig 

Source
pub struct AblationConfig {
Show 14 fields pub project: PathBuf, pub ir_path: PathBuf, pub golden_path: PathBuf, pub target: String, pub models_config_path: Option<PathBuf>, pub sweep_tiers: Vec<String>, pub base_tier: String, pub accuracy_drop_tolerance: f64, pub out: Option<PathBuf>, pub parallel: usize, pub filter: CaseFilter, pub no_cache: bool, pub cache_dir: Option<PathBuf>, pub backend: Backend,
}
Expand description

Inputs for a per-step ablation sweep.

Fields§

§project: PathBuf

A queryable wren project (connection + data); agent files are installed here per dispatch.

§ir_path: PathBuf

Compiled IR JSON (the same artifact warble dispatch consumes). Re-dispatched per point.

§golden_path: PathBuf

Golden cases YAML.

§target: String

Dispatch target (e.g. claude-code:headless).

§models_config_path: Option<PathBuf>

Optional tier→model config YAML; defaults to the standard strong/cheap/orchestrator map.

§sweep_tiers: Vec<String>

Tiers to try per step (e.g. [cheap, strong]).

§base_tier: String

Tier every non-ablated step is pinned to (the reference point; conventionally strong).

§accuracy_drop_tolerance: f64

A tier qualifies for the recommendation if its accuracy is within this much of the baseline.

§out: Option<PathBuf>

Write the full JSON report here.

§parallel: usize

Concurrent cases per dispatched point (1 = serial); see RunConfig::parallel.

§filter: CaseFilter

Golden case selection (--tags / --sample). Default = full run (every case).

§no_cache: bool

Bypass the trace cache (--no-cache): re-run every case at every point.

§cache_dir: Option<PathBuf>

Where per-case traces are read/written. None = <project>/.warble/eval-cache.

§backend: Backend

Which back-end/runtime to run the ablation through. Distinct from target (the existing per-back-end capability target this crate has always had): today the ablation loop only works with Backend::ClaudeCodeCli (it re-dispatches IR via that back-end’s own Rust emitter directly), so run_ablation validates this at entry and fails loudly otherwise rather than silently ignoring it.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.