Expand description
Exact named-Fleet schema — fully resolved members, no late model choice.
A named Fleet is a saved, reusable team. Two forms of fleets/<name>.toml
exist and both keep working:
- Legacy (
[roles]role → AgentProfile id). Seecrate::NamedFleet. Legacy files declare noschemakey, which is what makes the legacy form explicitly detectable rather than inferred from a missing table. - Exact (
schema = "exact"). Every member owns a stable member id/role, an exact configured provider id, an exact model id, a requested reasoning policy, and a permission ceiling.
The exact form deliberately has no late-binding selectors. inherit,
faster/fast siblings, model-strength classes, and model = "auto" are
rejected at parse time, not silently resolved later — a Fleet the operator
saved is the Fleet that runs. Users switch Fleets; models never switch
themselves.
The Adaptive Reasoning Router is not a Fleet member. A Fleet says who
runs; a Router is a separate, optional, reusable service that decides only
how hard an already frozen route thinks. An exact Fleet points at one by
name — reasoning_router = "luna-low" — and the same saved profile may be
referenced by any number of Fleets. See crate::reasoning_router.
The prototype form ([[members]] with kind = "router") still parses, is
labelled legacy inline, and normalizes into the same captured service.
It is retained for compatibility only; it is not a second runtime concept.
Structs§
- Exact
Fleet - A parsed exact Fleet.
- Exact
Member - A dispatchable exact Fleet member.
- Frozen
Route - The exact provider/model a member is frozen to before any reasoning resolution runs. Nothing downstream may change these two strings.
- Permission
Ceiling - The most a member is allowed to do. This is a ceiling, never a grant:
PermissionCeiling::clamp_tocan only ever narrow against the active session posture, so a saved Fleet can never raise live authority. - Router
Member - The legacy inline Router form: a
[[members]]entry withkind = "router".
Enums§
- Exact
Fleet Error - Reasoning
Tier - A concrete reasoning tier. Unlike
RequestedReasoningthis has noauto— it is what a request actually runs at. - Requested
Reasoning - The reasoning policy a member requests.
Autois an explicit per-member opt-in, never a global mode. - Shell
Ceiling - Shell posture, ordered most → least restrictive so
min_withis the safe side of a clamp.
Constants§
- EXACT_
FLEET_ SCHEMA_ KIND - Wire value of the
schemakey that selects the exact form. - EXACT_
FLEET_ SCHEMA_ REVISION - Current revision of the exact schema.
- LEGACY_
FLEET_ SCHEMA_ KIND - Wire value recorded for files in the pre-exact role→profile form.
- ROLE_
ALIASES - Public role names that were renamed, and what they are now called.
- ROUTER_
MEMBER_ KIND - Member kind that selects the Fleet Router.
- ROUTER_
PUBLIC_ ID - The Router’s public id. A Router is addressed by this literal everywhere a
receipt, decision, or error names it, whatever the file called the member.
No worker may claim it — see
ExactFleetError::ReservedRouterIdentity. - ROUTER_
PUBLIC_ ROLE - The Router’s public role. Identical to
ROUTER_PUBLIC_ID: a Router has exactly one identity and it is not a dispatchable role. - WORKER_
MEMBER_ KIND - Member kind for an ordinary dispatchable worker.
Functions§
- canonical_
member_ key - The case-folded key a member id compares under.
- canonical_
role_ key - The canonical, case-folded key a role compares under.
- declared_
schema_ kind - Peek at a fleet document’s
schemakey without committing to a form.