generated from kgod/ai-review-template
42 lines
1.8 KiB
Python
42 lines
1.8 KiB
Python
"""Candidate rewrite for Builder entries (light STAR optimization)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from copy import deepcopy
|
|
from typing import Any
|
|
|
|
|
|
def _candidate_rewrite(
|
|
agent: Any, profile: dict[str, Any], entry: dict[str, Any], section: str, *, instruction: str | None = None,
|
|
) -> dict[str, Any]:
|
|
try:
|
|
proposal = agent.expander.expand(
|
|
deepcopy(entry),
|
|
context={
|
|
"job_type": profile.get("job_type"),
|
|
"target_position": profile.get("target_position"),
|
|
"entry_type": section,
|
|
"instruction": instruction,
|
|
},
|
|
)
|
|
except Exception as exc:
|
|
proposal = {
|
|
"generation_source": "unavailable",
|
|
"fallback_reason": type(exc).__name__.casefold()[:48],
|
|
}
|
|
original = str(entry.get("description") or "").strip()
|
|
unavailable = proposal.get("generation_source") == "unavailable"
|
|
optimized = "" if unavailable else str(proposal.get("optimized_description") or "").strip() or original
|
|
# The expander owns objective coverage validation. Builder must not infer
|
|
# semantic omissions through lexical comparison or append source text after
|
|
# an LLM rewrite.
|
|
uncovered = [str(item).strip() for item in proposal.get("uncovered_facts") or [] if str(item).strip()]
|
|
return {
|
|
"optimized_description": optimized,
|
|
"changes": proposal.get("changes") or [],
|
|
"source": proposal.get("source") or "ai_expanded",
|
|
"uncovered_facts": list(dict.fromkeys(uncovered))[:8],
|
|
"optimization_unavailable": unavailable,
|
|
**({"fallback_reason": proposal["fallback_reason"]} if proposal.get("fallback_reason") else {}),
|
|
**({"generation_source": proposal["generation_source"]} if proposal.get("generation_source") else {}),
|
|
} |