package com.easyagents.rag.core;

/**
 * RAG ingestion default values and safety limits.
 */
public final class RagDefaults {

    private RagDefaults() {
    }

    /** Default strategy chunk size. */
    public static final int CHUNK_SIZE = 512;
    /** Default overlap size. */
    public static final int OVERLAP_SIZE = 128;
    /** Default Markdown heading level. */
    public static final int MD_SPLITTER_LEVEL = 2;
    /** Default spreadsheet rows per chunk. */
    public static final int ROWS_PER_CHUNK = 1;
    /** BGE-M3 maximum sequence length. */
    public static final int BGE_M3_MAX_SEQUENCE_TOKENS = 8192;
    /** Reserved budget for model special tokens and tokenizer estimation differences. */
    public static final int BGE_M3_RESERVED_TOKENS = 128;
    /** Hard upper token estimate for chunk content sent to BGE-M3. */
    public static final int BGE_M3_HARD_CHUNK_TOKEN_LIMIT =
        BGE_M3_MAX_SEQUENCE_TOKENS - BGE_M3_RESERVED_TOKENS;
}
