butler/gateway/network_route_verify_runner.py
Rama main · réplica de lectura del repositorio original.
"""Gateway-side handler route sim (ENG-7 — tools must not import message_handler)."""
from __future__ import annotations
import time
from butler.tools.network_route_verify import (
HandlerRouteReport,
NetworkRouteManifest,
)
def run_handler_route_cases(
manifest: NetworkRouteManifest,
*,
owner_id: str = "owner-route-handler-sim",
project_name: str = "",
strict: bool = False,
) -> HandlerRouteReport:
from butler.gateway.message_handler import ButlerMessageHandler
from butler.gateway.network_route_verify_runner_ops import run_handler_route_case_safe
report = HandlerRouteReport(ok=True)
handler = ButlerMessageHandler(channel="gateway")
for case in manifest.handler_cases:
sk = f"wechat:{owner_id}:route-h-{time.time_ns()}"
outcome = run_handler_route_case_safe(
handler,
case,
owner_id=owner_id,
session_key=sk,
project_name=project_name,
strict=strict,
)
report.cases.append(outcome["entry"])
report.errors.extend(outcome["errors"])
report.warnings.extend(outcome["warnings"])
if not outcome["ok"]:
report.ok = False
return report
__all__ = ["run_handler_route_cases"]