feat(mma): Consolidate Agent Streams into MMA Dashboard with popout options
This commit is contained in:
@@ -345,7 +345,11 @@ class AppController:
|
||||
'_editing_preset_scope': '_editing_preset_scope',
|
||||
'show_windows': 'show_windows',
|
||||
'ui_separate_task_dag': 'ui_separate_task_dag',
|
||||
'ui_separate_usage_analytics': 'ui_separate_usage_analytics'
|
||||
'ui_separate_usage_analytics': 'ui_separate_usage_analytics',
|
||||
'ui_separate_tier1': 'ui_separate_tier1',
|
||||
'ui_separate_tier2': 'ui_separate_tier2',
|
||||
'ui_separate_tier3': 'ui_separate_tier3',
|
||||
'ui_separate_tier4': 'ui_separate_tier4'
|
||||
}
|
||||
self._gettable_fields = dict(self._settable_fields)
|
||||
self._gettable_fields.update({
|
||||
@@ -384,7 +388,11 @@ class AppController:
|
||||
'_editing_preset_max_output_tokens': '_editing_preset_max_output_tokens',
|
||||
'_editing_preset_scope': '_editing_preset_scope',
|
||||
'ui_separate_task_dag': 'ui_separate_task_dag',
|
||||
'ui_separate_usage_analytics': 'ui_separate_usage_analytics'
|
||||
'ui_separate_usage_analytics': 'ui_separate_usage_analytics',
|
||||
'ui_separate_tier1': 'ui_separate_tier1',
|
||||
'ui_separate_tier2': 'ui_separate_tier2',
|
||||
'ui_separate_tier3': 'ui_separate_tier3',
|
||||
'ui_separate_tier4': 'ui_separate_tier4'
|
||||
})
|
||||
self.perf_monitor = performance_monitor.get_monitor()
|
||||
self._perf_profiling_enabled = False
|
||||
@@ -786,6 +794,10 @@ class AppController:
|
||||
"""Initializes the application state from configurations."""
|
||||
self.ui_separate_task_dag = False
|
||||
self.ui_separate_usage_analytics = False
|
||||
self.ui_separate_tier1 = False
|
||||
self.ui_separate_tier2 = False
|
||||
self.ui_separate_tier3 = False
|
||||
self.ui_separate_tier4 = False
|
||||
self.config = models.load_config()
|
||||
theme.load_from_config(self.config)
|
||||
ai_cfg = self.config.get("ai", {})
|
||||
@@ -846,6 +858,10 @@ class AppController:
|
||||
"MMA Dashboard": True,
|
||||
"Task DAG": False,
|
||||
"Usage Analytics": False,
|
||||
"Tier 1": False,
|
||||
"Tier 2": False,
|
||||
"Tier 3": False,
|
||||
"Tier 4": False,
|
||||
"Tier 1: Strategy": True,
|
||||
"Tier 2: Tech Lead": True,
|
||||
"Tier 3: Workers": True,
|
||||
@@ -2189,6 +2205,10 @@ class AppController:
|
||||
"separate_tool_calls_panel": getattr(self, "ui_separate_tool_calls_panel", False),
|
||||
"separate_task_dag": self.ui_separate_task_dag,
|
||||
"separate_usage_analytics": self.ui_separate_usage_analytics,
|
||||
"separate_tier1": self.ui_separate_tier1,
|
||||
"separate_tier2": self.ui_separate_tier2,
|
||||
"separate_tier3": self.ui_separate_tier3,
|
||||
"separate_tier4": self.ui_separate_tier4,
|
||||
"bg_shader_enabled": bg_shader.get_bg().enabled
|
||||
})
|
||||
self.config["gui"] = gui_cfg
|
||||
|
||||
57
src/gui_2.py
57
src/gui_2.py
@@ -128,7 +128,15 @@ class App:
|
||||
self.ui_separate_tool_calls_panel = gui_cfg.get("separate_tool_calls_panel", False)
|
||||
self.ui_separate_task_dag = gui_cfg.get("separate_task_dag", False)
|
||||
self.ui_separate_usage_analytics = gui_cfg.get("separate_usage_analytics", False)
|
||||
self.ui_separate_tier1 = gui_cfg.get("separate_tier1", False)
|
||||
self.ui_separate_tier2 = gui_cfg.get("separate_tier2", False)
|
||||
self.ui_separate_tier3 = gui_cfg.get("separate_tier3", False)
|
||||
self.ui_separate_tier4 = gui_cfg.get("separate_tier4", False)
|
||||
self.show_windows.setdefault("Usage Analytics", False)
|
||||
self.show_windows.setdefault("Tier 1: Strategy", False)
|
||||
self.show_windows.setdefault("Tier 2: Tech Lead", False)
|
||||
self.show_windows.setdefault("Tier 3: Workers", False)
|
||||
self.show_windows.setdefault("Tier 4: QA", False)
|
||||
self.ui_multi_viewport = gui_cfg.get("multi_viewport", False)
|
||||
self.layout_presets = self.config.get("layout_presets", {})
|
||||
self._new_preset_name = ""
|
||||
@@ -438,25 +446,25 @@ class App:
|
||||
if exp:
|
||||
self._render_task_dag_panel()
|
||||
imgui.end()
|
||||
if self.show_windows.get("Tier 1: Strategy", False):
|
||||
if self.ui_separate_tier1 and self.show_windows.get("Tier 1: Strategy", False):
|
||||
exp, opened = imgui.begin("Tier 1: Strategy", self.show_windows["Tier 1: Strategy"])
|
||||
self.show_windows["Tier 1: Strategy"] = bool(opened)
|
||||
if exp:
|
||||
self._render_tier_stream_panel("Tier 1", "Tier 1")
|
||||
imgui.end()
|
||||
if self.show_windows.get("Tier 2: Tech Lead", False):
|
||||
if self.ui_separate_tier2 and self.show_windows.get("Tier 2: Tech Lead", False):
|
||||
exp, opened = imgui.begin("Tier 2: Tech Lead", self.show_windows["Tier 2: Tech Lead"])
|
||||
self.show_windows["Tier 2: Tech Lead"] = bool(opened)
|
||||
if exp:
|
||||
self._render_tier_stream_panel("Tier 2", "Tier 2 (Tech Lead)")
|
||||
imgui.end()
|
||||
if self.show_windows.get("Tier 3: Workers", False):
|
||||
if self.ui_separate_tier3 and self.show_windows.get("Tier 3: Workers", False):
|
||||
exp, opened = imgui.begin("Tier 3: Workers", self.show_windows["Tier 3: Workers"])
|
||||
self.show_windows["Tier 3: Workers"] = bool(opened)
|
||||
if exp:
|
||||
self._render_tier_stream_panel("Tier 3", None)
|
||||
imgui.end()
|
||||
if self.show_windows.get("Tier 4: QA", False):
|
||||
if self.ui_separate_tier4 and self.show_windows.get("Tier 4: QA", False):
|
||||
exp, opened = imgui.begin("Tier 4: QA", self.show_windows["Tier 4: QA"])
|
||||
self.show_windows["Tier 4: QA"] = bool(opened)
|
||||
if exp:
|
||||
@@ -2771,6 +2779,47 @@ def hello():
|
||||
self.ui_selected_ticket_id = None
|
||||
self._push_mma_state_update()
|
||||
|
||||
imgui.separator()
|
||||
imgui.text("Agent Streams")
|
||||
if imgui.begin_tab_bar("mma_streams_tabs"):
|
||||
# Tier 1
|
||||
if imgui.begin_tab_item("Tier 1")[0]:
|
||||
ch, self.ui_separate_tier1 = imgui.checkbox("Pop Out Tier 1", self.ui_separate_tier1)
|
||||
if ch: self.show_windows["Tier 1: Strategy"] = self.ui_separate_tier1
|
||||
if not self.ui_separate_tier1:
|
||||
self._render_tier_stream_panel("Tier 1", "Tier 1")
|
||||
else:
|
||||
imgui.text_disabled("Tier 1 stream is detached.")
|
||||
imgui.end_tab_item()
|
||||
# Tier 2
|
||||
if imgui.begin_tab_item("Tier 2")[0]:
|
||||
ch, self.ui_separate_tier2 = imgui.checkbox("Pop Out Tier 2", self.ui_separate_tier2)
|
||||
if ch: self.show_windows["Tier 2: Tech Lead"] = self.ui_separate_tier2
|
||||
if not self.ui_separate_tier2:
|
||||
self._render_tier_stream_panel("Tier 2", "Tier 2 (Tech Lead)")
|
||||
else:
|
||||
imgui.text_disabled("Tier 2 stream is detached.")
|
||||
imgui.end_tab_item()
|
||||
# Tier 3
|
||||
if imgui.begin_tab_item("Tier 3")[0]:
|
||||
ch, self.ui_separate_tier3 = imgui.checkbox("Pop Out Tier 3", self.ui_separate_tier3)
|
||||
if ch: self.show_windows["Tier 3: Workers"] = self.ui_separate_tier3
|
||||
if not self.ui_separate_tier3:
|
||||
self._render_tier_stream_panel("Tier 3", None)
|
||||
else:
|
||||
imgui.text_disabled("Tier 3 stream is detached.")
|
||||
imgui.end_tab_item()
|
||||
# Tier 4
|
||||
if imgui.begin_tab_item("Tier 4")[0]:
|
||||
ch, self.ui_separate_tier4 = imgui.checkbox("Pop Out Tier 4", self.ui_separate_tier4)
|
||||
if ch: self.show_windows["Tier 4: QA"] = self.ui_separate_tier4
|
||||
if not self.ui_separate_tier4:
|
||||
self._render_tier_stream_panel("Tier 4", "Tier 4 (QA)")
|
||||
else:
|
||||
imgui.text_disabled("Tier 4 stream is detached.")
|
||||
imgui.end_tab_item()
|
||||
imgui.end_tab_bar()
|
||||
|
||||
def _render_task_dag_panel(self) -> None:
|
||||
# 4. Task DAG Visualizer
|
||||
imgui.text("Task DAG")
|
||||
|
||||
Reference in New Issue
Block a user