chore(conductor): Mark track 'Saved Tool Presets' as complete
This commit is contained in:
@@ -33,6 +33,7 @@ from src import aggregate
|
||||
from src import orchestrator_pm
|
||||
from src import conductor_tech_lead
|
||||
from src import multi_agent_conductor
|
||||
from src import tool_presets
|
||||
from src import theme_2 as theme
|
||||
|
||||
def hide_tk_root() -> Tk:
|
||||
@@ -181,10 +182,10 @@ class AppController:
|
||||
"last_latency": 0.0
|
||||
}
|
||||
self.mma_tier_usage: Dict[str, Dict[str, Any]] = {
|
||||
"Tier 1": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-3.1-pro-preview"},
|
||||
"Tier 2": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-3-flash-preview"},
|
||||
"Tier 3": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite"},
|
||||
"Tier 4": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite"},
|
||||
"Tier 1": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-3.1-pro-preview", "tool_preset": None},
|
||||
"Tier 2": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-3-flash-preview", "tool_preset": None},
|
||||
"Tier 3": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite", "tool_preset": None},
|
||||
"Tier 4": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite", "tool_preset": None},
|
||||
}
|
||||
self.perf_monitor: performance_monitor.PerformanceMonitor = performance_monitor.PerformanceMonitor()
|
||||
self._pending_gui_tasks: List[Dict[str, Any]] = []
|
||||
@@ -225,6 +226,7 @@ class AppController:
|
||||
self.ui_word_wrap: bool = True
|
||||
self.ui_summary_only: bool = False
|
||||
self.ui_auto_add_history: bool = False
|
||||
self.ui_active_tool_preset: str | None = None
|
||||
self.ui_global_system_prompt: str = ""
|
||||
self.ui_agent_tools: Dict[str, bool] = {}
|
||||
self.available_models: List[str] = []
|
||||
@@ -305,6 +307,9 @@ class AppController:
|
||||
self._editing_preset_top_p: float = 0.0
|
||||
self._editing_preset_max_output_tokens: int = 4096
|
||||
self._editing_preset_scope: str = "project"
|
||||
self._editing_tool_preset_name: str = ""
|
||||
self._editing_tool_preset_categories: Dict[str, Dict[str, Any]] = {}
|
||||
self._editing_tool_preset_scope: str = "project"
|
||||
self.diagnostic_log: List[Dict[str, Any]] = []
|
||||
self._settable_fields: Dict[str, str] = {
|
||||
'ai_input': 'ui_ai_input',
|
||||
@@ -334,6 +339,7 @@ class AppController:
|
||||
'project_system_prompt': 'ui_project_system_prompt',
|
||||
'global_preset_name': 'ui_global_preset_name',
|
||||
'project_preset_name': 'ui_project_preset_name',
|
||||
'ui_active_tool_preset': 'ui_active_tool_preset',
|
||||
'temperature': 'temperature',
|
||||
'max_tokens': 'max_tokens',
|
||||
'show_preset_manager_modal': 'show_preset_manager_modal',
|
||||
@@ -343,6 +349,9 @@ class AppController:
|
||||
'_editing_preset_top_p': '_editing_preset_top_p',
|
||||
'_editing_preset_max_output_tokens': '_editing_preset_max_output_tokens',
|
||||
'_editing_preset_scope': '_editing_preset_scope',
|
||||
'_editing_tool_preset_name': '_editing_tool_preset_name',
|
||||
'_editing_tool_preset_categories': '_editing_tool_preset_categories',
|
||||
'_editing_tool_preset_scope': '_editing_tool_preset_scope',
|
||||
'show_windows': 'show_windows',
|
||||
'ui_separate_task_dag': 'ui_separate_task_dag',
|
||||
'ui_separate_usage_analytics': 'ui_separate_usage_analytics',
|
||||
@@ -378,6 +387,7 @@ class AppController:
|
||||
'project_system_prompt': 'ui_project_system_prompt',
|
||||
'global_preset_name': 'ui_global_preset_name',
|
||||
'project_preset_name': 'ui_project_preset_name',
|
||||
'ui_active_tool_preset': 'ui_active_tool_preset',
|
||||
'temperature': 'temperature',
|
||||
'max_tokens': 'max_tokens',
|
||||
'show_preset_manager_modal': 'show_preset_manager_modal',
|
||||
@@ -471,6 +481,8 @@ class AppController:
|
||||
'_apply_preset': self._apply_preset,
|
||||
'_cb_save_preset': self._cb_save_preset,
|
||||
'_cb_delete_preset': self._cb_delete_preset,
|
||||
'_cb_save_tool_preset': self._cb_save_tool_preset,
|
||||
'_cb_delete_tool_preset': self._cb_delete_tool_preset,
|
||||
'_switch_project': self._switch_project,
|
||||
'_refresh_from_project': self._refresh_from_project
|
||||
}
|
||||
@@ -844,6 +856,10 @@ class AppController:
|
||||
|
||||
self.preset_manager = presets.PresetManager(Path(self.active_project_path).parent if self.active_project_path else None)
|
||||
self.presets = self.preset_manager.load_all()
|
||||
self.tool_preset_manager = tool_presets.ToolPresetManager(Path(self.active_project_path).parent if self.active_project_path else None)
|
||||
self.tool_presets = self.tool_preset_manager.load_all()
|
||||
self.ui_active_tool_preset = os.environ.get('SLOP_TOOL_PRESET')
|
||||
ai_client.set_tool_preset(self.ui_active_tool_preset)
|
||||
self.ui_global_preset_name = ai_cfg.get("active_preset")
|
||||
self.ui_project_preset_name = proj_meta.get("active_preset")
|
||||
|
||||
@@ -1769,6 +1785,12 @@ class AppController:
|
||||
# Restore MMA state
|
||||
mma_sec = proj.get("mma", {})
|
||||
self.ui_epic_input = mma_sec.get("epic", "")
|
||||
tier_models = mma_sec.get("tier_models", {})
|
||||
for tier, data in tier_models.items():
|
||||
if tier in self.mma_tier_usage:
|
||||
self.mma_tier_usage[tier]["model"] = data.get("model", self.mma_tier_usage[tier]["model"])
|
||||
self.mma_tier_usage[tier]["provider"] = data.get("provider", self.mma_tier_usage[tier]["provider"])
|
||||
self.mma_tier_usage[tier]["tool_preset"] = data.get("tool_preset", self.mma_tier_usage[tier].get("tool_preset"))
|
||||
at_data = mma_sec.get("active_track")
|
||||
if at_data:
|
||||
try:
|
||||
@@ -1796,6 +1818,8 @@ class AppController:
|
||||
|
||||
self.preset_manager.project_root = Path(self.ui_files_base_dir)
|
||||
self.presets = self.preset_manager.load_all()
|
||||
self.tool_preset_manager.project_root = Path(self.ui_files_base_dir)
|
||||
self.tool_presets = self.tool_preset_manager.load_all()
|
||||
|
||||
def _apply_preset(self, name: str, scope: str) -> None:
|
||||
if name == "None":
|
||||
@@ -1835,6 +1859,15 @@ class AppController:
|
||||
self.preset_manager.delete_preset(name, scope)
|
||||
self.presets = self.preset_manager.load_all()
|
||||
|
||||
def _cb_save_tool_preset(self, name, categories, scope):
|
||||
preset = models.ToolPreset(name=name, categories=categories)
|
||||
self.tool_preset_manager.save_preset(preset, scope)
|
||||
self.tool_presets = self.tool_preset_manager.load_all()
|
||||
|
||||
def _cb_delete_tool_preset(self, name, scope):
|
||||
self.tool_preset_manager.delete_preset(name, scope)
|
||||
self.tool_presets = self.tool_preset_manager.load_all()
|
||||
|
||||
def _cb_load_track(self, track_id: str) -> None:
|
||||
state = project_manager.load_track_state(track_id, self.ui_files_base_dir)
|
||||
if state:
|
||||
@@ -2178,7 +2211,7 @@ class AppController:
|
||||
# Save MMA State
|
||||
mma_sec = proj.setdefault("mma", {})
|
||||
mma_sec["epic"] = self.ui_epic_input
|
||||
mma_sec["tier_models"] = {t: {"model": d["model"], "provider": d.get("provider", "gemini")} for t, d in self.mma_tier_usage.items()}
|
||||
mma_sec["tier_models"] = {t: {"model": d["model"], "provider": d.get("provider", "gemini"), "tool_preset": d.get("tool_preset")} for t, d in self.mma_tier_usage.items()}
|
||||
if self.active_track:
|
||||
mma_sec["active_track"] = asdict(self.active_track)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user