Private
Public Access
0
0
Files
manual_slop/tests
ed 89000dec7f refactor(ai_client): migrate _extract_gemini_thoughts + _list_minimax_models (Phase 11 sites 7+8)
Site 7 (_extract_gemini_thoughts):
  try: getattr(resp, 'candidates', None) or [] ... chunks.append(p.text)
  except Exception: pass
  return ''.join(chunks).strip()

Body: pass + empty default '' = SS violation (silent + data loss).

Site 8 (_list_minimax_models):
  try: client.models.list() ... if found: return sorted(found)
  except Exception: pass
  return ['MiniMax-M2.7', 'MiniMax-M2.5', 'MiniMax-M2.1', 'MiniMax-M2']

Body: pass + hardcoded default = SS violation.

New helpers:
- _extract_gemini_thoughts_result(resp) -> Result[str]
  Returns Result(data=thinking_text) on success, Result(data='', errors=[ErrorInfo])
  on attribute access failure.
- _list_minimax_models_result(api_key) -> Result[list[str]]
  Returns Result(data=sorted_models) on success, Result(data=defaults, errors=[ErrorInfo])
  on SDK failure. Defaults extracted to _MINIMAX_DEFAULT_MODELS module constant.

Legacy wrappers delegate to _result helpers and return result.data.

Audit: ai_client SS 7 -> 5. COMPLIANT 29 -> 31.
2026-06-20 14:01:55 -04:00
..