feat(mma): Consolidate Agent Streams into MMA Dashboard with popout options
This commit is contained in:
16
config.toml
16
config.toml
@@ -24,28 +24,28 @@ separate_response_panel = false
|
|||||||
separate_tool_calls_panel = false
|
separate_tool_calls_panel = false
|
||||||
bg_shader_enabled = true
|
bg_shader_enabled = true
|
||||||
crt_filter_enabled = false
|
crt_filter_enabled = false
|
||||||
separate_task_dag = false
|
separate_task_dag = true
|
||||||
separate_usage_analytics = false
|
separate_usage_analytics = true
|
||||||
|
|
||||||
[gui.show_windows]
|
[gui.show_windows]
|
||||||
"Context Hub" = true
|
"Context Hub" = true
|
||||||
"Files & Media" = true
|
"Files & Media" = true
|
||||||
"AI Settings" = true
|
"AI Settings" = true
|
||||||
"MMA Dashboard" = true
|
"MMA Dashboard" = true
|
||||||
"Task DAG" = false
|
"Task DAG" = true
|
||||||
"Usage Analytics" = false
|
"Usage Analytics" = true
|
||||||
"Tier 1: Strategy" = true
|
"Tier 1: Strategy" = true
|
||||||
"Tier 2: Tech Lead" = true
|
"Tier 2: Tech Lead" = true
|
||||||
"Tier 3: Workers" = true
|
"Tier 3: Workers" = true
|
||||||
"Tier 4: QA" = true
|
"Tier 4: QA" = true
|
||||||
"Discussion Hub" = true
|
"Discussion Hub" = true
|
||||||
"Operations Hub" = true
|
"Operations Hub" = true
|
||||||
Message = false
|
Message = true
|
||||||
Response = false
|
Response = true
|
||||||
"Tool Calls" = false
|
"Tool Calls" = true
|
||||||
Theme = true
|
Theme = true
|
||||||
"Log Management" = true
|
"Log Management" = true
|
||||||
Diagnostics = true
|
Diagnostics = false
|
||||||
|
|
||||||
[theme]
|
[theme]
|
||||||
palette = "Nord Dark"
|
palette = "Nord Dark"
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ Collapsed=0
|
|||||||
DockId=0xAFC85805,2
|
DockId=0xAFC85805,2
|
||||||
|
|
||||||
[Window][Theme]
|
[Window][Theme]
|
||||||
Pos=0,1164
|
Pos=0,1079
|
||||||
Size=760,973
|
Size=629,1058
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,2
|
DockId=0x00000002,2
|
||||||
|
|
||||||
@@ -84,14 +84,14 @@ Size=900,700
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][Diagnostics]
|
[Window][Diagnostics]
|
||||||
Pos=2719,28
|
Pos=2833,28
|
||||||
Size=1121,1686
|
Size=1007,1695
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000C,2
|
DockId=0x0000000C,2
|
||||||
|
|
||||||
[Window][Context Hub]
|
[Window][Context Hub]
|
||||||
Pos=0,1164
|
Pos=0,1079
|
||||||
Size=760,973
|
Size=629,1058
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,1
|
DockId=0x00000002,1
|
||||||
|
|
||||||
@@ -102,26 +102,26 @@ Collapsed=0
|
|||||||
DockId=0x0000000D,0
|
DockId=0x0000000D,0
|
||||||
|
|
||||||
[Window][Discussion Hub]
|
[Window][Discussion Hub]
|
||||||
Pos=1606,28
|
Pos=1701,28
|
||||||
Size=1111,2109
|
Size=1130,2109
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000013,0
|
DockId=0x00000013,0
|
||||||
|
|
||||||
[Window][Operations Hub]
|
[Window][Operations Hub]
|
||||||
Pos=762,28
|
Pos=631,28
|
||||||
Size=842,2109
|
Size=1068,2109
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000012,0
|
DockId=0x00000012,0
|
||||||
|
|
||||||
[Window][Files & Media]
|
[Window][Files & Media]
|
||||||
Pos=0,1164
|
Pos=0,1079
|
||||||
Size=760,973
|
Size=629,1058
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,0
|
DockId=0x00000002,0
|
||||||
|
|
||||||
[Window][AI Settings]
|
[Window][AI Settings]
|
||||||
Pos=0,28
|
Pos=0,28
|
||||||
Size=760,1134
|
Size=629,1049
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000001,0
|
DockId=0x00000001,0
|
||||||
|
|
||||||
@@ -131,14 +131,14 @@ Size=416,325
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][MMA Dashboard]
|
[Window][MMA Dashboard]
|
||||||
Pos=2719,28
|
Pos=2833,28
|
||||||
Size=1121,1686
|
Size=1007,1695
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000C,0
|
DockId=0x0000000C,0
|
||||||
|
|
||||||
[Window][Log Management]
|
[Window][Log Management]
|
||||||
Pos=2719,28
|
Pos=2833,28
|
||||||
Size=1121,1686
|
Size=1007,1695
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000C,1
|
DockId=0x0000000C,1
|
||||||
|
|
||||||
@@ -148,26 +148,26 @@ Size=262,209
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][Tier 1: Strategy]
|
[Window][Tier 1: Strategy]
|
||||||
Pos=2719,1716
|
Pos=2833,1725
|
||||||
Size=1121,421
|
Size=1007,412
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000F,0
|
DockId=0x0000000F,0
|
||||||
|
|
||||||
[Window][Tier 2: Tech Lead]
|
[Window][Tier 2: Tech Lead]
|
||||||
Pos=2719,1716
|
Pos=2833,1725
|
||||||
Size=1121,421
|
Size=1007,412
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000F,1
|
DockId=0x0000000F,1
|
||||||
|
|
||||||
[Window][Tier 4: QA]
|
[Window][Tier 4: QA]
|
||||||
Pos=2719,1716
|
Pos=2833,1725
|
||||||
Size=1121,421
|
Size=1007,412
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000F,2
|
DockId=0x0000000F,2
|
||||||
|
|
||||||
[Window][Tier 3: Workers]
|
[Window][Tier 3: Workers]
|
||||||
Pos=762,28
|
Pos=631,28
|
||||||
Size=842,2109
|
Size=1068,2109
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000012,1
|
DockId=0x00000012,1
|
||||||
|
|
||||||
@@ -331,6 +331,11 @@ Pos=1461,823
|
|||||||
Size=1190,872
|
Size=1190,872
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Usage Analytics]
|
||||||
|
Pos=1636,680
|
||||||
|
Size=644,666
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
[Table][0xFB6E3870,4]
|
[Table][0xFB6E3870,4]
|
||||||
RefScale=13
|
RefScale=13
|
||||||
Column 0 Width=80
|
Column 0 Width=80
|
||||||
@@ -420,18 +425,18 @@ DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
|||||||
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
||||||
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
||||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=3840,2109 Split=X
|
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=3840,2109 Split=X
|
||||||
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2717,1183 Split=X
|
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2831,1183 Split=X
|
||||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
||||||
DockNode ID=0x00000007 Parent=0x0000000B SizeRef=760,858 Split=Y Selected=0x8CA2375C
|
DockNode ID=0x00000007 Parent=0x0000000B SizeRef=629,858 Split=Y Selected=0x8CA2375C
|
||||||
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=824,1134 CentralNode=1 Selected=0x7BD57D6A
|
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=824,1049 CentralNode=1 Selected=0x7BD57D6A
|
||||||
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=824,973 Selected=0x1DCB2623
|
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=824,1058 Selected=0x1DCB2623
|
||||||
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=1955,858 Split=X Selected=0x418C7449
|
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=2200,858 Split=X Selected=0x418C7449
|
||||||
DockNode ID=0x00000012 Parent=0x0000000E SizeRef=842,402 Selected=0x418C7449
|
DockNode ID=0x00000012 Parent=0x0000000E SizeRef=1068,402 Selected=0x418C7449
|
||||||
DockNode ID=0x00000013 Parent=0x0000000E SizeRef=1111,402 Selected=0x6F2B5B04
|
DockNode ID=0x00000013 Parent=0x0000000E SizeRef=1130,402 Selected=0x6F2B5B04
|
||||||
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
||||||
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1121,1183 Split=Y Selected=0x3AEC3498
|
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1007,1183 Split=Y Selected=0x3AEC3498
|
||||||
DockNode ID=0x0000000C Parent=0x00000004 SizeRef=1074,1681 Selected=0x3AEC3498
|
DockNode ID=0x0000000C Parent=0x00000004 SizeRef=1074,1695 Selected=0x3AEC3498
|
||||||
DockNode ID=0x0000000F Parent=0x00000004 SizeRef=1074,420 Selected=0xBB346584
|
DockNode ID=0x0000000F Parent=0x00000004 SizeRef=1074,412 Selected=0xBB346584
|
||||||
|
|
||||||
;;;<<<Layout_655921752_Default>>>;;;
|
;;;<<<Layout_655921752_Default>>>;;;
|
||||||
;;;<<<HelloImGui_Misc>>>;;;
|
;;;<<<HelloImGui_Misc>>>;;;
|
||||||
|
|||||||
12
scripts/tasks/popout_tiers.toml
Normal file
12
scripts/tasks/popout_tiers.toml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
prompt = """
|
||||||
|
In src/gui_2.py:
|
||||||
|
1. In '__init__', initialize 'self.ui_separate_tier1' through 'self.ui_separate_tier4' from 'gui_cfg'.
|
||||||
|
2. In '_gui_func', replace the existing Tier window rendering (around line 480) with logic that checks 'self.ui_separate_tierN' and 'self.show_windows.get("Tier N", False)'.
|
||||||
|
3. At the end of '_render_mma_dashboard', add a 'Agent Streams' tab bar.
|
||||||
|
4. For each Tier (1-4), add a tab.
|
||||||
|
5. Inside each tab:
|
||||||
|
- Add a 'Pop Out Tier [N]' checkbox. If changed, update 'self.show_windows["Tier [N]"]'.
|
||||||
|
- If 'not self.ui_separate_tierN', call 'self._render_tier_stream_panel("Tier N", "Display Name")'.
|
||||||
|
- If 'self.ui_separate_tierN', show 'imgui.text_disabled("Tier [N] stream is detached.")'.
|
||||||
|
Use 1-space indentation.
|
||||||
|
"""
|
||||||
@@ -345,7 +345,11 @@ class AppController:
|
|||||||
'_editing_preset_scope': '_editing_preset_scope',
|
'_editing_preset_scope': '_editing_preset_scope',
|
||||||
'show_windows': 'show_windows',
|
'show_windows': 'show_windows',
|
||||||
'ui_separate_task_dag': 'ui_separate_task_dag',
|
'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 = dict(self._settable_fields)
|
||||||
self._gettable_fields.update({
|
self._gettable_fields.update({
|
||||||
@@ -384,7 +388,11 @@ class AppController:
|
|||||||
'_editing_preset_max_output_tokens': '_editing_preset_max_output_tokens',
|
'_editing_preset_max_output_tokens': '_editing_preset_max_output_tokens',
|
||||||
'_editing_preset_scope': '_editing_preset_scope',
|
'_editing_preset_scope': '_editing_preset_scope',
|
||||||
'ui_separate_task_dag': 'ui_separate_task_dag',
|
'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_monitor = performance_monitor.get_monitor()
|
||||||
self._perf_profiling_enabled = False
|
self._perf_profiling_enabled = False
|
||||||
@@ -786,6 +794,10 @@ class AppController:
|
|||||||
"""Initializes the application state from configurations."""
|
"""Initializes the application state from configurations."""
|
||||||
self.ui_separate_task_dag = False
|
self.ui_separate_task_dag = False
|
||||||
self.ui_separate_usage_analytics = 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()
|
self.config = models.load_config()
|
||||||
theme.load_from_config(self.config)
|
theme.load_from_config(self.config)
|
||||||
ai_cfg = self.config.get("ai", {})
|
ai_cfg = self.config.get("ai", {})
|
||||||
@@ -846,6 +858,10 @@ class AppController:
|
|||||||
"MMA Dashboard": True,
|
"MMA Dashboard": True,
|
||||||
"Task DAG": False,
|
"Task DAG": False,
|
||||||
"Usage Analytics": False,
|
"Usage Analytics": False,
|
||||||
|
"Tier 1": False,
|
||||||
|
"Tier 2": False,
|
||||||
|
"Tier 3": False,
|
||||||
|
"Tier 4": False,
|
||||||
"Tier 1: Strategy": True,
|
"Tier 1: Strategy": True,
|
||||||
"Tier 2: Tech Lead": True,
|
"Tier 2: Tech Lead": True,
|
||||||
"Tier 3: Workers": True,
|
"Tier 3: Workers": True,
|
||||||
@@ -2189,6 +2205,10 @@ class AppController:
|
|||||||
"separate_tool_calls_panel": getattr(self, "ui_separate_tool_calls_panel", False),
|
"separate_tool_calls_panel": getattr(self, "ui_separate_tool_calls_panel", False),
|
||||||
"separate_task_dag": self.ui_separate_task_dag,
|
"separate_task_dag": self.ui_separate_task_dag,
|
||||||
"separate_usage_analytics": self.ui_separate_usage_analytics,
|
"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
|
"bg_shader_enabled": bg_shader.get_bg().enabled
|
||||||
})
|
})
|
||||||
self.config["gui"] = gui_cfg
|
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_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_task_dag = gui_cfg.get("separate_task_dag", False)
|
||||||
self.ui_separate_usage_analytics = gui_cfg.get("separate_usage_analytics", 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("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.ui_multi_viewport = gui_cfg.get("multi_viewport", False)
|
||||||
self.layout_presets = self.config.get("layout_presets", {})
|
self.layout_presets = self.config.get("layout_presets", {})
|
||||||
self._new_preset_name = ""
|
self._new_preset_name = ""
|
||||||
@@ -438,25 +446,25 @@ class App:
|
|||||||
if exp:
|
if exp:
|
||||||
self._render_task_dag_panel()
|
self._render_task_dag_panel()
|
||||||
imgui.end()
|
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"])
|
exp, opened = imgui.begin("Tier 1: Strategy", self.show_windows["Tier 1: Strategy"])
|
||||||
self.show_windows["Tier 1: Strategy"] = bool(opened)
|
self.show_windows["Tier 1: Strategy"] = bool(opened)
|
||||||
if exp:
|
if exp:
|
||||||
self._render_tier_stream_panel("Tier 1", "Tier 1")
|
self._render_tier_stream_panel("Tier 1", "Tier 1")
|
||||||
imgui.end()
|
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"])
|
exp, opened = imgui.begin("Tier 2: Tech Lead", self.show_windows["Tier 2: Tech Lead"])
|
||||||
self.show_windows["Tier 2: Tech Lead"] = bool(opened)
|
self.show_windows["Tier 2: Tech Lead"] = bool(opened)
|
||||||
if exp:
|
if exp:
|
||||||
self._render_tier_stream_panel("Tier 2", "Tier 2 (Tech Lead)")
|
self._render_tier_stream_panel("Tier 2", "Tier 2 (Tech Lead)")
|
||||||
imgui.end()
|
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"])
|
exp, opened = imgui.begin("Tier 3: Workers", self.show_windows["Tier 3: Workers"])
|
||||||
self.show_windows["Tier 3: Workers"] = bool(opened)
|
self.show_windows["Tier 3: Workers"] = bool(opened)
|
||||||
if exp:
|
if exp:
|
||||||
self._render_tier_stream_panel("Tier 3", None)
|
self._render_tier_stream_panel("Tier 3", None)
|
||||||
imgui.end()
|
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"])
|
exp, opened = imgui.begin("Tier 4: QA", self.show_windows["Tier 4: QA"])
|
||||||
self.show_windows["Tier 4: QA"] = bool(opened)
|
self.show_windows["Tier 4: QA"] = bool(opened)
|
||||||
if exp:
|
if exp:
|
||||||
@@ -2771,6 +2779,47 @@ def hello():
|
|||||||
self.ui_selected_ticket_id = None
|
self.ui_selected_ticket_id = None
|
||||||
self._push_mma_state_update()
|
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:
|
def _render_task_dag_panel(self) -> None:
|
||||||
# 4. Task DAG Visualizer
|
# 4. Task DAG Visualizer
|
||||||
imgui.text("Task DAG")
|
imgui.text("Task DAG")
|
||||||
|
|||||||
Reference in New Issue
Block a user