export type AgentIntent = 'SEARCH' | 'AGGREGATE'; export interface AgentQueryPlan { intent: AgentIntent; /** Used as $vectorSearch.filter OR $match (pre-filter documents for efficiency) */ preFilter?: Record; /** Text used to generate vector embedding, if vector search is needed */ vectorQuery?: string | null; /** Vector search tuning options */ vectorOptions?: { limit?: number; // How many top documents to retrieve numCandidates?: number; // How many candidates to consider in search }; /** Aggregation stages AFTER preFilter / vectorSearch */ postPipeline?: any[]; // Should include only fields necessary for computation /** Hint for which fields to retrieve for computation */ fields?: string[]; }