mod agent;
mod agent_loop;
mod clock;
mod compaction;
mod home;
mod runtime;
pub use agent::{Agent, AsToolOptionsFn, Completion, Guardrail, Spec, VerifyFn, harness, new};
pub use agent_loop::{Loop, Outcome, RunOpts, all_todos_done, loop_unsupported};
pub use clock::{Clock, SystemClock};
pub use compaction::{
CompactInfo, CompactorOptions, CountTokensFn, OnCompactFn, SummarizeFn, compactor,
estimate_tokens,
};
pub use home::{
BOOTSTRAP_ORDER, FromDirOptions, HEARTBEAT_OK, OnBeatFn, StartOptions, StartedAgent,
compose_soul, from_dir, memory_tool, start_agent,
};
pub use runtime::{
Budget, CloseOptions, Def, Handle, HandleView, InboxItem, LlmOptions, OnCloseFn, OnSpawnFn,
Options, PostResult, REASON_BUDGET, REASON_CLOSED, REASON_ERROR, REASON_INTERRUPTED, Runtime,
State, TaskResult, UNLIMITED,
};
pub const TASK_STATUS_DONE: &str = "done";
pub const TASK_STATUS_PENDING: &str = "pending";
pub const TASK_STATUS_INCOMPLETE: &str = "incomplete";
pub const TASK_STATUS_INTERRUPTED: &str = "interrupted";
pub const TASK_STATUS_CLOSED: &str = "closed";
pub const TASK_STATUS_TIMEOUT: &str = "timeout";
pub const TASK_STATUS_ERROR: &str = "error";
pub const LIMIT_MAX_TURNS: &str = "maxTurns";
pub const LIMIT_MAX_TOKENS: &str = "maxTokens";
pub const LIMIT_MAX_TOOL_CALLS: &str = "maxToolCalls";
pub const LIMIT_MAX_WALL_MS: &str = "maxWallMs";
pub const LIMIT_MAX_CHILDREN: &str = "maxChildren";
pub const LIMIT_MAX_CONCURRENT: &str = "maxConcurrent";
pub const LIMIT_MAX_DEPTH: &str = "maxDepth";
pub const LIMIT_COMPLETION: &str = "completion";
pub const LIMIT_TIMEOUT: &str = "timeout";