Skip to main content

hessra_cap/
lib.rs

1//! # Hessra Capability Engine
2//!
3//! Convenience crate that re-exports the Hessra capability engine with the
4//! default CList policy backend.
5//!
6//! For custom policy backends, depend on `hessra-cap-engine` directly.
7//!
8//! # Quick Start
9//!
10//! ```rust,no_run
11//! use hessra_cap::{CapabilityEngine, CListPolicy, ObjectId, Operation, SessionConfig};
12//!
13//! // Load policy from TOML
14//! let policy = CListPolicy::from_toml(r#"
15//!     [[objects]]
16//!     id = "agent:my-agent"
17//!     capabilities = [
18//!         { target = "tool:web-search", operations = ["invoke"] },
19//!     ]
20//! "#).expect("Failed to parse policy");
21//!
22//! // Create engine with generated keys (local mode)
23//! let engine = CapabilityEngine::with_generated_keys(policy);
24//!
25//! // Mint a context for the agent session
26//! let context = engine.mint_context(
27//!     &ObjectId::new("agent:my-agent"),
28//!     SessionConfig::default(),
29//! ).expect("Failed to mint context");
30//!
31//! // Mint a capability token
32//! let result = engine.mint_capability(
33//!     &ObjectId::new("agent:my-agent"),
34//!     &ObjectId::new("tool:web-search"),
35//!     &Operation::new("invoke"),
36//!     Some(&context),
37//! ).expect("Failed to mint capability");
38//!
39//! // Verify the capability token
40//! engine.verify_capability(
41//!     &result.token,
42//!     &ObjectId::new("tool:web-search"),
43//!     &Operation::new("invoke"),
44//! ).expect("Verification failed");
45//! ```
46
47// Re-export everything from the engine crate
48pub use hessra_cap_engine::*;
49
50// Re-export the default policy backend
51pub use hessra_cap_policy::{CListPolicy, PolicyConfig, PolicyConfigError};