pub struct EmbeddingEngine { /* private fields */ }Implementations§
Source§impl EmbeddingEngine
impl EmbeddingEngine
Sourcepub fn find_similar_code(
&self,
file_path: &str,
symbol_name: &str,
max_results: usize,
) -> Result<Vec<SemanticMatch>>
pub fn find_similar_code( &self, file_path: &str, symbol_name: &str, max_results: usize, ) -> Result<Vec<SemanticMatch>>
Find code symbols most similar to the given symbol.
Sourcepub fn find_duplicates(
&self,
threshold: f64,
max_pairs: usize,
) -> Result<Vec<DuplicatePair>>
pub fn find_duplicates( &self, threshold: f64, max_pairs: usize, ) -> Result<Vec<DuplicatePair>>
Find near-duplicate code pairs across the codebase. Returns pairs with cosine similarity above the threshold (default 0.85).
Sourcepub fn find_duplicates_in_scope(
&self,
threshold: f64,
max_pairs: usize,
scope: Option<&str>,
) -> Result<Vec<DuplicatePair>>
pub fn find_duplicates_in_scope( &self, threshold: f64, max_pairs: usize, scope: Option<&str>, ) -> Result<Vec<DuplicatePair>>
Find near-duplicate code pairs, using scoped anchors when scope is provided.
Candidate search remains global, so cross-boundary duplicates remain visible without paying a full-corpus anchor scan for narrow scopes.
Source§impl EmbeddingEngine
impl EmbeddingEngine
Sourcepub fn classify_symbol(
&self,
file_path: &str,
symbol_name: &str,
categories: &[&str],
) -> Result<Vec<CategoryScore>>
pub fn classify_symbol( &self, file_path: &str, symbol_name: &str, categories: &[&str], ) -> Result<Vec<CategoryScore>>
Classify a code symbol into one of the given categories using zero-shot embedding similarity.
Sourcepub fn find_misplaced_code(
&self,
max_results: usize,
) -> Result<Vec<OutlierSymbol>>
pub fn find_misplaced_code( &self, max_results: usize, ) -> Result<Vec<OutlierSymbol>>
Find symbols that are outliers — semantically distant from their file’s other symbols.
pub fn embed_text(&self, text: &str) -> Result<Vec<f32>>
Sourcepub fn store_artifact_embeddings(
&self,
chunks: &[ArtifactEmbeddingChunk],
) -> Result<usize>
pub fn store_artifact_embeddings( &self, chunks: &[ArtifactEmbeddingChunk], ) -> Result<usize>
Store pre-computed artifact embeddings in the semantic index.
Sourcepub fn search_artifact_embeddings(
&self,
query: &str,
top_k: usize,
) -> Result<Vec<ScoredArtifactChunk>>
pub fn search_artifact_embeddings( &self, query: &str, top_k: usize, ) -> Result<Vec<ScoredArtifactChunk>>
Semantic search over stored artifact analyses.
Sourcepub fn artifact_embedding_count(&self) -> Result<usize>
pub fn artifact_embedding_count(&self) -> Result<usize>
Count stored artifact embeddings.
Sourcepub fn prune_artifact_embeddings(&self, max_age_ms: u64) -> Result<usize>
pub fn prune_artifact_embeddings(&self, max_age_ms: u64) -> Result<usize>
Prune artifact embeddings older than the given duration (ms).
Source§impl EmbeddingEngine
impl EmbeddingEngine
pub fn new(project: &ProjectRoot) -> Result<Self>
pub fn model_name(&self) -> &str
pub fn runtime_info(&self) -> &EmbeddingRuntimeInfo
Sourcepub fn is_indexing(&self) -> bool
pub fn is_indexing(&self) -> bool
Returns true if a full reindex is currently in progress.
pub fn index_from_project(&self, project: &ProjectRoot) -> Result<usize>
pub fn ensure_index_fresh_for_project( &self, project: &ProjectRoot, ) -> Result<EmbeddingFreshnessReport>
Sourcepub fn generate_bridge_candidates(
&self,
project: &ProjectRoot,
) -> Result<Vec<(String, String)>>
pub fn generate_bridge_candidates( &self, project: &ProjectRoot, ) -> Result<Vec<(String, String)>>
Extract NL→code bridge candidates from indexed symbols.
For each symbol with a docstring, produces a (docstring_first_line, symbol_name) pair.
The caller writes these to .codelens/bridges.json for project-specific NL bridging.
Sourcepub fn index_changed_files(
&self,
project: &ProjectRoot,
changed_files: &[&str],
) -> Result<usize>
pub fn index_changed_files( &self, project: &ProjectRoot, changed_files: &[&str], ) -> Result<usize>
Incrementally re-index only the given files.
Sourcepub fn is_indexed(&self) -> bool
pub fn is_indexed(&self) -> bool
Whether the embedding index has been populated.
pub fn index_info(&self) -> EmbeddingIndexInfo
pub fn inspect_existing_index( project: &ProjectRoot, ) -> Result<Option<EmbeddingIndexInfo>>
Source§impl EmbeddingEngine
impl EmbeddingEngine
pub fn embed_query_cached(&self, query: &str) -> Result<Vec<f32>>
pub fn prewarm_queries(&self, queries: &[String]) -> Result<usize>
pub fn query_cache_stats(&self) -> Result<QueryEmbeddingCacheStats>
Source§impl EmbeddingEngine
impl EmbeddingEngine
Sourcepub fn search(
&self,
query: &str,
max_results: usize,
) -> Result<Vec<SemanticMatch>>
pub fn search( &self, query: &str, max_results: usize, ) -> Result<Vec<SemanticMatch>>
Search for symbols semantically similar to the query.
Sourcepub fn search_scored(
&self,
query: &str,
max_results: usize,
) -> Result<Vec<ScoredChunk>>
pub fn search_scored( &self, query: &str, max_results: usize, ) -> Result<Vec<ScoredChunk>>
Search returning raw ScoredChunks with optional reranking.
Pipeline: bi-encoder → candidate pool (3× requested) → rerank → top-N. Reranking uses query-document text overlap scoring to refine bi-encoder cosine similarity. This catches cases where embedding similarity is high but the actual text relevance is low (or vice versa).
Sourcepub fn search_scored_in_scope(
&self,
query: &str,
max_results: usize,
path_scope: Option<&str>,
) -> Result<Vec<ScoredChunk>>
pub fn search_scored_in_scope( &self, query: &str, max_results: usize, path_scope: Option<&str>, ) -> Result<Vec<ScoredChunk>>
Search raw chunks within an optional relative path scope.
Scoped searches push the broad path partition and exact/prefix file constraints into sqlite-vec before KNN candidate selection. This keeps scoped ranked-context calls from spending candidate budget on unrelated packages or generated artifacts.
Auto Trait Implementations§
impl !Freeze for EmbeddingEngine
impl RefUnwindSafe for EmbeddingEngine
impl Send for EmbeddingEngine
impl Sync for EmbeddingEngine
impl Unpin for EmbeddingEngine
impl UnsafeUnpin for EmbeddingEngine
impl UnwindSafe for EmbeddingEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more