pub struct Settings {Show 15 fields
pub allow_cloud_ai: bool,
pub allow_local_ai: bool,
pub local_ai_base_url: Option<String>,
pub llama_server_binary: Option<String>,
pub llama_server_model: Option<String>,
pub llama_params: HashMap<String, LlamaParams>,
pub local_ai_models: Vec<String>,
pub providers_enabled: HashMap<String, bool>,
pub theme: String,
pub confirm_destructive: bool,
pub scheduler_enabled: bool,
pub scheduler_poll_secs: u64,
pub max_agentic_iterations: u32,
pub max_agentic_seconds: u32,
pub max_agentic_tokens: u32,
}Fields§
§allow_cloud_ai: boolMaster toggle for cloud-AI nodes. Defaults to false - Flow’s posture is zero-egress local inference. Cloud AI is an explicit, opt-in carve-out (see docs/adr/0004-cloud-ai-carve-out.md).
allow_local_ai: boolMaster toggle for the local OpenAI-compatible provider (on-device
inference server: Ollama / LM Studio / llama.cpp). Defaults to true -
a localhost call is not network egress, so it stays usable even with
allow_cloud_ai off. The local provider is still subject to the
per-provider providers_enabled map.
local_ai_base_url: Option<String>Base address of the local OpenAI-compatible server. Stored as an
origin (e.g. http://127.0.0.1:1234); the runtime appends
/v1/chat/completions (and /v1/models for discovery). A fully
qualified URL is also accepted and normalised. Defaults to LM
Studio’s address.
llama_server_binary: Option<String>Path to the llama-server (llama.cpp) binary flow-studio launches to
host an LLM locally. None until the user configures it (or a bundled
sidecar is added in a later phase).
llama_server_model: Option<String>Path to the LLM the managed server should load. Set by the Model Hub when a downloaded LLM is selected as active.
llama_params: HashMap<String, LlamaParams>Per-model llama-server load parameters (the Model Hub “Load settings”
panel), keyed by catalog model id. Each model remembers its own config.
local_ai_models: Vec<String>Model ids discovered from the local server’s /v1/models, cached so
the node inspector’s model dropdown can offer them without a live
probe. Populated by the Settings “Test connection” action; empty
until then (the provider’s static default is used as a fallback).
providers_enabled: HashMap<String, bool>Per-provider enable map. Even when allow_cloud_ai is true, individual
providers can be disabled here.
theme: StringUI theme. "dark", "light", or "dark-projector" - passed to
Precision’s setTheme at startup and on toggle. Defaults to "dark"
to match Flow Studio’s design language.
confirm_destructive: boolPer-step destructive-action confirmation gate (roadmap E1). When on,
a run pauses before any node that performs a destructive operation
(file delete, rm, git push, …) and asks the user to confirm or
cancel. Defaults to true - a safe default the user can opt out of.
scheduler_enabled: boolMaster switch for the background scheduler. Defaults on so persisted timers keep firing unless the user explicitly pauses scheduling.
scheduler_poll_secs: u64Poll interval in seconds for desktop/server scheduler loops.
max_agentic_iterations: u32Safety cap on auto-accepted fixes in one autonomous run - the single
budget shared by the backend convergence loop (agentic_run_loop) and
the frontend monitor auto-fix loop, so neither path hardcodes its own
(roadmap E1). Defaults to crate::MAX_AGENTIC_ITERATIONS.
max_agentic_seconds: u32Wall-clock ceiling (seconds) for one autonomous convergence run
(agentic_run_loop); 0 = unlimited (only the iteration cap bounds
the loop). The loop stops starting new iterations once this elapses
(roadmap E1 autonomous run budgets).
max_agentic_tokens: u32Cumulative token ceiling for one autonomous convergence run - the sum of
input+output tokens across the executed flows’ AI nodes; 0 = unlimited.
The loop stops starting new iterations once it’s exceeded (roadmap E1
autonomous run budgets).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Settings
impl<'de> Deserialize<'de> for Settings
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>,
Auto Trait Implementations§
impl Freeze for Settings
impl RefUnwindSafe for Settings
impl Send for Settings
impl Sync for Settings
impl Unpin for Settings
impl UnsafeUnpin for Settings
impl UnwindSafe for Settings
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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