use crate::config::Config;
pub mod db;
pub mod models;
pub use db::Database;
pub use models::{
extract_session_files, Annotation, ContentBlock, LinkCreator, LinkType, Machine, Memory,
MessageContent, MessageRole, SessionLink, Summary, Tag,
};
#[allow(unused_imports)]
pub use models::{Message, Session};
pub fn get_machine_id() -> Option<String> {
Config::load()
.ok()
.and_then(|mut config| config.get_or_create_machine_id().ok())
}
#[allow(dead_code)]
pub fn get_machine_display_name(db: &Database, machine_id: &str) -> String {
if let Ok(name) = db.get_machine_name(machine_id) {
if let Ok(Some(_machine)) = db.get_machine(machine_id) {
return name;
}
}
if let Ok(mut config) = Config::load() {
if let Ok(current_id) = config.get_or_create_machine_id() {
if machine_id == current_id {
return config.get_machine_name();
}
}
}
if machine_id.len() >= 8 {
format!("{}...", &machine_id[..8])
} else {
machine_id.to_string()
}
}