kcode_kennedy_orchestration/
lib.rs1#![forbid(unsafe_code)]
2
3mod prompts;
4mod services;
5mod worker;
6
7use std::{path::PathBuf, sync::Arc};
8
9pub use kcode_kennedy_sessions::{AgentMode, RuntimeModel, Service as SessionService, Session};
10pub use prompts::Manuals;
11pub use services::{Api, ApiError, LocalServices, data_url, telegram_caption_for};
12pub use worker::{Orchestrator, SessionRuntime, TurnCompletion, persist_record};
13
14#[derive(Clone, Debug)]
15pub struct Config {
16 pub system_prompts_directory: PathBuf,
17 pub user_root_node_id: String,
18 pub kennedy_root_node_id: String,
19 pub telegram_max_media_bytes: usize,
20 pub runtime_model: RuntimeModel,
21}
22
23pub fn build(config: Config, api: Api, sessions: SessionService) -> Arc<Orchestrator> {
24 Arc::new(Orchestrator::new(config, api, sessions))
25}
26
27pub async fn run(worker: Arc<Orchestrator>) -> anyhow::Result<()> {
28 worker.run().await
29}