crtx-memory 0.1.1

Memory lifecycle, salience, decay policies, and contradiction objects.
Documentation
//! Episodic and semantic memory lifecycle. This crate must not call LLM APIs directly.
#![warn(missing_docs)]

pub mod admission;
pub mod contradictions;
pub mod decay;
pub mod epistemic;
pub mod lifecycle;
pub mod salience;
pub mod trust_exchange;

use cortex_core::{CortexResult, MemoryId};

pub use admission::{
    require_admissible_evidence, require_axiom_origin_is_not_product_spec, require_candidate_state,
    require_contradiction_scan, require_explicit_non_promotion, require_phase_context,
    require_redaction_status, require_source_anchors, require_usable_proof_state,
    AdmissionDecision, AdmissionEnvelopeError, AdmissionEnvelopeResult, AdmissionRejectionReason,
    AdmissionSemanticTrustInput, AdmissionSemanticTrustReport, AdmissionValidationResult,
    AxiomImportClass, AxiomMemoryAdmissionRequest, CandidateState, ContradictionScan,
    DurableAdmissionRefusal, EvidenceClass, PhaseContext, ProofState as AdmissionProofState,
    RedactionStatus, SourceAnchor, SourceAnchorKind, ToolProvenance,
    AXIOM_ADMISSION_PROOF_CLOSURE_INVARIANT, AXIOM_ADMISSION_PROOF_CLOSURE_RULE_ID,
};
pub use contradictions::{
    Contradiction, ContradictionError, ContradictionRegistry, ContradictionResult,
    ContradictionStatus, ContradictionType,
};
pub use decay::{
    DecayError, DecayJob, DecayJobConversionError, DecayJobKind, DecayJobState, DecayResult,
    SummaryMethod, DECAY_COMPRESS_INPUT_INVALID_INVARIANT, DECAY_COMPRESS_SOURCE_MISSING_INVARIANT,
    DECAY_LLM_SUMMARY_ATTESTATION_PURPOSE, DECAY_LLM_SUMMARY_ATTESTATION_REJECTED_INVARIANT,
    DECAY_LLM_SUMMARY_ATTESTATION_SCHEMA_VERSION,
    DECAY_LLM_SUMMARY_REQUIRES_OPERATOR_ATTESTATION_INVARIANT, DECAY_SUMMARY_CLAIM_SEPARATOR,
    DECAY_SUMMARY_MAX_CLAIM_BYTES, DECAY_SUMMARY_TRUNCATION_SUFFIX, SUMMARY_METHOD_NONE_WIRE,
};
pub use epistemic::{
    apply_outcome_success, assert_utility_preserved_epistemics, reject_utility_to_proof_transition,
    reject_utility_to_truth_transition, EpistemicError, EpistemicResult, EpistemicState,
    ProofStatus, ProofTransitionEvidence, TruthStatus, TruthTransitionEvidence, Usefulness,
    UtilitySignal,
};
pub use lifecycle::{
    accept, accept_candidate, validate_candidate_lineage, AcceptCandidateRequest, LifecycleError,
    LifecycleResult, LIFECYCLE_ACCEPT_PROOF_CLOSURE_INVARIANT,
};
pub use salience::{brightness, Salience};
pub use trust_exchange::{
    forbidden_uses_for_candidate, AdmissionLifecycle, AxiomTrustExchangeAdmissionRequest,
    ForbiddenUse, TrustExchangeAdmission,
};

/// Placeholder hook for salience recompute (deterministic scoring lives here long-term).
pub fn salience_refresh_stub(_id: &MemoryId) -> CortexResult<()> {
    Ok(())
}