codetether-rlm 0.1.0

Recursive Language Model processing for CodeTether
Documentation
//! Deterministic answer routing.

use anyhow::Result;

use crate::router::CrateAutoProcessContext;

use super::{ast, classify, pattern};

/// Try an oracle-friendly answer before model synthesis.
pub fn answer(
    content: &str,
    query: &str,
    source: String,
    ctx: &CrateAutoProcessContext<'_>,
) -> Result<Option<String>> {
    match classify::classify(ctx.tool_id, query) {
        classify::QueryKind::Pattern => pattern::answer(content, query, source),
        classify::QueryKind::Structural => ast::answer(content, query, source),
        classify::QueryKind::Semantic => Ok(None),
    }
}