pub fn execute(corpus: &Corpus, dsl: &Value, scope: &[String]) -> (String, bool)Expand description
Execute a workflow DSL against the corpus. scope = candidate tokens from query expansion (may be
empty → whole corpus). Returns (result_json, is_error); the result carries a "program" key so
crate::agent::synth renders it deterministically.