[docs]defprovider_bin_env_key(provider:str)->str:""" Return the provider-specific environment variable used for binary overrides. Parameters ---------- provider : str Provider identifier (for example `codex`, `claude`, `gemini`, or `opencode`). Returns ------- str Environment variable key for provider binary overrides. """return_AGENT_REGISTRY.get(provider).bin_env_key
[docs]defresolve_provider_binary(provider:str,*,provider_bin_override:str|None=None,)->str:""" Resolve the executable name/path for the selected provider. Parameters ---------- provider : str Provider identifier (for example `codex`, `claude`, `gemini`, or `opencode`). provider_bin_override : str | None Optional provider-specific binary override consumed by the selected agent adapter. Returns ------- str Resolved executable name/path for the provider. """return_AGENT_REGISTRY.get(provider).resolve_binary(provider_bin_override=provider_bin_override)
[docs]defresolve_provider_binary_override(provider:str,*,raw_override:str|None=None,)->str|None:""" Resolve an optional compatibility binary override for the selected provider. Parameters ---------- provider : str Provider identifier. raw_override : str | None Raw CLI/config override value preserved for backward compatibility. Returns ------- str | None Provider-specific override value when the selected agent consumes it. """return_AGENT_REGISTRY.get(provider).resolve_binary_override(raw_override)
[docs]defcollect_provider_service_env_overrides(*,cwd:Path)->dict[str,str]:""" Collect provider-specific service env overrides from the current process env. """env:dict[str,str]={}foragentin_AGENT_REGISTRY.all():env.update(agent.service_env_overrides(cwd=cwd))returnenv
[docs]defbuild_exec_command(*,provider:str=DEFAULT_PROVIDER,provider_bin:str,repo_dir:Path,prompt:str,sandbox_policy:str=DEFAULT_SANDBOX_POLICY,sandbox_mode:str|None=None,model:str|None=None,reasoning_effort:str|None=None,json_output:bool=True,)->list[str]:""" Build a provider-specific command for one exec/chat invocation. Parameters ---------- provider : str Provider identifier (for example `codex`, `claude`, `gemini`, or `opencode`). provider_bin : str Executable or command name used to run the provider. repo_dir : Path Workspace repository path receiving overlaid entries. prompt : str Prompt text sent to the provider process. sandbox_policy : str Sandbox policy override (`enforce` or `bypass`). sandbox_mode : str | None Sandbox mode override passed to the provider runtime. model : str | None Optional provider model override. reasoning_effort : str | None Optional provider reasoning-effort override (`low`, `medium`, `high`, or `xhigh`). json_output : bool Whether to request JSON output from the provider process. Returns ------- list[str] Argument vector ready to execute via `subprocess`. """return_AGENT_REGISTRY.get(provider).build_exec_command(provider_bin=provider_bin,repo_dir=repo_dir,prompt=prompt,sandbox_policy=sandbox_policy,sandbox_mode=sandbox_mode,model=model,reasoning_effort=reasoning_effort,json_output=json_output,)