diff --git a/bin/disinto b/bin/disinto index 69e34dd..dc56f39 100755 --- a/bin/disinto +++ b/bin/disinto @@ -1789,7 +1789,6 @@ _validate_env_vars() { while IFS='|' read -r service_name forge_user base_url _api_key; do [ -n "$service_name" ] || continue [ -n "$forge_user" ] || continue - [ -n "$base_url" ] || continue # Derive variable names (user -> USER_UPPER) local user_upper @@ -1809,7 +1808,7 @@ _validate_env_vars() { errors=$((errors + 1)) fi - # Check backend URL or API key + # Check backend URL or API key (conditional based on base_url presence) if [ -n "$base_url" ]; then # Local model: needs ANTHROPIC_BASE_URL if [ -z "${env_vars[ANTHROPIC_BASE_URL]:-}" ]; then diff --git a/lib/hire-agent.sh b/lib/hire-agent.sh index 5ebe5a1..149845b 100644 --- a/lib/hire-agent.sh +++ b/lib/hire-agent.sh @@ -262,8 +262,10 @@ disinto_hire_an_agent() { # Local model agent: write ANTHROPIC_BASE_URL local backend_var="ANTHROPIC_BASE_URL" local backend_val="$local_model" + local escaped_val + escaped_val=$(printf '%s\n' "$backend_val" | sed 's/[&/\]/\\&/g') if grep -q "^${backend_var}=" "$env_file" 2>/dev/null; then - sed -i "s|^${backend_var}=.*|${backend_var}=${backend_val}|" "$env_file" + sed -i "s|^${backend_var}=.*|${backend_var}=${escaped_val}|" "$env_file" echo " ${backend_var} updated" else printf '%s=%s\n' "$backend_var" "$backend_val" >> "$env_file"