"""Extract structured clarification JSON from model transcripts (strict prefix line)."""
from __future__ import annotations

import json
from typing import Optional

from src.domain.codegen.interruption_schemas import ClarificationRequestV1

_PREFIX = "P2HS_CLARIFICATION_JSON:"


def extract_clarification_from_transcript(text: str) -> Optional[ClarificationRequestV1]:
    if not text or _PREFIX not in text:
        return None
    for raw_line in text.splitlines():
        line = raw_line.strip()
        if not line.startswith(_PREFIX):
            continue
        payload = line[len(_PREFIX) :].strip()
        if not payload:
            continue
        try:
            data = json.loads(payload)
        except json.JSONDecodeError:
            continue
        try:
            req = ClarificationRequestV1.model_validate(data)
        except Exception:
            continue
        if req.questions:
            return req
    return None
