@@ -610,13 +610,17 @@ def script_help_text(script: Path) -> str:
610610def determine_flag (script : Path , candidates : Sequence [str ]) -> str | None :
611611 help_text = script_help_text (script )
612612 advertised = _advertised_flags (help_text )
613+ for flag in candidates :
614+ if flag and flag in advertised :
615+ return flag
616+
613617 try :
614618 source = script .read_text (encoding = "utf-8" )
615619 except (OSError , UnicodeDecodeError ):
616- return None
620+ source = ""
617621 for flag in candidates :
618622 if flag and flag in source :
619- return flag
623+ return flag
620624 return None
621625
622626
@@ -861,15 +865,12 @@ def build_question_invocation(
861865 if script is None :
862866 raise RuntimeError ("No asker script available" )
863867 route = "multi" if use_multi else "asker"
864- def _append_flag (script_path : Path , args : list [str ], candidates : list [str ], value : str ) -> None :
868+ def _append_flag (
869+ script_path : Path , args : list [str ], candidates : list [str ], value : str
870+ ) -> None :
865871 flag = determine_flag (script_path , candidates )
866- if not flag :
867- # Typer-based CLIs such as multi_agent.py require running via ``-m`` to
868- # expose subcommand help. When invoked as a script from the harness the
869- # ``--help`` probe used by ``determine_flag`` fails, so fall back to the
870- # primary candidate.
871- flag = candidates [0 ]
872- args .extend ([flag , value ])
872+ if flag :
873+ args .extend ([flag , value ])
873874
874875 if not use_multi :
875876 base_args : List [str ] = []
0 commit comments