UNPKG

@autobe/agent

Version:

AI backend server code generator

67 lines (66 loc) 2.67 kB
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[]>;