pub struct Crew {
pub planner: String,
pub navigator: Option<String>,
pub triage: Option<String>,
pub loop_program: Option<String>,
pub role_timeout_secs: Option<u64>,
pub test: Option<String>,
pub budgets: Option<CrewBudgets>,
}Expand description
A named crew ([crews.<name>] or crews/<name>.toml): a role-specialized
ensemble over the heterogeneous backend pool. Each role names a [loadouts.*]
(so a crew is a composition of loadouts — the canonical example routes the
planner/triage to frontier models and bulk work to cheap local inference,
docs/design/config-scaling-deployment-and-trust.md). The harness owns the
control loop (run_crew); these fields pin the workers + budgets.
[crews.coder]
planner = "planner" # → [loadouts.planner] (required)
navigator = "navigator" # → [loadouts.navigator]
triage = "triage" # → [loadouts.triage]
loop = "patch-revise" # control program (default)
[crews.coder.budgets]
max_attempts = 4Fields§
§planner: StringPlanner/editor role — must name a [loadouts.<name>]. Required (a crew
with no planner can’t make edits).
Repo-navigator role — names a [loadouts.<name>]. Optional.
triage: Option<String>Test-triage role — names a [loadouts.<name>]. Optional.
loop_program: Option<String>Control program (e.g. "patch-revise"). Omitted ⇒ the default loop.
role_timeout_secs: Option<u64>Per-role dispatch wall-clock bound, seconds (#698). Omitted ⇒ the
env/default (NEWT_ROLE_TIMEOUT_SECS → 600s). Widen it here for a slow
loadout instead of relying on the env var.
test: Option<String>Verification command override (e.g. "just check"). Omitted ⇒ inferred
from the repo (justfile → just check, Cargo → cargo test, …).
budgets: Option<CrewBudgets>Budgets / safety gates for the control loop.
Implementations§
Source§impl Crew
impl Crew
Sourcepub fn validate(&self, cfg: &Config) -> Result<(), String>
pub fn validate(&self, cfg: &Config) -> Result<(), String>
Validate the crew’s role references against cfg: each named role
(planner/navigator/triage) must name a known [loadouts.<name>],
and that loadout must itself validate (so a crew transitively checks the
whole crew → loadout → {backend,bundle,profile} chain). A dangling role
is a hard error — a crew that silently dropped a worker would be a false
claim.
§Errors
The first dangling or invalid role reference, as a message.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Crew
impl<'de> Deserialize<'de> for Crew
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Crew
impl StructuralPartialEq for Crew
Auto Trait Implementations§
impl Freeze for Crew
impl RefUnwindSafe for Crew
impl Send for Crew
impl Sync for Crew
impl Unpin for Crew
impl UnsafeUnpin for Crew
impl UnwindSafe for Crew
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more