Skip to main content

terraphim_sessions/
lib.rs

1//! Terraphim Sessions - AI Coding Assistant History Management
2//!
3//! This crate provides session management for AI coding assistant history,
4//! supporting multiple sources including Claude Code and Cursor IDE.
5//!
6//! ## Features
7//!
8//! - `terraphim-session-analyzer`: Enable TSA integration for enhanced Claude Code parsing
9//! - `tsa-full`: TSA with Cursor connector support
10//! - `enrichment`: Enable knowledge graph enrichment via terraphim
11//! - `full`: All features enabled
12//!
13//! ## Example Usage
14//!
15//! ```rust,ignore
16//! use terraphim_sessions::{SessionService, ConnectorRegistry};
17//!
18//! #[tokio::main]
19//! async fn main() -> anyhow::Result<()> {
20//!     let service = SessionService::new();
21//!     let sessions = service.list_sessions().await?;
22//!
23//!     for session in sessions {
24//!         println!("{}: {} messages", session.id, session.messages.len());
25//!     }
26//!     Ok(())
27//! }
28//! ```
29
30pub mod connector;
31pub mod model;
32pub mod service;
33
34#[cfg(feature = "terraphim-session-analyzer")]
35pub mod cla;
36
37#[cfg(feature = "enrichment")]
38pub mod enrichment;
39
40#[cfg(feature = "search-index")]
41pub mod search;
42
43// Re-exports for convenience
44pub use connector::{ConnectorRegistry, ConnectorStatus, ImportOptions, SessionConnector};
45pub use model::{
46    ContentBlock, FileAccess, FileOperation, Message, MessageRole, Session, SessionMetadata,
47};
48#[cfg(feature = "enrichment")]
49pub use service::SessionCluster;
50pub use service::SessionService;
51
52#[cfg(feature = "enrichment")]
53pub use enrichment::{
54    ConceptMatch, ConceptOccurrence, EnrichmentConfig, EnrichmentResult, SessionConcepts,
55    SessionEnricher, find_related_sessions, search_by_concept,
56};
57
58#[cfg(feature = "search-index")]
59pub use search::{search_sessions, session_to_document};
60
61#[cfg(all(feature = "search-index", feature = "enrichment"))]
62pub use search::search_sessions_hybrid;
63
64/// Crate version
65pub const VERSION: &str = env!("CARGO_PKG_VERSION");