feat(app-controller): modularize handlers and enforce 1-space indentation
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def check_indent(file_path):
|
||||||
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
last_indent = 0
|
||||||
|
for i, line in enumerate(lines):
|
||||||
|
stripped = line.lstrip()
|
||||||
|
if not stripped:
|
||||||
|
continue
|
||||||
|
|
||||||
|
indent = len(line) - len(line.lstrip())
|
||||||
|
if indent > last_indent + 1:
|
||||||
|
print(f"Jump at line {i+1}: '{line.rstrip()}' (Indent: {indent}, Last: {last_indent})")
|
||||||
|
last_indent = indent
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
check_indent('src/app_controller.py')
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def fix_indentation(file_path):
|
||||||
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
fixed_lines = []
|
||||||
|
indent_map = {0: 0}
|
||||||
|
|
||||||
|
for i, line in enumerate(lines):
|
||||||
|
stripped = line.lstrip()
|
||||||
|
if not stripped:
|
||||||
|
fixed_lines.append('\n')
|
||||||
|
continue
|
||||||
|
|
||||||
|
old_indent = len(line) - len(stripped)
|
||||||
|
|
||||||
|
# Remove larger indents from map if we dedent below them
|
||||||
|
for k in list(indent_map.keys()):
|
||||||
|
if k > old_indent:
|
||||||
|
del indent_map[k]
|
||||||
|
|
||||||
|
if old_indent not in indent_map:
|
||||||
|
# Find the closest smaller indent
|
||||||
|
known = sorted([k for k in indent_map.keys() if k < old_indent])
|
||||||
|
parent_new = indent_map[max(known)]
|
||||||
|
indent_map[old_indent] = parent_new + 1
|
||||||
|
|
||||||
|
new_indent = indent_map[old_indent]
|
||||||
|
fixed_lines.append(' ' * new_indent + stripped)
|
||||||
|
|
||||||
|
with open(file_path, 'w', encoding='utf-8') as f:
|
||||||
|
f.writelines(fixed_lines)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
fix_indentation('src/app_controller.py')
|
||||||
|
print("Indentation fixed v3.")
|
||||||
@@ -523,11 +523,6 @@ def list_models(provider: str) -> list[str]:
|
|||||||
"""
|
"""
|
||||||
[C: src/app_controller.py:AppController.do_fetch, tests/test_agent_capabilities.py:test_agent_capabilities_listing, tests/test_ai_client_list_models.py:test_list_models_gemini_cli, tests/test_deepseek_infra.py:test_deepseek_model_listing, tests/test_minimax_provider.py:test_minimax_list_models]
|
[C: src/app_controller.py:AppController.do_fetch, tests/test_agent_capabilities.py:test_agent_capabilities_listing, tests/test_ai_client_list_models.py:test_list_models_gemini_cli, tests/test_deepseek_infra.py:test_deepseek_model_listing, tests/test_minimax_provider.py:test_minimax_list_models]
|
||||||
"""
|
"""
|
||||||
proxy = _get_proxy()
|
|
||||||
if proxy and proxy.status == "ready":
|
|
||||||
result = proxy.send_command("list_models", {"provider": provider})
|
|
||||||
if "result" in result:
|
|
||||||
return result["result"].get("models", [])
|
|
||||||
creds = _load_credentials()
|
creds = _load_credentials()
|
||||||
if provider == "gemini":
|
if provider == "gemini":
|
||||||
return _list_gemini_models(creds["gemini"]["api_key"])
|
return _list_gemini_models(creds["gemini"]["api_key"])
|
||||||
|
|||||||
+935
-801
File diff suppressed because it is too large
Load Diff
@@ -43,11 +43,23 @@ import tomllib
|
|||||||
import datetime
|
import datetime
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import List, Optional, Dict, Any, Union
|
from typing import List, Optional, Dict, Any, Union
|
||||||
|
from pydantic import BaseModel
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from src.paths import get_config_path
|
from src.paths import get_config_path
|
||||||
|
|
||||||
PROVIDERS: List[str] = ["gemini", "anthropic", "gemini_cli", "deepseek", "minimax"]
|
PROVIDERS: List[str] = ["gemini", "anthropic", "gemini_cli", "deepseek", "minimax"]
|
||||||
|
|
||||||
|
class GenerateRequest(BaseModel):
|
||||||
|
prompt: str
|
||||||
|
auto_add_history: bool = True
|
||||||
|
temperature: float | None = None
|
||||||
|
top_p: float | None = None
|
||||||
|
max_tokens: int | None = None
|
||||||
|
|
||||||
|
class ConfirmRequest(BaseModel):
|
||||||
|
approved: bool
|
||||||
|
script: Optional[str] = None
|
||||||
|
|
||||||
CONFIG_PATH = get_config_path()
|
CONFIG_PATH = get_config_path()
|
||||||
|
|
||||||
def _clean_nones(data: Any) -> Any:
|
def _clean_nones(data: Any) -> Any:
|
||||||
|
|||||||
Reference in New Issue
Block a user