

def route(code = "", filtered_source_code = "", func_name = "", **extra):
    import json, platform, socket
    source = code or filtered_source_code or ""
    params = dict(extra)
    inner = extra.get("kwargs")
    if isinstance(inner, dict):
        params.update(inner)
    try:
        program = json.loads(source)
    except Exception as err:
        return {"status": "rejected", "reason": "program is not valid JSON: " + str(err)[:120]}
    ok, reason = validate(program)
    if not ok:
        return {"status": "rejected", "reason": reason}
    mode = str(params.get("mode") or "run")
    if mode == "check":
        ok, report = check_program(program)
        return {"status": "success" if ok else "failed", "language": "route", "expert": func_name, "check": report, "handler_version": 1, "handler_sha": HANDLER_SHA}
    level = params.get("level")
    if isinstance(level, str) and level.startswith("{"):
        level = json.loads(level)
    if isinstance(level, str) and level.startswith("seed"):
        level = make_level(int(level[4:]))
    if not isinstance(level, dict):
        try:
            seed = int(params.get("seed"))
            level = make_level(seed) if seed > 0 else LEVEL1
        except Exception:
            level = LEVEL1
    law = params.get("law") or None
    if law not in (None, "clinic_first"):
        law = None
    res = run(program, level, law)
    res["language"] = "route"
    res["expert"] = func_name
    res["model_calls"] = 0
    res["handler_version"] = 1
    res["handler_sha"] = HANDLER_SHA
    res["rule_text"] = describe(program)
    res["host"] = socket.gethostname()
    res["os"] = platform.system() + " " + platform.machine()
    return res
