Skip to main content

aster/session/
mod.rs

1//! Session 模块
2//!
3//! 提供 session 管理功能,包括:
4//! - `SessionStore` trait: 可插拔的存储抽象
5//! - `SessionManager`: 向后兼容的静态方法(使用全局 store)
6//! - SQLite 默认实现
7//!
8//! ## 使用方式
9//!
10//! ### 方式 1: 使用默认 SQLite 存储(向后兼容)
11//! ```ignore
12//! use aster::session::SessionManager;
13//! let session = SessionManager::create_session(dir, name, session_type).await?;
14//! ```
15//!
16//! ### 方式 2: 注入自定义存储(推荐)
17//! ```ignore
18//! use aster::session::{SessionStore, NoopSessionStore};
19//! use aster::agents::Agent;
20//!
21//! let store = Arc::new(MyCustomStore::new());
22//! let agent = Agent::new().with_session_store(store);
23//! ```
24
25mod archive;
26mod chat_history_search;
27mod cleanup;
28mod diagnostics;
29mod export;
30pub mod extension_data;
31mod fork;
32mod legacy;
33pub mod resume;
34pub mod session_manager;
35mod statistics;
36mod store;
37
38// 导出存储抽象
39pub use store::{
40    get_global_session_store, is_global_session_store_set, set_global_session_store,
41    ChatHistoryMatch, NoopSessionStore, SessionStore, TokenStatsUpdate,
42};
43
44// 导出现有功能(向后兼容)
45pub use archive::{
46    archive_and_delete_session, archive_session, bulk_archive_sessions, delete_archived_session,
47    list_archived_sessions, restore_archived_session, BulkArchiveResult,
48};
49pub use cleanup::{
50    cleanup_expired_data, force_cleanup, get_cutoff_date, schedule_cleanup, CleanupStats,
51    DEFAULT_CLEANUP_PERIOD_DAYS,
52};
53pub use diagnostics::generate_diagnostics;
54pub use export::{
55    bulk_export_sessions, export_session, export_session_to_file, ExportFormat, ExportOptions,
56};
57pub use extension_data::{EnabledExtensionsState, ExtensionData, ExtensionState, TodoState};
58pub use fork::{
59    fork_session, get_session_branch_tree, merge_sessions, ForkMetadata, ForkOptions, MergeOptions,
60    MergeStrategy, MetadataStrategy, SessionBranchTree,
61};
62pub use resume::{
63    build_resume_message, delete_summary, has_summary, list_summaries, load_summary,
64    load_summary_data, save_summary, SummaryCacheData,
65};
66pub use session_manager::{Session, SessionInsights, SessionManager, SessionType};
67pub use statistics::{
68    calculate_statistics, generate_report, get_all_statistics, SessionStatistics, SessionSummary,
69};