Files
EJClaw/runners/shared/src/room-role-context.ts

31 lines
898 B
TypeScript

import type { PairedRoomRole } from './paired-room-role.js';
import type { RunnerAgentType } from './reviewer-runtime-policy.js';
export interface RoomRoleContext {
serviceId: string;
role: PairedRoomRole;
ownerServiceId: string;
reviewerServiceId: string;
ownerAgentType?: RunnerAgentType;
reviewerAgentType?: RunnerAgentType | null;
failoverOwner: boolean;
arbiterServiceId?: string;
arbiterAgentType?: RunnerAgentType | null;
}
export function prependRoomRoleHeader(
prompt: string,
roomRoleContext?: RoomRoleContext,
): string {
if (!roomRoleContext) {
return prompt;
}
const header =
`[ROOM_ROLE self=${roomRoleContext.serviceId} role=${roomRoleContext.role} ` +
`owner=${roomRoleContext.ownerServiceId} reviewer=${roomRoleContext.reviewerServiceId} ` +
`failover=${roomRoleContext.failoverOwner ? 1 : 0}]`;
return `${header}\n\n${prompt}`;
}