loki-mode 5.58.0 → 5.58.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -110,16 +110,20 @@ provider_invoke() {
110
110
  local output
111
111
  local exit_code
112
112
 
113
- # Try primary model first
114
- output=$(gemini --approval-mode=yolo --model "$PROVIDER_MODEL" "$prompt" "$@" < /dev/null 2>&1)
113
+ # Try primary model first - capture stderr separately to avoid polluting output
114
+ local stderr_file
115
+ stderr_file=$(mktemp)
116
+ output=$(gemini --approval-mode=yolo --model "$PROVIDER_MODEL" "$prompt" "$@" < /dev/null 2>"$stderr_file")
115
117
  exit_code=$?
116
118
 
117
- # Check for rate limit (429) or quota exceeded
118
- if [[ $exit_code -ne 0 ]] && echo "$output" | grep -qiE "(rate.?limit|429|quota|resource.?exhausted)"; then
119
+ # Check for rate limit (429) or quota exceeded (check stderr for error indicators)
120
+ if [[ $exit_code -ne 0 ]] && grep -qiE "(rate.?limit|429|quota|resource.?exhausted)" "$stderr_file" 2>/dev/null; then
121
+ rm -f "$stderr_file"
119
122
  echo "[loki] Rate limit hit on $PROVIDER_MODEL, falling back to $PROVIDER_MODEL_FALLBACK" >&2
120
123
  gemini --approval-mode=yolo --model "$PROVIDER_MODEL_FALLBACK" "$prompt" "$@" < /dev/null
121
124
  else
122
125
  echo "$output"
126
+ rm -f "$stderr_file"
123
127
  return $exit_code
124
128
  fi
125
129
  }
@@ -153,16 +157,20 @@ provider_invoke_with_tier() {
153
157
  local output
154
158
  local exit_code
155
159
 
156
- # Try selected model first
157
- output=$(gemini --approval-mode=yolo --model "$model" "$prompt" "$@" < /dev/null 2>&1)
160
+ # Try selected model first - capture stderr separately to avoid polluting output
161
+ local stderr_file
162
+ stderr_file=$(mktemp)
163
+ output=$(gemini --approval-mode=yolo --model "$model" "$prompt" "$@" < /dev/null 2>"$stderr_file")
158
164
  exit_code=$?
159
165
 
160
166
  # Check for rate limit (429) or quota exceeded - fallback to flash
161
- if [[ $exit_code -ne 0 ]] && echo "$output" | grep -qiE "(rate.?limit|429|quota|resource.?exhausted)"; then
167
+ if [[ $exit_code -ne 0 ]] && grep -qiE "(rate.?limit|429|quota|resource.?exhausted)" "$stderr_file" 2>/dev/null; then
168
+ rm -f "$stderr_file"
162
169
  echo "[loki] Rate limit hit on $model, falling back to $PROVIDER_MODEL_FALLBACK" >&2
163
170
  gemini --approval-mode=yolo --model "$PROVIDER_MODEL_FALLBACK" "$prompt" "$@" < /dev/null
164
171
  else
165
172
  echo "$output"
173
+ rm -f "$stderr_file"
166
174
  return $exit_code
167
175
  fi
168
176
  }