@autobe/agent
Version:
AI backend server code generator
67 lines (66 loc) • 2.67 kB
TypeScript
import { IAnalysisSectionEntry } from "../orchestrate/common/structures/IAnalysisSectionEntry";
import { EmbeddingProvider } from "./EmbeddingProvider";
export interface RequirementSection {
filename: `${string}.md`;
heading: string;
content: string;
index: number;
level: 2 | 3;
}
export interface RetrievalHit {
section: RequirementSection;
score: number;
reason: string;
}
export interface VectorIndexItem {
id: string;
section: RequirementSection;
vector: number[];
tf: Map<string, number>;
docLen: number;
}
export interface Bm25Stats {
N: number;
avgdl: number;
df: Map<string, number>;
}
export declare function buildVectorIndexHybrid(embedder: EmbeddingProvider, sections: RequirementSection[]): Promise<{
index: VectorIndexItem[];
bm25: Bm25Stats;
}>;
export declare function retrieveTopKAdaptiveHybrid(embedder: EmbeddingProvider, queryText: string, index: VectorIndexItem[], bm25: Bm25Stats, kMin?: number, kMax?: number, wVec?: number, wBm25?: number, debug?: boolean): Promise<RetrievalHit[]>;
export declare function clearIndexCache(): void;
/**
* Analysis context mode for RAG control.
*
* - "TOPK": Use RAG retrieval (section-level hybrid search)
* - "FULL": Use all analysis sections without filtering (no RAG call)
* - "NONE": Use no analysis sections (no RAG call)
*/
export type AnalysisContextMode = "TOPK" | "FULL" | "NONE";
export interface BuildAnalysisContextOptions {
kMin?: number;
kMax?: number;
splitCount?: number;
log?: boolean;
logPrefix?: string;
}
/**
* Build analysis context at section granularity.
*
* Operates on `IAnalysisSectionEntry[]` from `convertToSectionEntries`. Each
* section entry is treated as an independent retrieval unit (~200-600 words),
* yielding fine-grained context for downstream agents.
*
* Uses SHA256-based index caching to avoid rebuilding the vector index when
* called repeatedly with the same section pool (e.g. across batch items in
* `executeCachedBatch`).
*
* @param embedder - Embedding provider for vector search (only used in TOPK)
* @param sections - Source section entries (from convertToSectionEntries)
* @param query - Query text for retrieval (only used in TOPK mode)
* @param mode - Analysis context mode (NONE/FULL/TOPK)
* @param options - Optional parameters for retrieval tuning
* @returns Filtered or full section entries based on mode
*/
export declare function buildAnalysisContextSections(embedder: EmbeddingProvider, sections: IAnalysisSectionEntry[], query: string, mode: AnalysisContextMode, options?: BuildAnalysisContextOptions): Promise<IAnalysisSectionEntry[]>;