//! # ai-memory-core — 持久化 AI 记忆系统
//!
//! 一个轻量级、零额外依赖的 AI 持久化记忆系统，支持：
//!
//! - **空间隐喻存储**：Wing/Hall/Room 三层路径分类
//! - **元数据追踪**：MD5 内容指纹 + 跨会话访问统计
//! - **Token 控制**：自动按 2000 token 预算注入历史记忆到 system prompt
//! - **LLM 提取**：会话结束自动总结提取重要记忆（支持 Anthropic/OpenAI/DeepSeek）
//! - **声明式宏**：`declare_wings!` / `declare_halls!` 元编程扩展分类
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use ai_memory_core::{init, handle_memory_save, load_memories};
//! use std::path::PathBuf;
//!
//! // 1. 初始化数据目录
//! init(PathBuf::from("/path/to/data"));
//!
//! // 2. 保存记忆
//! handle_memory_save(
//!     "Preferences/programming-languages",
//!     "偏好使用 TypeScript"
//! ).unwrap();
//!
//! // 3. 加载记忆
//! if let Some(memories) = load_memories() {
//!     println!("{}", memories);
//! }
//! ```
//!
//! ## Features
//!
//! - `default` — 核心功能（IO、分类、元数据、注入、工具）
//! - `llm-extraction` — LLM 记忆提取（需要 reqwest + tokio）

pub mod categories;
pub mod config;
pub mod extractor;
pub mod io;
pub mod meta;
pub mod session;
pub mod tool;

// 核心 API：配置
pub use config::init;
pub use config::{memories_file, metadata_file};

// 核心 API：分类
pub use categories::{path_schema, MemoryHall, MemoryPath, Wing};

// 核心 API：IO
pub use io::{
    append_to_section, ensure_memories_file, format_initial_memories, load_memories, save_memories,
};

// 核心 API：元数据
pub use meta::{content_fingerprint, MemoryMetadata, MetadataStore};

// 核心 API：工具
pub use tool::{handle_memory_save, memory_save_schema};

// 核心 API：会话注入
pub use session::{inject_memories_into_system_prompt, load_memories_for_injection};

// 核心 API：记忆提取
pub use extractor::{
    build_extraction_prompt, clear_prompt_cache, extract_and_save_memories,
    extract_memories_simple, parse_extraction_result, save_extracted_memories, ExtractedMemory,
};

// llm-extraction feature
#[cfg(feature = "llm-extraction")]
pub use extractor::extract_memories_with_llm;
