Files
Jyotisha/frontend/src/lib/rectification-agentic/v9/rectification-label.ts
T
Jesse_Chen 3a4396a4b7
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
fix(rectification): adopt evidence-based stop semantics
2026-08-31 12:50:30 +08:00

30 lines
1.1 KiB
TypeScript

import type { RectificationDecision } from "../core/rectification-decision.ts";
export type RectificationLabel =
| "blocked"
| "user_history_verification_required"
| "manual_pattern_consensus"
| "single_adapter_support"
| "multi_adapter_consensus";
export function rectificationLabel(input: {
decision: Pick<RectificationDecision, "separation" | "nextAction" | "stopReason">;
supportedAdapterCount?: number;
}): RectificationLabel {
if (input.decision.stopReason === "insufficient_dated_events"
|| input.decision.stopReason === "insufficient_domains") {
return "user_history_verification_required";
}
if (input.decision.stopReason === "tied_first"
|| input.decision.stopReason === "user_uncertainty_too_high") {
return "blocked";
}
if (input.decision.nextAction === "ask_fact_collection" && input.decision.separation.ranked.length === 0) {
return "blocked";
}
const adapterCount = Math.max(0, Math.floor(input.supportedAdapterCount ?? 0));
if (adapterCount >= 2) return "multi_adapter_consensus";
if (adapterCount === 1) return "single_adapter_support";
return "manual_pattern_consensus";
}