atlas-iac/services/hermes/scripts/cli_lane_route_quality.py

31 lines
1.1 KiB
Python

#!/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]}"