Skip to main content

car_engine/
lib.rs

1//! Core runtime engine for Common Agent Runtime.
2//!
3//! The runtime loop:
4//! 1. Receive a proposal (batch of actions from a model)
5//! 2. Build a DAG from state_dependencies
6//! 3. Execute each level (concurrent if no ABORT actions, sequential otherwise)
7//! 4. Validate, execute with idempotency + timeout + retry, commit
8//! 5. On abort: rollback state to pre-proposal snapshot
9
10pub mod agent_basics;
11pub mod agent_capability;
12pub mod authz;
13pub mod builtin_agents;
14pub mod cache;
15pub mod capabilities;
16pub mod checkpoint;
17mod executor;
18pub mod mcp;
19pub mod rate_limit;
20pub mod registry;
21pub mod subprocess;
22
23pub use agent_basics::entries as agent_basic_entries;
24pub use agent_capability::AgentCapabilityRegistry;
25pub use builtin_agents::{
26    agent_metadata, format_capability_payload, register_builtins, BuiltinAgent,
27    CapabilityPayloadError, BUILTIN_AGENTS,
28};
29pub use authz::{
30    AllowAllPermissions, AuthzDecision, AuthzPipeline, AuthzResult, AuthzStage, PermissionHandler,
31    Restriction,
32};
33pub use cache::ResultCache;
34pub use capabilities::CapabilitySet;
35pub use checkpoint::Checkpoint;
36pub use executor::{
37    format_tool_result, CostBudget, FailedActionSummary, ReplanCallback, ReplanConfig,
38    ReplanContext, Runtime, ToolExecutor, CANCELED_PREFIX,
39};
40pub use mcp::{McpServer, McpServerConfig, McpToolExecutor, McpToolInfo};
41pub use rate_limit::{RateLimit, RateLimiter};
42pub use registry::{ToolEntry, ToolPermission, ToolRegistry, ToolSource};
43pub use subprocess::{SubprocessTool, SubprocessToolExecutor};
44
45#[cfg(test)]
46mod tests;