Skip to main content

ucp_agent/
lib.rs

1//! Agent Graph Traversal System for UCP Knowledge Graphs
2//!
3//! This crate provides a powerful, flexible graph traversal system enabling AI agents
4//! to navigate knowledge graphs, search semantically, manage context windows, and
5//! coordinate parallel exploration.
6//!
7//! # Features
8//!
9//! - **UCL Commands**: Traversal commands (GOTO, EXPAND, FOLLOW, etc.) and context
10//!   commands (CTX ADD, CTX REMOVE, etc.) for agent-friendly graph navigation.
11//! - **Session Management**: Track agent position, history, and state across operations.
12//! - **RAG Integration**: Pluggable semantic search providers for knowledge retrieval.
13//! - **Safety Mechanisms**: Limits, circuit breakers, and depth guards for robust operation.
14//! - **Observability**: Comprehensive metrics and telemetry for monitoring.
15//!
16//! # Example
17//!
18//! ```ignore
19//! use ucp_agent::{AgentTraversal, SessionConfig};
20//! use ucm_core::Document;
21//!
22//! // Create traversal system
23//! let doc = Document::new();
24//! let traversal = AgentTraversal::new(doc);
25//!
26//! // Create a session
27//! let session_id = traversal.create_session(SessionConfig::default())?;
28//!
29//! // Execute UCL commands
30//! traversal.execute_ucl(&session_id, "GOTO blk_abc123")?;
31//! traversal.execute_ucl(&session_id, "EXPAND blk_abc123 DOWN DEPTH=3")?;
32//! traversal.execute_ucl(&session_id, "CTX ADD RESULTS")?;
33//! ```
34
35pub mod cursor;
36pub mod error;
37pub mod executor;
38pub mod metrics;
39pub mod operations;
40pub mod rag;
41pub mod safety;
42pub mod session;
43
44// Re-exports
45pub use cursor::{CursorNeighborhood, TraversalCursor, ViewMode};
46pub use error::{AgentError, AgentSessionId, Result};
47pub use executor::{execute_ucl, ExecutionResult, UclExecutor};
48pub use metrics::{MetricsSnapshot, OperationMetrics, SessionMetrics};
49pub use operations::{
50    AgentTraversal, BlockView, ExpandDirection, ExpandOptions, ExpansionResult, FindResult,
51    NavigationResult, NeighborhoodView, SearchOptions,
52};
53pub use rag::{
54    MockRagProvider, NullRagProvider, RagCapabilities, RagMatch, RagProvider, RagSearchOptions,
55    RagSearchResults,
56};
57pub use safety::{
58    BudgetTracker, CircuitBreaker, CircuitState, DepthGuard, GlobalLimits, OperationBudget,
59    SessionLimits,
60};
61pub use session::{AgentCapabilities, AgentSession, SessionConfig, SessionInfo, SessionState};
62
63#[cfg(test)]
64mod tests {
65    use super::*;
66
67    #[test]
68    fn test_crate_exports() {
69        // Verify key types are exported
70        let _: AgentSessionId = AgentSessionId::new();
71        let _: SessionLimits = SessionLimits::default();
72        let _: GlobalLimits = GlobalLimits::default();
73        let _: ViewMode = ViewMode::default();
74    }
75}