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;
22pub mod voice_turn;
23
24pub use agent_basics::entries as agent_basic_entries;
25pub use agent_capability::AgentCapabilityRegistry;
26pub use builtin_agents::{
27    agent_metadata, format_capability_payload, register_builtins, BuiltinAgent,
28    CapabilityPayloadError, BUILTIN_AGENTS,
29};
30pub use authz::{
31    AllowAllPermissions, AuthzDecision, AuthzPipeline, AuthzResult, AuthzStage, PermissionHandler,
32    Restriction,
33};
34pub use cache::ResultCache;
35pub use capabilities::CapabilitySet;
36pub use checkpoint::Checkpoint;
37pub use executor::{
38    format_tool_result, CostBudget, FailedActionSummary, ReplanCallback, ReplanConfig,
39    ReplanContext, Runtime, ToolExecutor, CANCELED_PREFIX,
40};
41pub use mcp::{McpServer, McpServerConfig, McpToolExecutor, McpToolInfo};
42pub use rate_limit::{RateLimit, RateLimiter};
43pub use registry::{ToolEntry, ToolPermission, ToolRegistry, ToolSource};
44pub use subprocess::{SubprocessTool, SubprocessToolExecutor};
45pub use voice_turn::{
46    dispatch_voice_turn, dispatch_voice_turn_sidecar_only,
47    dispatch_voice_turn_sidecar_only_with_classifier,
48    dispatch_voice_turn_sidecar_only_with_telemetry, dispatch_voice_turn_with_telemetry,
49    DirectDataFetcher, SidecarResult, VoiceTelemetry, VoiceTurnControl, VoiceTurnError,
50    VoiceTurnHandle,
51};
52
53#[cfg(test)]
54mod tests;