refactor(app_controller): migrate UIPanelConfig, ProviderPayload, PathInfo consumers (Phase 10 batch 4)
Phase 10 (batch 4): UIPanelConfig + ProviderPayload + PathInfo
Before: 7 .get() sites in src/app_controller.py
After: 0
Delta: -7
Migrates:
1. UIPanelConfig (3 sites at app_controller.py:2070-2072):
gui_cfg.get('separate_message_panel', False) -> UIPanelConfig.from_dict(gui_cfg).separate_message_panel
gui_cfg.get('separate_response_panel', False) -> UIPanelConfig.from_dict(gui_cfg).separate_response_panel
gui_cfg.get('separate_tool_calls_panel', False)-> UIPanelConfig.from_dict(gui_cfg).separate_tool_calls_panel
2. PathInfo (2 sites at app_controller.py:1986-1987):
path_info['logs_dir']['path'] -> PathInfo.from_dict(path_info).logs_dir['path']
path_info['scripts_dir']['path'] -> PathInfo.from_dict(path_info).scripts_dir['path']
Inner ['path'] remains because PathInfo.logs_dir is dict (not dataclass).
3. ProviderPayload (2 sites at app_controller.py:2278-2281 and 2291):
payload.get('script') or json.dumps(payload.get('args', {}), indent=1)
-> ProviderPayload.from_dict(payload).script or json.dumps(pp.args, indent=1)
payload.get('output', payload.get('content', ''))
-> ProviderPayload.from_dict(payload).output or payload.get('content', '')
Tests: 39/39 pass across 11 test files.
This commit is contained in:
+15
-7
@@ -1983,8 +1983,10 @@ class AppController:
|
||||
paths.initialize_paths(paths.get_config_path())
|
||||
|
||||
path_info = paths.get_full_path_info()
|
||||
self.ui_logs_dir = str(path_info['logs_dir']['path'])
|
||||
self.ui_scripts_dir = str(path_info['scripts_dir']['path'])
|
||||
from src.type_aliases import PathInfo as _PI
|
||||
_pi = _PI.from_dict(path_info) if isinstance(path_info, dict) else path_info
|
||||
self.ui_logs_dir = str(_pi.logs_dir['path'])
|
||||
self.ui_scripts_dir = str(_pi.scripts_dir['path'])
|
||||
|
||||
if not self.project or not isinstance(self.project, dict) or "project" not in self.project:
|
||||
name = Path(self.active_project_path).stem if self.active_project_path else "unnamed"
|
||||
@@ -2067,9 +2069,11 @@ class AppController:
|
||||
self.ui_project_preset_name = proj_meta.get("active_preset")
|
||||
|
||||
gui_cfg = self.config.get("gui", {})
|
||||
self.ui_separate_message_panel = gui_cfg.get('separate_message_panel', False)
|
||||
self.ui_separate_response_panel = gui_cfg.get('separate_response_panel', False)
|
||||
self.ui_separate_tool_calls_panel = gui_cfg.get('separate_tool_calls_panel', False)
|
||||
from src.type_aliases import UIPanelConfig as _UIP
|
||||
_uip = _UIP.from_dict(gui_cfg) if isinstance(gui_cfg, dict) else gui_cfg
|
||||
self.ui_separate_message_panel = _uip.separate_message_panel
|
||||
self.ui_separate_response_panel = _uip.separate_response_panel
|
||||
self.ui_separate_tool_calls_panel = _uip.separate_tool_calls_panel
|
||||
self.ui_auto_switch_layout = gui_cfg.get("auto_switch_layout", False)
|
||||
self.ui_tier_layout_bindings = gui_cfg.get("tier_layout_bindings", {"Tier 1": "", "Tier 2": "", "Tier 3": "", "Tier 4": ""})
|
||||
from src import bg_shader
|
||||
@@ -2275,7 +2279,9 @@ class AppController:
|
||||
|
||||
if kind == 'tool_call':
|
||||
tid = payload.get('id') or payload.get('call_id')
|
||||
script = payload.get('script') or json.dumps(payload.get('args', {}), indent=1)
|
||||
from src.type_aliases import ProviderPayload as _PP
|
||||
pp = _PP.from_dict(payload) if isinstance(payload, dict) else payload
|
||||
script = pp.script or json.dumps(pp.args, indent=1)
|
||||
script = _resolve_log_ref(script, session_dir)
|
||||
entry_obj = {
|
||||
'source_tier': comms_entry.source_tier,
|
||||
@@ -2288,7 +2294,9 @@ class AppController:
|
||||
final_tool_calls.append(entry_obj)
|
||||
elif kind == 'tool_result':
|
||||
tid = payload.get('id') or payload.get('call_id')
|
||||
output = payload.get('output', payload.get('content', ''))
|
||||
from src.type_aliases import ProviderPayload as _PP2
|
||||
pp2 = _PP2.from_dict(payload) if isinstance(payload, dict) else payload
|
||||
output = pp2.output or payload.get('content', '')
|
||||
output = _resolve_log_ref(output, session_dir)
|
||||
if tid and tid in paired_tools:
|
||||
paired_tools[tid]['result'] = output
|
||||
|
||||
Reference in New Issue
Block a user