use std::path::PathBuf;
use std::time::Duration;
use locode_host::InstructionsConfig;
use locode_provider::{CacheHint, SamplingArgs};
#[derive(Debug, Clone)]
pub struct EngineConfig {
pub session_id: String,
pub harness: String,
pub api_schema: String,
pub model: String,
pub cwd: PathBuf,
pub workspace_root: PathBuf,
pub max_turns: Option<u32>,
pub resample_retries: u32,
pub resample_backoff: Duration,
pub sampling_args: SamplingArgs,
pub cache_hint: CacheHint,
pub streaming: bool,
pub instructions: InstructionsConfig,
}
impl Default for EngineConfig {
fn default() -> Self {
Self {
session_id: String::new(),
harness: String::new(),
api_schema: String::new(),
model: String::new(),
cwd: PathBuf::from("."),
workspace_root: PathBuf::from("."),
max_turns: None,
resample_retries: 2,
resample_backoff: Duration::from_millis(500),
sampling_args: SamplingArgs::default(),
cache_hint: CacheHint::default(),
streaming: false,
instructions: InstructionsConfig::default(),
}
}
}