Semantic chunker / text splitter / RAG chunker / chunking with overlap / sentence + paragraph aware. Splits long text into chunks with three modes: 'fixed' (hard char-count windows with overlap), 'sentence' (greedy pack of sentences up to chunk_size), 'paragraph' (split on blank lines, never pack across paragraphs). Returns each chunk's text, start/end character offsets, and char count. Pure local — no upstream call.