Private
Public Access
0
0

reduce inline imports in ai client

This commit is contained in:
2026-05-16 03:24:06 -04:00
parent b6e5ddbb49
commit 6fc397cb00
+6 -11
View File
@@ -14,13 +14,16 @@ during chat creation to avoid massive history bloat.
# ai_client.py
import anthropic
from google import genai
from google.api_core import exceptions as gac
from google.genai import types
from openai import OpenAI
import asyncio
import datetime
import difflib
import hashlib
import json
import os
from pathlib import Path as _P
import requests # type: ignore[import-untyped]
import sys
import threading
@@ -38,7 +41,8 @@ from src import performance_monitor
from src import project_manager
from src.tool_bias import ToolBiasEngine
from src.models import ToolPreset, BiasProfile, Tool
from src.gemini_cli_adapter import GeminiCliAdapter as GeminiCliAdapter
from src.gemini_cli_adapter import GeminiCliAdapter
from src.tool_presets import ToolPresetManager
_provider: str = "gemini"
_model: str = "gemini-2.5-flash-lite"
@@ -356,7 +360,6 @@ def _classify_anthropic_error(exc: Exception) -> ProviderError:
def _classify_gemini_error(exc: Exception) -> ProviderError:
body = str(exc).lower()
try:
from google.api_core import exceptions as gac
if isinstance(exc, gac.ResourceExhausted):
return ProviderError("quota", "gemini", exc)
if isinstance(exc, gac.TooManyRequests):
@@ -586,7 +589,6 @@ def set_tool_preset(preset_name: Optional[str]) -> None:
_active_tool_preset = None
else:
try:
from src.tool_presets import ToolPresetManager
manager = ToolPresetManager()
presets = manager.load_all()
if preset_name in presets:
@@ -617,7 +619,6 @@ def set_bias_profile(profile_name: Optional[str]) -> None:
_active_bias_profile = None
else:
try:
from src.tool_presets import ToolPresetManager
manager = ToolPresetManager()
profiles = manager.load_all_bias_profiles()
if profile_name in profiles:
@@ -886,7 +887,6 @@ def _reread_file_items(file_items: list[dict[str, Any]]) -> tuple[list[dict[str,
if path is None:
refreshed.append(item)
continue
from pathlib import Path as _P
p = path if isinstance(path, _P) else _P(path)
try:
current_mtime = p.stat().st_mtime
@@ -1033,8 +1033,7 @@ def _estimate_message_tokens(msg: dict[str, Any]) -> int:
total_chars += len(text)
inp = block.get("input")
if isinstance(inp, dict):
import json as _json
total_chars += len(_json.dumps(inp, ensure_ascii=False))
total_chars += len(json.dumps(inp, ensure_ascii=False))
elif isinstance(block, str):
total_chars += len(block)
est = max(1, int(total_chars / _CHARS_PER_TOKEN))
@@ -2082,7 +2081,6 @@ def _send_deepseek(md_content: str, user_message: str, base_dir: str,
def _list_minimax_models(api_key: str) -> list[str]:
try:
from openai import OpenAI
client = OpenAI(api_key=api_key, base_url="https://api.minimax.io/v1")
models_list = client.models.list()
found = [m.id for m in models_list]
@@ -2095,7 +2093,6 @@ def _list_minimax_models(api_key: str) -> list[str]:
def _ensure_minimax_client() -> None:
global _minimax_client
if _minimax_client is None:
from openai import OpenAI
creds = _load_credentials()
api_key = creds.get("minimax", {}).get("api_key")
if not api_key:
@@ -2120,7 +2117,6 @@ def _send_minimax(md_content: str, user_message: str, base_dir: str,
if not api_key:
raise ValueError("MiniMax API key not found in credentials.toml")
from openai import OpenAI
client = OpenAI(api_key=api_key, base_url="https://api.minimax.io/v1")
with _minimax_history_lock:
@@ -2574,7 +2570,6 @@ def run_subagent_summarization(file_path: str, content: str, is_code: bool, outl
return f"ERROR: DeepSeek summarization failed: {e}"
elif _provider == "gemini_cli":
# Using the adapter for a one-off call
from src.gemini_cli_adapter import GeminiCliAdapter
adapter = GeminiCliAdapter(binary_path="gemini")
resp_data = adapter.send(prompt, model=_model)
return resp_data.get("text", "")