"""카메라 문법 wave (2026-08-12) — 실행 팩과 provenance registry 정합.

Codex HIGH-3: 실행은 새 팩(로더 latest 자동 선택)인데 registry 가 옛 판을
기록하면 provenance 가 거짓이 된다 — scene_detail 선례(테스트가 최신
major 를 파생해 대조, 판 숫자 하드코딩 금지)와 같은 방식으로 flow·
staging·scene_detail 의 prompt_dependency 를 최신 팩에 잠근다.
"""
from app.core.version_registry import MODULE_VERSIONS, _MODULE_INFO
from app.modules.prompt_loader import _list_module_versions


def _latest_major(module: str) -> str:
    return _list_module_versions(module)[0].split(".")[0]


def test_scene_camera_flow_registry_matches_latest_pack():
    major = _latest_major("scene_camera_flow")
    assert _MODULE_INFO["scene_camera_flow"]["prompt_dependency"] == (
        f"scene_camera_flow/v{major}")


def test_shot_staging_registry_matches_latest_pack():
    major = _latest_major("shot_staging")
    assert _MODULE_INFO["shot_staging"]["prompt_dependency"] == (
        f"shot_staging/v{major}")


def test_scene_detail_registry_matches_latest_pack():
    major = _latest_major("scene_detail")
    assert _MODULE_INFO["scene_detail_composer"]["prompt_dependency"] == (
        f"scene_detail/v{major}")
    assert f".{major}." in MODULE_VERSIONS["scene_detail_composer"]
