Coverage for src / lexigram / contracts / ai / chunks.py: 0%

14 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-15 18:57 +0800

1"""Shared AI chunk types.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass, field 

6from typing import Any 

7 

8 

9@dataclass(frozen=True) 

10class Chunk: 

11 """Canonical AI chunk shared by RAG-oriented packages.""" 

12 

13 text: str 

14 source: str = "unknown" 

15 metadata: dict[str, Any] = field(default_factory=dict) 

16 score: float | None = None 

17 embedding: list[float] | None = None 

18 

19 

20@dataclass(frozen=True) 

21class ContextChunk(Chunk): 

22 """Retrieved chunk enriched with ranking metadata.""" 

23 

24 rank: int = 0 

25 

26 

27__all__ = ["Chunk", "ContextChunk"]