enquire-mcp API reference - v3.11.6-rc.2
    Preparing search index...

    Interface SearchHybridHit

    One row of the fused searchHybrid response.

    Exposes per_signal for full observability — agents can see which retrieval signal contributed (BM25 / TF-IDF / embeddings) and at what rank/score, which is critical for debugging recall regressions and for explaining results to end users.

    interface SearchHybridHit {
        age_days?: number;
        chunk_index?: number;
        kind: "md" | "pdf";
        line_end?: number;
        line_start?: number;
        path: string;
        per_signal: {
            bm25?: { rank: number; score: number };
            embeddings?: { rank: number; score: number };
            tfidf?: { rank: number; score: number };
        };
        reranker_score?: number;
        score: number;
        snippet: string;
        stale?: boolean;
        title: string;
    }
    Index

    Properties

    age_days?: number

    v3.10 — whole days since the note's current on-disk mtime (freshness signal for forgetting-aware recall; never negative). Computed by statting the final hit paths, so it reflects the live file mtime, not the possibly- lagging indexed mtime in FTS5/embed-db source_state. Omitted (along with stale) only when the stat fails — e.g. the file was deleted between fusion and response assembly (fail-soft, never throws).

    chunk_index?: number
    kind: "md" | "pdf"

    v2.8.0 — content-source kind. Lets agents distinguish markdown notes from PDF chunks when both are indexed. Defaults to "md" for backward compatibility (legacy DBs and TF-IDF hits have no kind metadata).

    line_end?: number
    line_start?: number
    path: string

    Vault-relative path of the matching note (or path#chunk for granularity: "block").

    per_signal: {
        bm25?: { rank: number; score: number };
        embeddings?: { rank: number; score: number };
        tfidf?: { rank: number; score: number };
    }

    Per-signal observability — which signals contributed at what rank/score.

    reranker_score?: number

    v2.9.0 — cross-encoder reranker score in [0, 1] (sigmoid of the model's relevance logit). Present only when the server was started with --enable-reranker AND this hit was within the reranker's top-N candidate set (default 50). Higher = more relevant. Compare across results within the same response, NOT across queries (the absolute value depends on the query).

    score: number

    Fused RRF score (sum of 1/(k+rank) terms across signals).

    snippet: string

    Snippet from whichever signal produced the best chunk hit.

    stale?: boolean

    v3.10 — true when age_days >= DEFAULT_STALE_DAYS (365). Lets an agent flag a recalled fact as potentially out-of-date instead of presenting it as current (the Memora stale-memory-reuse frontier). Read-only signal — does NOT reorder results (opt-in recency re-ranking is a separate flag).

    title: string

    Stripped basename for display (.md or .pdf removed per kind).