Project Files
packages / core / src / requestOptions.ts
import type { RagFusionMethod, RagRerankStrategy } from "./contracts";
export type RagGroundingMode =
| "off"
| "warn-on-weak-evidence"
| "require-evidence";
export type RagRequestedRoute =
| "auto"
| "no-retrieval"
| "full-context"
| "retrieval"
| "corrective"
| "sample"
| "hierarchical-retrieval"
| "global-summary";
export type RagOutputMode =
| "prepared-prompt"
| "search-results"
| "answer-envelope";
export interface RagPolicyOptions {
groundingMode?: RagGroundingMode;
answerabilityGateEnabled?: boolean;
answerabilityGateThreshold?: number;
ambiguousQueryBehavior?: "proceed" | "ask-for-clarification" | "warn";
}
export interface RagRoutingOptions {
requestedRoute?: RagRequestedRoute;
fullContextTokenLimit?: number;
activeModelContextTokens?: number;
correctiveEnabled?: boolean;
correctiveMaxAttempts?: number;
}
export interface RagRetrievalOptions {
multiQueryEnabled?: boolean;
multiQueryCount?: number;
fusionMethod?: RagFusionMethod;
hybridEnabled?: boolean;
maxCandidates?: number;
maxEvidenceBlocks?: number;
minScore?: number;
dedupeSimilarityThreshold?: number;
}
export type RagRerankModelSource =
| "active-chat-model"
| "auto-detect"
| "manual-model-id";
export interface RagRerankOptions {
enabled?: boolean;
strategy?: RagRerankStrategy;
topK?: number;
modelSource?: RagRerankModelSource;
modelId?: string;
}
export interface RagSafetyOptions {
sanitizeRetrievedText?: boolean;
stripInstructionalSpans?: boolean;
requireEvidence?: boolean;
}
export interface RagRequestOptions {
policy?: RagPolicyOptions;
routing?: RagRoutingOptions;
retrieval?: RagRetrievalOptions;
rerank?: RagRerankOptions;
safety?: RagSafetyOptions;
outputMode?: RagOutputMode;
}