Skip to main content

brainwires_permission/
lib.rs

1#![deny(missing_docs)]
2//! Permission system for agent capability management
3//!
4//! This crate provides a comprehensive capability-based permission system for
5//! brainwires agents, including:
6//!
7//! - **Capabilities**: Granular control over filesystem, tools, network, git, and spawning
8//! - **Profiles**: Pre-defined capability sets (read_only, standard_dev, full_access)
9//! - **Configuration**: TOML-based configuration via ~/.brainwires/permissions.toml
10//! - **Policies**: Rule-based enforcement with conditions and actions
11//! - **Audit**: Event logging with querying and statistics
12//! - **Trust**: Trust levels, violation tracking, and trust factor management
13
14pub mod approval;
15pub mod audit;
16pub mod config;
17pub mod policy;
18pub mod profiles;
19pub mod trust;
20pub mod types;
21
22// Re-export main types for convenience
23pub use config::PermissionsConfig;
24#[cfg(feature = "native")]
25pub use config::{default_permissions_path, ensure_permissions_dir};
26pub use profiles::CapabilityProfile;
27pub use types::{
28    AgentCapabilities, FilesystemCapabilities, GitCapabilities, GitOperation, NetworkCapabilities,
29    PathPattern, ResourceQuotas, SpawningCapabilities, ToolCapabilities, ToolCategory,
30};
31
32// Re-export policy types
33pub use policy::{
34    EnforcementMode, Policy, PolicyAction, PolicyCondition, PolicyDecision, PolicyEngine,
35    PolicyRequest,
36};
37
38// Re-export audit types
39pub use audit::{
40    ActionOutcome, AuditEvent, AuditEventType, AuditLogger, AuditQuery, AuditStatistics,
41    FeedbackPolarity, FeedbackSignal,
42};
43
44// Anomaly detection lives in `brainwires-telemetry::anomaly`. Depend on
45// brainwires-telemetry directly:
46//   use brainwires_telemetry::anomaly::{AnomalyConfig, AnomalyDetector, ...};
47
48// Re-export trust types
49pub use trust::{TrustFactor, TrustLevel, TrustManager, TrustStatistics, ViolationSeverity};
50
51// Re-export approval types
52pub use approval::{
53    ApprovalAction, ApprovalDetails, ApprovalRequest, ApprovalResponse, ApprovalSeverity,
54};