//! Configuration for skald-core consumers. //! //! Configs are passed in explicitly by the calling binary, not loaded //! from disk here — the lib stays env-agnostic. (skald-the-binary //! reads env vars + maps them into these structs.) use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ForgeConfig { /// Base URL of the clawdforge HTTP service. Defaults to /// `http://clawdforge.sulkta.lan:8800` in production; override /// for tests via env. pub base_url: String, /// App-level bearer token. Resolved by the binary from /// `CLAWDFORGE_TOKEN`; should never be logged or `Display`ed. pub app_token: String, /// Model alias passed to clawdforge → `claude -p --model`. Skald /// is opinionated: always opus max effort. Default reflects that. pub model: String, } impl Default for ForgeConfig { fn default() -> Self { Self { base_url: "http://clawdforge.sulkta.lan:8800".into(), app_token: String::new(), model: "opus".into(), } } }