use harness::{Harness, HarnessError, OpenHarness, RunEvent, RunMode, RunRequest, RunTuning};
fn main() -> Result<(), HarnessError> {
let model = OpenHarness::ollama();
let (_handle, rx) = model.run_channel(RunRequest {
run_id: "demo".into(),
prompt: "In one sentence, what is an OpenAI-compatible API?".into(),
cwd: None,
mode: RunMode::Ask, tuning: RunTuning { model: Some("qwen2.5-coder".into()), ..Default::default() },
resume: None,
attachments: Vec::new(),
})?;
for ev in rx {
match ev {
RunEvent::Text { delta, .. } => print!("{delta}"),
RunEvent::Thinking { delta, .. } => eprint!("{delta}"),
RunEvent::ToolStart { title, .. } => eprintln!("\n[tool] {title}"),
RunEvent::Error { message, .. } => eprintln!("\n[error] {message}"),
RunEvent::Exited { .. } => break,
_ => {}
}
}
Ok(())
}