Skip to main content

Config

Struct Config 

Source
pub struct Config {
Show 21 fields pub mode: OperatingMode, pub x_api: XApiConfig, pub auth: AuthConfig, pub business: BusinessProfile, pub scoring: ScoringConfig, pub limits: LimitsConfig, pub intervals: IntervalsConfig, pub llm: LlmConfig, pub targets: TargetsConfig, pub approval_mode: bool, pub max_batch_approve: usize, pub server: ServerConfig, pub storage: StorageConfig, pub logging: LoggingConfig, pub schedule: ScheduleConfig, pub mcp_policy: McpPolicyConfig, pub circuit_breaker: CircuitBreakerConfig, pub content_sources: ContentSourcesConfig, pub deployment_mode: DeploymentMode, pub connectors: ConnectorConfig, pub embedding: Option<EmbeddingConfig>,
}
Expand description

Top-level configuration for the Tuitbot agent.

Fields§

§mode: OperatingMode

Operating mode: “autopilot” (default) or “composer”.

§x_api: XApiConfig

X API credentials.

§auth: AuthConfig

Authentication settings.

§business: BusinessProfile

Business profile for content targeting.

§scoring: ScoringConfig

Scoring engine weights and threshold.

§limits: LimitsConfig

Safety limits for API actions.

§intervals: IntervalsConfig

Automation interval settings.

§llm: LlmConfig

LLM provider configuration.

§targets: TargetsConfig

Target account monitoring configuration.

§approval_mode: bool

Enable approval mode: queue posts for human review instead of posting.

§max_batch_approve: usize

Maximum items that can be batch-approved at once.

§server: ServerConfig

Server binding configuration for LAN access.

§storage: StorageConfig

Data storage configuration.

§logging: LoggingConfig

Logging and observability settings.

§schedule: ScheduleConfig

Active hours schedule for posting.

§mcp_policy: McpPolicyConfig

MCP mutation policy enforcement.

§circuit_breaker: CircuitBreakerConfig

Circuit breaker for X API rate-limit protection.

§content_sources: ContentSourcesConfig

Content source configuration for the Watchtower.

§deployment_mode: DeploymentMode

Deployment mode: desktop (default), self_host, or cloud. Controls which source types and features are available.

§connectors: ConnectorConfig

Connector configuration for remote source OAuth flows.

§embedding: Option<EmbeddingConfig>

Embedding provider configuration for semantic search indexing. When None, semantic indexing is disabled.

Implementations§

Source§

impl Config

Source

pub fn profile_completeness(&self) -> ProfileCompleteness

Compute profile completeness across all enrichment stages.

Source§

impl Config

Source

pub fn validate_minimum(&self) -> Result<(), Vec<ConfigError>>

Validate the minimum configuration required for progressive activation.

Only checks business profile fields and structural requirements. Skips LLM API key, X API client_id, and other advanced fields that can be configured later via Settings.

Source

pub fn validate(&self) -> Result<(), Vec<ConfigError>>

Validate the configuration, returning all errors found (not just the first).

Source§

impl Config

Source

pub fn load(config_path: Option<&str>) -> Result<Config, ConfigError>

Load configuration from a TOML file with environment variable overrides.

The loading sequence:

  1. Determine config file path (argument > TUITBOT_CONFIG env var > default)
  2. Parse TOML file (or use defaults if default path doesn’t exist)
  3. Apply environment variable overrides
Source

pub fn load_and_validate( config_path: Option<&str>, ) -> Result<Config, Vec<ConfigError>>

Load configuration and validate it, returning all validation errors at once.

Source

pub fn effective_approval_mode(&self) -> bool

Returns true if approval mode is effectively enabled.

In composer mode, approval mode is implicitly enabled for autonomous loops so the user controls all automated posting. Manual compose actions from the dashboard respect the explicit approval_mode setting — use Config::approval_mode directly for user-initiated flows.

Source

pub fn is_composer_mode(&self) -> bool

Returns true if the agent is in composer mode.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

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

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

impl Default for Config

Source§

fn default() -> Config

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

impl<'de> Deserialize<'de> for Config

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Config

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,