Extract paired verdict signal helpers

This commit is contained in:
ejclaw
2026-04-29 10:05:26 +09:00
parent 42f64ea78b
commit 274e234365
14 changed files with 196 additions and 164 deletions

View File

@@ -7,6 +7,13 @@ export type VisibleVerdict =
| 'needs_context'
| 'continue';
export type ArbiterVerdictResult =
| 'proceed'
| 'revise'
| 'reset'
| 'escalate'
| 'unknown';
export function parseVisibleVerdict(
summary: string | null | undefined,
): VisibleVerdict {
@@ -26,6 +33,22 @@ export function parseVisibleVerdict(
return 'continue';
}
export function classifyArbiterVerdict(
summary: string | null | undefined,
): ArbiterVerdictResult {
if (!summary) return 'unknown';
const cleaned = summary.replace(/<internal>[\s\S]*?<\/internal>/g, '').trim();
if (!cleaned) return 'unknown';
const firstLine = cleaned.split('\n')[0].trim();
const verdictMatch = firstLine.match(
/\*{0,2}(?:VERDICT\s*[:—-]\s*)?(PROCEED|REVISE|RESET|ESCALATE)\*{0,2}/i,
);
if (verdictMatch) {
return verdictMatch[1].toLowerCase() as ArbiterVerdictResult;
}
return 'unknown';
}
export function resolveStoredVisibleVerdict(args: {
verdict?: VisibleVerdict | null;
outputText?: string | null;