Skip to main content

fluers_runtime/
lib.rs

1//! # fluers-runtime
2//!
3//! The harness layer — Flue's own contribution on top of the agent core.
4//!
5//! This is where the bulk of a faithful port lives:
6//!
7//! - [`agent`] — `define_agent` / `AgentProfile` (model + tools + skills +
8//!   sandbox + instructions), mirroring `@flue/runtime`'s `defineAgent`.
9//! - `env` — the `SessionEnv` trait: the filesystem +
10//!   process abstraction that every sandbox backend implements.
11//! - [`sandbox`] — virtual / local / remote sandbox backends.
12//! - [`session`] — session management, event store, dispatch/invoke.
13//! - [`runner`] — session-aware coordination and persistence after each turn.
14//! - [`skill`] — `SKILL.md` parsing and packaged-skill directories.
15//! - [`tool`] — the built-in tools: `read`, `write`, `edit`, `bash`, `grep`,
16//!   `glob` (with Flue's byte/line limits).
17//! - [`event`] — the event stream observers subscribe to.
18
19#![forbid(unsafe_code)]
20#![warn(missing_docs)]
21// Test code may use unwrap/expect/panic for clarity (project policy).
22#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
23
24pub mod agent;
25pub mod env;
26pub mod error;
27pub mod event;
28pub mod json_file_adapter;
29pub mod local_env;
30pub mod persistence;
31pub mod runner;
32pub mod sandbox;
33pub mod session;
34pub mod skill;
35#[cfg(test)]
36mod skill_tests;
37pub mod tool;
38
39pub use agent::{define_agent, Agent, AgentProfile, AgentSpec};
40pub use env::{Limits, SessionEnv};
41pub use error::{RuntimeError, RuntimeResult};
42pub use event::{Event, EventBus};
43pub use json_file_adapter::JsonFileAdapter;
44pub use local_env::LocalSessionEnv;
45pub use persistence::PersistenceAdapter;
46pub use runner::SessionRunner;
47pub use sandbox::{local, Sandbox};
48pub use session::{Session, SessionId, SessionState, SessionStore};
49pub use skill::Skill;
50pub use tool::mvp_tools;