Skip to main content

SolverConfig

Struct SolverConfig 

Source
pub struct SolverConfig {
Show 20 fields pub guess_probability: f32, pub follow_up_probability: f32, pub context_sensitivity: f32, pub questioning_rigor: f32, pub temperature: f32, pub max_decomposition_depth: u8, pub recursion_mode: RecursionMode, pub selection_mode: SelectionMode, pub skill_mode: SkillMode, pub agent_mode: bool, pub diagnostic_mode: bool, pub offline: bool, pub cache_ttl_seconds: u64, pub definition_fusion_by_default: bool, pub associative_project_promotion: bool, pub execution_surface: ExecutionSurface, pub blueprint_composition: BlueprintComposition, pub probability_policy: ProbabilityDecisionPolicy, pub forced_response_language: Option<&'static str>, pub compute_budget: u32,
}
Expand description

Runtime configuration for the universal solver.

These knobs control the universal loop’s tradeoffs and let the same engine be tuned per surface (CLI, HTTP, Telegram) or per user. The default configuration matches the bounded-chat, offline-friendly stance from GOALS.md so the engine is safe to embed without further setup.

Fields§

§guess_probability: f32

0.0 = always ask a clarifying question, 1.0 = always guess.

When this is high the engine commits to its best interpretation of the prompt, shows that interpretation, translates the claim into the chosen formal system, and executes the proof. When it is low the engine stays literal and avoids speculative reductions.

§follow_up_probability: f32

0.0 = stay action-only, 1.0 = always invite the user to refine the proof inputs before final execution.

Independent of guess_probability. When this is high the proof engine appends a “Clarifying questions” section listing every input the user still has to confirm (axiom set, definitions, proof technique) so the final research execution is unambiguous.

§context_sensitivity: f32

0.0 = ignore surrounding context, 1.0 = use all available context.

§questioning_rigor: f32

0.0 = accept any phrasing, 1.0 = demand fully formal phrasing.

§temperature: f32

0.0 = deterministic projection, 1.0 = allow maximum variation.

§max_decomposition_depth: u8

Hard upper bound on recursive sub-impulse expansion.

§recursion_mode: RecursionMode

Which directions of the meta core’s recursive reasoning are traced (issue #559): Down (default) reasons about the downward decomposition only and reproduces the pre-knob trace exactly; Up/Both additionally trace the upward construction pass. Trace-only either way (R13).

§selection_mode: SelectionMode

Whether the meta core records the method-selection trace (issue #559, R339): Off (default) records nothing; Record names the method the registry resolves for every atomic leaf, or marks the leaf unresolved. The registry is the sole dispatch authority (R344), so there is no legacy baseline to compare against. Trace-only in either mode (R13).

§skill_mode: SkillMode

Whether the meta core records the skill-accumulation ledger (issue #559, R342): Off (default) records nothing; Accumulate distills each satisfied need into a proposed reusable skill and each blocked need into a curriculum item. Proposal-only — no skill is auto-promoted without review — and trace-only either way (R13/C3).

§agent_mode: bool

Whether agent mode is opted in. Off by default.

§diagnostic_mode: bool

Whether diagnostic links are echoed inside the user-facing reply.

§offline: bool

When true, the solver must not perform any external lookup.

§cache_ttl_seconds: u64

Time-to-live for cached external sources, in seconds.

§definition_fusion_by_default: bool

When true, plain definition prompts such as “What is IIR?” use cross-language definition fusion before falling back to concept lookup.

§associative_project_promotion: bool

When true, repository/project questions prefer known projects from Link Assistant, Link Foundation, and LinksPlatform before showing the generic multi-host repository lookup path.

§execution_surface: ExecutionSurface

Embedding surface used for environment-aware self-description.

§blueprint_composition: BlueprintComposition

How composite-program blueprints (issue #340) project their annotated recipe template into the program shown to the user.

§probability_policy: ProbabilityDecisionPolicy

Interpretable decision-policy knobs (CU/TU/TC/SS) from arXiv:2605.00940 that govern how symbolic probability evidence ranks candidates. The default is the paper’s recommended baseline, which keeps the additive exact-evidence behaviour the solver shipped before the policy existed, so every existing surface is unaffected unless it opts in.

§forced_response_language: Option<&'static str>

Response language forced onto every localizable handler for one replay (issue #556). None is the normal case: each handler renders in the language detected from the prompt. When a response-language follow-up (“I do not understand English, write in Russian”) replays the previous request through the whole solver, it sets this to the requested ISO 639-1 code so every answer family that can localize — concept lookup, repository/project lookup, … — re-renders in that language rather than only a single hardcoded handler. It also serves as the recursion guard: a solve whose config already carries a forced language never fires the follow-up again.

§compute_budget: u32

Compute budget for the step-7 random/evolutionary search stage (issue #662), counted in candidate evaluations. When reuse and rule reasoning produce no candidate for a recognized search problem, the solver spends up to this many evaluations combining known parts against the generated tests before falling back to the honest unknown-reasoning reply. 0 disables the search entirely; the default is intentionally small. The stream is seeded from the impulse content hash, so the stage stays deterministic for a given config per the VISION.md contract.

Implementations§

Source§

impl SolverConfig

Source

pub fn from_env() -> Self

Build a SolverConfig using the documented environment overrides.

The parsing body lives in crate::solver_helpers::config_from_env to keep this module under the 1000-line cap enforced by scripts/check-file-size.rs.

Trait Implementations§

Source§

impl Clone for SolverConfig

Source§

fn clone(&self) -> SolverConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SolverConfig

Source§

impl Debug for SolverConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SolverConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for SolverConfig

Source§

fn eq(&self, other: &SolverConfig) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SolverConfig

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more