Files
Jyotisha/frontend/src/lib/rectification-agent/fallback-policy.ts
T

14 lines
927 B
TypeScript

import type { CandidateSnapshot } from "../rectification-v4/contracts.ts";
import type { DiagnosticsSummary, QuestionOpportunity, RectificationDecision } from "./contracts.ts";
export function deterministicDecision(input: Readonly<{
snapshot: CandidateSnapshot | null;
diagnostics: DiagnosticsSummary | null;
opportunities: readonly QuestionOpportunity[];
}>): RectificationDecision {
if (input.snapshot?.canAcceptRange) return { action: "offer_candidate_range", snapshotId: input.snapshot.id };
const top = input.opportunities.find((item) => item.active);
if (top) return { action: "ask_question", opportunityId: top.opportunityId, narrativeFocus: ["latest_event", ...(top.kind === "refine_event_date" ? ["date_precision" as const] : [])] };
return { action: "stop_low_confidence", reasonCodes: input.diagnostics ? ["no_high_value_question", "diagnostics_not_stable"] : ["insufficient_scoreable_evidence"] };
}