feat(gui): add per-tier cost breakdown to token budget panel

This commit is contained in:
2026-03-07 01:50:53 -05:00
parent 1a2268f9f5
commit 552e76e98a
2 changed files with 39 additions and 122 deletions

View File

@@ -1389,6 +1389,31 @@ class App:
imgui.table_set_column_index(1); imgui.text(f"{tok:,}")
imgui.table_set_column_index(2); imgui.text(f"{tok / total_tok * 100:.0f}%")
imgui.end_table()
imgui.separator()
imgui.text("MMA Tier Costs")
if hasattr(self, 'mma_tier_usage') and self.mma_tier_usage:
if imgui.begin_table("tier_cost_breakdown", 4, imgui.TableFlags_.borders_inner_h | imgui.TableFlags_.sizing_fixed_fit):
imgui.table_setup_column("Tier")
imgui.table_setup_column("Model")
imgui.table_setup_column("Tokens")
imgui.table_setup_column("Est. Cost")
imgui.table_headers_row()
for tier, stats in self.mma_tier_usage.items():
model = stats.get('model', 'unknown')
in_t = stats.get('input', 0)
out_t = stats.get('output', 0)
tokens = in_t + out_t
cost = cost_tracker.estimate_cost(model, in_t, out_t)
imgui.table_next_row()
imgui.table_set_column_index(0); imgui.text(tier)
imgui.table_set_column_index(1); imgui.text(model.split('-')[0])
imgui.table_set_column_index(2); imgui.text(f"{tokens:,}")
imgui.table_set_column_index(3); imgui.text_colored(imgui.ImVec4(0.2, 0.9, 0.2, 1), f"${cost:.4f}")
imgui.end_table()
tier_total = sum(cost_tracker.estimate_cost(stats.get('model', ''), stats.get('input', 0), stats.get('output', 0)) for stats in self.mma_tier_usage.values())
imgui.text_colored(imgui.ImVec4(0, 1, 0, 1), f"Session Total: ${tier_total:.4f}")
else:
imgui.text_disabled("No MMA tier usage data")
if stats.get("would_trim"):
imgui.text_colored(imgui.ImVec4(1.0, 0.3, 0.0, 1.0), "WARNING: Next call will trim history")
trimmable = stats.get("trimmable_turns", 0)