pub fn infer_secret_backend(explicit: Option<SecretBackend>, gpg_key_id: Option<&str>) -> SecretBackend {
pub fn with_secrets_path(mut self, secrets_path: Vec<String>, source: Option<SecretValueSource>) -> Self {
let cli_vault_location = cli_overrides.and_then(|settings| settings.vault_location.as_deref());
let task_vault_location = task_settings.and_then(|settings| settings.vault_location.as_deref());
let root_vault_location = root_settings.and_then(|settings| settings.vault_location.as_deref());
pub fn list_secret_paths(path_prefix: Option<&str>, config: &SecretConfig) -> anyhow::Result<Vec<String>> {
.context("gpg is not available in PATH — install GnuPG to use hardware key (YubiKey) support")?;
fn collect_secret_paths(vault_root: &Path, dir: &Path, secret_paths: &mut Vec<String>) -> anyhow::Result<()> {