refactor: wire role agent plan into runtime

This commit is contained in:
Eyejoker
2026-03-31 09:35:19 +09:00
parent a39dad4c8c
commit 7f8a361f24
5 changed files with 135 additions and 20 deletions

View File

@@ -1,6 +1,9 @@
import { describe, expect, it } from 'vitest';
import { resolveRoleAgentPlan } from './role-agent-plan.js';
import {
resolveAgentTypeForRole,
resolveRoleAgentPlan,
} from './role-agent-plan.js';
describe('resolveRoleAgentPlan', () => {
it('uses the group agent type as owner in single rooms', () => {
@@ -60,4 +63,28 @@ describe('resolveRoleAgentPlan', () => {
arbiterAgentType: null,
});
});
it('falls back to owner when reviewer or arbiter are absent in the plan', () => {
const plan = resolveRoleAgentPlan({
paired: false,
groupAgentType: 'codex',
configuredReviewer: 'claude-code',
});
expect(resolveAgentTypeForRole(plan, 'owner')).toBe('codex');
expect(resolveAgentTypeForRole(plan, 'reviewer')).toBe('codex');
expect(resolveAgentTypeForRole(plan, 'arbiter')).toBe('codex');
});
it('returns explicit reviewer and arbiter agent types when present', () => {
const plan = resolveRoleAgentPlan({
paired: true,
groupAgentType: 'codex',
configuredReviewer: 'claude-code',
configuredArbiter: 'claude-code',
});
expect(resolveAgentTypeForRole(plan, 'reviewer')).toBe('claude-code');
expect(resolveAgentTypeForRole(plan, 'arbiter')).toBe('claude-code');
});
});