Skip to main content

cortex_memory/
lib.rs

1//! Episodic and semantic memory lifecycle. This crate must not call LLM APIs directly.
2#![warn(missing_docs)]
3
4pub mod admission;
5pub mod contradictions;
6pub mod decay;
7pub mod epistemic;
8pub mod lifecycle;
9pub mod salience;
10pub mod trust_exchange;
11
12use cortex_core::{CortexResult, MemoryId};
13
14pub use admission::{
15    require_admissible_evidence, require_axiom_origin_is_not_product_spec, require_candidate_state,
16    require_contradiction_scan, require_explicit_non_promotion, require_phase_context,
17    require_redaction_status, require_source_anchors, require_usable_proof_state,
18    AdmissionDecision, AdmissionEnvelopeError, AdmissionEnvelopeResult, AdmissionRejectionReason,
19    AdmissionSemanticTrustInput, AdmissionSemanticTrustReport, AdmissionValidationResult,
20    AxiomImportClass, AxiomMemoryAdmissionRequest, CandidateState, ContradictionScan,
21    DurableAdmissionRefusal, EvidenceClass, PhaseContext, ProofState as AdmissionProofState,
22    RedactionStatus, SourceAnchor, SourceAnchorKind, ToolProvenance,
23    AXIOM_ADMISSION_PROOF_CLOSURE_INVARIANT, AXIOM_ADMISSION_PROOF_CLOSURE_RULE_ID,
24};
25pub use contradictions::{
26    Contradiction, ContradictionError, ContradictionRegistry, ContradictionResult,
27    ContradictionStatus, ContradictionType,
28};
29pub use decay::{
30    DecayError, DecayJob, DecayJobConversionError, DecayJobKind, DecayJobState, DecayResult,
31    SummaryMethod, DECAY_COMPRESS_INPUT_INVALID_INVARIANT, DECAY_COMPRESS_SOURCE_MISSING_INVARIANT,
32    DECAY_LLM_SUMMARY_ATTESTATION_PURPOSE, DECAY_LLM_SUMMARY_ATTESTATION_REJECTED_INVARIANT,
33    DECAY_LLM_SUMMARY_ATTESTATION_SCHEMA_VERSION,
34    DECAY_LLM_SUMMARY_REQUIRES_OPERATOR_ATTESTATION_INVARIANT, DECAY_SUMMARY_CLAIM_SEPARATOR,
35    DECAY_SUMMARY_MAX_CLAIM_BYTES, DECAY_SUMMARY_TRUNCATION_SUFFIX, SUMMARY_METHOD_NONE_WIRE,
36};
37pub use epistemic::{
38    apply_outcome_success, assert_utility_preserved_epistemics, reject_utility_to_proof_transition,
39    reject_utility_to_truth_transition, EpistemicError, EpistemicResult, EpistemicState,
40    ProofStatus, ProofTransitionEvidence, TruthStatus, TruthTransitionEvidence, Usefulness,
41    UtilitySignal,
42};
43pub use lifecycle::{
44    accept, accept_candidate, validate_candidate_lineage, AcceptCandidateRequest, LifecycleError,
45    LifecycleResult, LIFECYCLE_ACCEPT_PROOF_CLOSURE_INVARIANT,
46};
47pub use salience::{brightness, Salience};
48pub use trust_exchange::{
49    forbidden_uses_for_candidate, AdmissionLifecycle, AxiomTrustExchangeAdmissionRequest,
50    ForbiddenUse, TrustExchangeAdmission,
51};
52
53/// Placeholder hook for salience recompute (deterministic scoring lives here long-term).
54pub fn salience_refresh_stub(_id: &MemoryId) -> CortexResult<()> {
55    Ok(())
56}