from __future__ import annotations import argparse import json from content_agent.run_service import RunService from content_agent.schemas import RunStartRequest def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description="Run the Content Agent V1 mock chain.") parser.add_argument("--source", default=None) parser.add_argument("--demand-content-id", type=int, default=None) parser.add_argument("--run-label", default=None) parser.add_argument("--platform", default="douyin") parser.add_argument("--platform-mode", choices=["mock", "real"], default="mock") parser.add_argument("--strategy-version", default=None) return parser def request_from_args(args: argparse.Namespace) -> RunStartRequest: return RunStartRequest( source=args.source, demand_content_id=args.demand_content_id, run_label=args.run_label, platform=args.platform, platform_mode=args.platform_mode, **({"strategy_version": args.strategy_version} if args.strategy_version else {}), ) def main() -> None: parser = build_parser() args = parser.parse_args() service = RunService.from_env() state = service.start_run(request_from_args(args)) print(json.dumps(service.get_summary(state["run_id"]), ensure_ascii=False, indent=2)) if __name__ == "__main__": main()