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

@@ -0,0 +1,34 @@
import { describe, expect, it } from 'vitest';
import {
classifyArbiterVerdict,
parseVisibleVerdict,
} from './paired-verdict.js';
describe('paired verdict parser', () => {
it('parses visible verdicts from the first summary line only', () => {
expect(parseVisibleVerdict('STEP_DONE\nmore to do')).toBe('step_done');
expect(parseVisibleVerdict('TASK_DONE\nall done')).toBe('task_done');
expect(
parseVisibleVerdict(
'DONE_WITH_CONCERNS\n\nfollow-up detail that should not affect parsing',
),
).toBe('done_with_concerns');
expect(parseVisibleVerdict('BLOCKED\nextra detail')).toBe('blocked');
expect(parseVisibleVerdict('random prose')).toBe('continue');
});
it('classifies arbiter verdicts from the first visible line', () => {
expect(classifyArbiterVerdict('PROCEED\ncontinue')).toBe('proceed');
expect(classifyArbiterVerdict('**VERDICT: REVISE**\nfix it')).toBe(
'revise',
);
expect(
classifyArbiterVerdict(
'<internal>private notes</internal>\nVERDICT — RESET\nrestart',
),
).toBe('reset');
expect(classifyArbiterVerdict('ESCALATE\nblocked')).toBe('escalate');
expect(classifyArbiterVerdict('no verdict here')).toBe('unknown');
});
});