Files
hapi/cli/src/codex/utils/terminalEventGuard.ts
T

37 lines
1.1 KiB
TypeScript

export type TerminalEventGuardInput = {
eventTurnId: string | null;
currentTurnId: string | null;
turnInFlight: boolean;
allowAnonymousTerminalEvent?: boolean;
eventThreadId?: string | null;
currentThreadId?: string | null;
allowMatchingThreadIdTerminalEvent?: boolean;
};
export function shouldIgnoreTerminalEvent(input: TerminalEventGuardInput): boolean {
const allowAnonymousTerminalEvent = input.allowAnonymousTerminalEvent === true;
if (input.eventTurnId) {
return Boolean(input.currentTurnId && input.eventTurnId !== input.currentTurnId);
}
if (input.currentTurnId) {
const allowMatchingThreadIdTerminalEvent = input.allowMatchingThreadIdTerminalEvent === true;
if (
allowMatchingThreadIdTerminalEvent &&
input.eventThreadId &&
input.currentThreadId &&
input.eventThreadId === input.currentThreadId
) {
return false;
}
return true;
}
if (input.turnInFlight && !allowAnonymousTerminalEvent) {
return true;
}
return false;
}