pub struct SequencePlan {
pub sequences: Vec<Sequence>,
pub master_seed: u64,
pub timeout: Duration,
pub transport_name: String,
pub severity: SeverityConfig,
pub fuzz_corpus: Option<FuzzCorpus>,
pub mutate_ratio: f64,
}Expand description
Plan for executing a batch of Sequences.
Fields§
§sequences: Vec<Sequence>Sequences to run, in declaration order.
master_seed: u64Master seed; per-sequence seeds derive from master_seed + sequence_name deterministically.
timeout: DurationPer-step call timeout.
transport_name: StringTransport label for ReproInfo.
severity: SeverityConfig[severity] overrides from wallfacer.toml.
fuzz_corpus: Option<FuzzCorpus>Phase V — optional persistent corpus, shared with the v0.6
fuzzer. When set, sequence steps mutate from the corpus
mutate_ratio fraction of the time and save inputs that
trigger findings or produce a previously-unseen response
fingerprint per step. Cross-pollinates with wallfacer fuzz --corpus-feedback: fuzz-discovered “interesting ids” can
seed sequence steps that call the same tool.
mutate_ratio: f64Phase V — fraction of sequence-step inputs that mutate from
the corpus instead of using the YAML literal verbatim.
Range 0.0..=1.0. Default 0.9 matches the fuzz default.
Ignored when Self::fuzz_corpus is None or the per-tool
corpus is empty.
Implementations§
Source§impl SequencePlan
impl SequencePlan
Sourcepub async fn execute<C: McpExec + ?Sized>(
self,
client: &mut C,
corpus: &Corpus,
reporter: &mut dyn Reporter,
) -> Result<SequenceReport>
pub async fn execute<C: McpExec + ?Sized>( self, client: &mut C, corpus: &Corpus, reporter: &mut dyn Reporter, ) -> Result<SequenceReport>
Drives the sequence loop. Returns once every sequence has either passed, produced a finding, or been skipped for a missing tool.
Lifecycle events (on_run_start / on_run_end) are not
emitted: callers compose this plan with the property plan and
run them through a single reporter instance, so wrapping each
sub-run with its own start/end would split the JSON envelope
and confuse downstream consumers. The reporter sees a clean
stream of on_finding / on_skipped calls with the sequence
findings interleaved with the single-tool findings.