1#![allow(dead_code)]
14
15mod cognition;
16mod error;
17pub mod maintenance;
18mod memory;
19pub mod provision;
20mod retrieval;
21pub mod storage;
22pub mod temporal;
23
24pub use basemyai_core::Metric;
25pub use cognition::{
26 ConsolidationInput, ConsolidationReport, ExtractedEntity, ExtractedRelation, Extraction, Graph, LlmInference,
27 Reached, apply_extraction, consolidate, consolidation_prompt, parse_extraction,
28};
29pub use error::{MemoryError, Result};
30pub use maintenance::{AdaptiveForgetting, ConsolidationTask, ExpiredMemoryGc};
31#[cfg(feature = "test-util")]
32pub use memory::HashEmbedder;
33pub use memory::schema::{BMAI_FORMAT_VERSION, EMBEDDING_DIM, schema};
34pub use memory::{
35 AgentId, AgentStats, ImportReport, MAX_TEXT_LEN, Memory, MemoryEvent, MemoryEventKind, MemoryLayer,
36 MemorySubscription, Record,
37};
38pub use provision::{
39 AnythingLlmBackend, BASELINE_DIM, BASELINE_MODEL_ID, BackendKind, HardwareProfile, KNOWN_MODELS, KnownModel,
40 LlmOption, LlmProvision, ModelProvision, OllamaBackend, OpenAiCompatBackend, anythingllm_from_env, best_llm_option,
41 choose_llm, detect_hardware, detect_llm_options, propose_models_to_install, provision, provision_with_progress,
42};
43pub use retrieval::{Fused, RRF_K, Ranking, rrf_fuse};
44pub use temporal::Validity;
45
46#[must_use]
48pub(crate) fn now_unix() -> i64 {
49 use std::time::{SystemTime, UNIX_EPOCH};
50 SystemTime::now()
51 .duration_since(UNIX_EPOCH)
52 .map(|d| i64::try_from(d.as_secs()).unwrap_or(i64::MAX))
53 .unwrap_or(0)
54}