codenib.ops.retrieve
¶
Classes:
| Name | Description |
|---|---|
RetrievalStage |
Minimal branch contract consumed by retrieval-plan execution. |
RetrieveContext |
Handles backing indexes for retrieval operations. |
Functions:
| Name | Description |
|---|---|
to_queried_nodes |
Normalize retrieval results to QueriedNode list. |
execute_retrieval_stages |
Execute and fuse a declarative set of retrieval branches. |
merge_hybrid |
Merge multiple retrieval branches with weighted scoring or RRF. |
merge_file_rankings |
Fuse ranked branches by unique file using weighted RRF. |
queried_node_key |
Stable identity for deduping candidate nodes across pipeline stages. |
queried_file_key |
Stable file identity across relative graph and absolute index paths. |
dedup_queried_nodes |
Deduplicate nodes while preserving first-seen rank order. |
dedup_queried_files |
Keep the first representative node for each stable file identity. |
RetrievalStage
¶
Bases: Protocol
Minimal branch contract consumed by retrieval-plan execution.
RetrieveContext
dataclass
¶
RetrieveContext(
bm25: BM25CodeIndexer | None = None,
vector_store: CodeVectorStore | None = None,
regex_index: RegexNodeIndex | None = None,
default_top_k: int = 10,
default_level: str = "l2",
masks: dict[str, set[str]] = dict(),
)
Handles backing indexes for retrieval operations.
to_queried_nodes
¶
to_queried_nodes(results: Sequence[object]) -> list[QueriedNode]
Normalize retrieval results to QueriedNode list.
Source code in codenib/ops/retrieve.py
execute_retrieval_stages
¶
execute_retrieval_stages(
query: str,
stages: Sequence[_StageT],
execute_stage: Callable[[str, _StageT], Sequence[object]],
*,
top_k: int,
fusion: str = "weighted",
rrf_k: int = 60
) -> list[QueriedNode]
Execute and fuse a declarative set of retrieval branches.
The caller supplies backend-specific branch execution. Stage iteration, result normalization, weighting, and fusion stay here so standalone pipelines, agent runtimes, and protocol adapters share one implementation.
Source code in codenib/ops/retrieve.py
merge_hybrid
¶
merge_hybrid(
branches: list[list[QueriedNode]],
weights: list[float] | None = None,
top_k: int | None = None,
*,
fusion: str = "weighted",
rrf_k: int = 60
) -> list[QueriedNode]
Merge multiple retrieval branches with weighted scoring or RRF.
Source code in codenib/ops/retrieve.py
merge_file_rankings
¶
merge_file_rankings(
branches: list[list[QueriedNode]],
weights: list[float] | None = None,
top_k: int | None = None,
*,
rrf_k: int = 60
) -> list[QueriedNode]
Fuse ranked branches by unique file using weighted RRF.
Each branch contributes at most once per file. Stable relative file names
embedded in node_id take precedence over machine-specific absolute
paths, which keeps graph and vector artifacts comparable across snapshots.
Source code in codenib/ops/retrieve.py
queried_node_key
¶
queried_node_key(item: QueriedNode) -> tuple[Any, ...]
Stable identity for deduping candidate nodes across pipeline stages.
Source code in codenib/ops/retrieve.py
queried_file_key
¶
queried_file_key(item: QueriedNode) -> tuple[Any, ...]
Stable file identity across relative graph and absolute index paths.
Source code in codenib/ops/retrieve.py
dedup_queried_nodes
¶
dedup_queried_nodes(nodes: Sequence[QueriedNode]) -> list[QueriedNode]
Deduplicate nodes while preserving first-seen rank order.
Retrieval pipelines often concatenate dense hits with graph-expanded neighbors. The dense order is the ranking signal; duplicates should not consume multiple top-k slots. If a later duplicate carries code content and the first copy does not, keep the first rank but attach the content.
Source code in codenib/ops/retrieve.py
dedup_queried_files
¶
dedup_queried_files(nodes: Sequence[QueriedNode]) -> list[QueriedNode]
Keep the first representative node for each stable file identity.