pub mod eval;

/// Extract the entity names a query refers to, using the same gazetteer
/// extraction the ingest path applies to transcripts. Matching extractors on
/// both sides is what lets query entities resolve to stored entity ids, so the
/// graph term in recall is conditioned on the query rather than raw
/// connectedness. Shared by the live recall route and the eval harness so both
/// measure the same ranking.
pub fn link_query_entities(text: &str) -> Vec<String> {
    second_brain_adapters::claude_code::extract_entities(text)
        .into_iter()
        .map(|e| e.name)
        .collect()
}
