from__future__importannotationsimportargparsefrompathlibimportPathdef_cli():fromfermilinkimportclireturnclidef_implement_controller():fromfermilink.implementimportmainasimplement_controllerreturnimplement_controllerdef_implement_state():fromfermilink.implementimportstateasimplement_statereturnimplement_statedef_normalize_text(value:object)->str:ifnotisinstance(value,str):return""returnvalue.strip()def_project_root_from_args(args:argparse.Namespace)->Path:raw=_normalize_text(getattr(args,"project_root",None))or"."returnPath(raw).expanduser().resolve()def_resolve_implement_mode(args:argparse.Namespace)->str:cli=_cli()target=_normalize_text(getattr(args,"goal",None))goal_path=_normalize_text(getattr(args,"goal_path",None))iftarget.lower()=="status":ifgoal_path:raisecli.PackageError("`fermilink implement status` does not accept a goal path.")return"status"iftarget.lower()=="run":ifnotgoal_path:raisecli.PackageError("`fermilink implement run` requires a goal markdown path.")args.goal=goal_pathargs.goal_path=Nonereturn"run"ifgoal_path:raisecli.PackageError("Use `fermilink implement <goal.md>` or ""`fermilink implement run <goal.md>`.")ifnottarget:raisecli.PackageError("Implement requires one of: `status`, `<goal.md>`, or `run <goal.md>`.")return"run"def_emit_status(args:argparse.Namespace,payload:dict[str,object])->int:cli=_cli()lines=[f"Implement status: {payload.get('project_root')}",(f"Run lock: {payload.get('run_lock_status')} "f"(pid={payload.get('run_lock_pid')})"),(f"Progress: iteration={payload.get('iteration')}, accepted="f"{payload.get('accepted_count')}, rejected={payload.get('rejected_count')}"),(f"Incumbent: {payload.get('incumbent_commit')} "f"(score={payload.get('incumbent_score')}, "f"complete={payload.get('complete')})"),"Recent results:",str(payload.get("recent_results")or"(no results yet)"),]cli._emit_output(args,payload,lines)return0def_emit_campaign(args:argparse.Namespace,payload:dict[str,object])->int:cli=_cli()status=str(payload.get("status")or"completed")lines=[(f"Implement campaign for '{payload.get('package_id')}' on branch "f"{payload.get('branch')}."),f"Status: {status}.",]plan_path=str(payload.get("plan_path")or"").strip()contract_path=str(payload.get("contract_path")or"").strip()ifcontract_path:lines.append(f"Contract: {contract_path}")ifplan_path:lines.append(f"Plan: {plan_path}")ifstatus!="planned":lines.extend([(f"Incumbent commit: {payload.get('incumbent_commit')} "f"(score={payload.get('incumbent_score')}, "f"complete={payload.get('complete')})."),("Results: "f"{payload.get('accepted_count')} accepted, "f"{payload.get('rejected_count')} rejected."),])results_path=str(payload.get("results_path")or"").strip()ifresults_path:lines.append(f"Results ledger: {results_path}")cli._emit_output(args,payload,lines)return0
[docs]defcmd_implement(args:argparse.Namespace)->int:"""Execute implement goal mode or campaign status."""cli=_cli()raw_worker_model=getattr(args,"worker_model",None)ifraw_worker_modelisnotNone:worker_model_text=str(raw_worker_model).strip()ifnotworker_model_text:raisecli.PackageError("--worker-model cannot be empty.")args.worker_model=worker_model_textifbool(getattr(args,"baseline_only",False))andbool(getattr(args,"plan_only",False)):raisecli.PackageError("Cannot combine --baseline-only with --plan-only.")mode=_resolve_implement_mode(args)lock_path:Path|None=Noneifmode=="run":lock_path=_implement_state().run_lock_path(_project_root_from_args(args))try:ifmode=="status":payload=_implement_controller().read_campaign_status(args)return_emit_status(args,payload)payload=_implement_controller().run_goal_campaign(args)exceptKeyboardInterrupt:cli._print_tagged("implement","interrupted by user.",stderr=True)return130finally:ifisinstance(lock_path,Path):_implement_state().clear_run_lock(lock_path)return_emit_campaign(args,payload)