from __future__ import annotations

import json
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
if str(ROOT) not in sys.path:
    sys.path.insert(0, str(ROOT))

from configs.kling import ENDPOINTS
from scripts.scene_router import choose_endpoint


def main():
    required = ['text2video', 'image2video', 'omni', 'reference2video', 'extend']
    missing = [k for k in required if k not in ENDPOINTS]
    routes = {
        'text': choose_endpoint({'scene_type': 'text'}),
        'image_ref': choose_endpoint({'scene_type': 'image_ref'}),
        'continuity': choose_endpoint({'scene_type': 'continuity'}),
        'extend': choose_endpoint({'scene_type': 'text', 'extend_flag': True}),
    }
    ok = not missing and routes == {
        'text': 'text2video',
        'image_ref': 'image2video',
        'continuity': 'reference2video',
        'extend': 'extend',
    }
    print(json.dumps({'ok': ok, 'missing': missing, 'routes': routes}, ensure_ascii=False, indent=2))


if __name__ == '__main__':
    main()
