#!/usr/bin/env python3 """Capability and effort floors for quality-driven CLI retries.""" from __future__ import annotations from cli_lane_config import CAPABILITIES, EFFORTS, Route def quality_retry_assignee(previous: Route, selected: Route) -> str: """Raise effort before capability when quality feedback repeats a plan.""" capability = max( CAPABILITIES.index(previous.capability), CAPABILITIES.index(selected.capability) ) effort = max(EFFORTS.index(previous.effort), EFFORTS.index(selected.effort)) provider = selected.provider if ( selected.provider == previous.provider and selected.model == previous.model and capability == CAPABILITIES.index(previous.capability) and effort == EFFORTS.index(previous.effort) ): if effort < len(EFFORTS) - 1: effort += 1 elif capability < len(CAPABILITIES) - 1: capability += 1 effort = EFFORTS.index(previous.effort) else: provider = "claude" if provider == "codex" else "codex" role = CAPABILITIES[capability] return f"cli-{provider}-{role}-{EFFORTS[effort]}"