From 1c19c0de5999f2e8b6eaa798157922c9cfe2b536 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 26 Aug 2026 03:07:29 -0400 Subject: [PATCH] fix: _cfg_provider_keys path resolution for installed layout Try both repo (../lib/ai-providers/) and installed (./ai-providers/) paths. Installed layout copies ai-providers/ to same dir as config-ui.sh. --- lib/config-ui.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/config-ui.sh b/lib/config-ui.sh index ac981c3..f6b5b44 100644 --- a/lib/config-ui.sh +++ b/lib/config-ui.sh @@ -140,9 +140,18 @@ _cfg_plugin_keys() { # adapters' "# PROVIDER_CONFIG:" headers (lib/ai-providers/*.sh). _cfg_provider_keys() { local pdir line key desc flags - # Find lib/ai-providers/ relative to config-ui.sh - pdir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../lib/ai-providers" 2>/dev/null && pwd)" - [ -d "$pdir" ] || return 0 + # Repo layout: lib/config-ui.sh → ../lib/ai-providers/ + # Installed layout: /usr/local/bin/config-ui.sh → ./ai-providers/ + pdir="" + for candidate in \ + "$(dirname "${BASH_SOURCE[0]}")/../lib/ai-providers" \ + "$(dirname "${BASH_SOURCE[0]}")/ai-providers"; do + if [ -d "$candidate" ]; then + pdir="$(cd "$candidate" 2>/dev/null && pwd)" + break + fi + done + [ -n "$pdir" ] || return 0 while IFS= read -r line; do [ -n "$line" ] || continue # Format: KEY=flags:description (same as POS_CONFIG key fields)