diff --git a/src/OpenClaw.Shared/Models.cs b/src/OpenClaw.Shared/Models.cs index 725a66b..b9d6657 100644 --- a/src/OpenClaw.Shared/Models.cs +++ b/src/OpenClaw.Shared/Models.cs @@ -241,7 +241,7 @@ public string ContextSummaryShort get { if (TotalTokens <= 0 || ContextTokens <= 0) return ""; - return $"{FormatTokenCount(TotalTokens)}/{FormatTokenCount(ContextTokens)}"; + return $"{ModelFormatting.FormatLargeNumber(TotalTokens)}/{ModelFormatting.FormatLargeNumber(ContextTokens)}"; } } @@ -270,12 +270,6 @@ public string ShortKey } } - private static string FormatTokenCount(long n) - { - if (n >= 1_000_000) return $"{n / 1_000_000.0:F1}M"; - if (n >= 1_000) return $"{n / 1_000.0:F1}K"; - return n.ToString(); - } } public class GatewayUsageInfo @@ -294,7 +288,7 @@ public string DisplayText { var parts = new List(); if (TotalTokens > 0) - parts.Add($"Tokens: {FormatCount(TotalTokens)}"); + parts.Add($"Tokens: {ModelFormatting.FormatLargeNumber(TotalTokens)}"); if (CostUsd > 0) parts.Add($"${CostUsd:F2}"); if (RequestCount > 0) @@ -309,12 +303,6 @@ public string DisplayText } } - private static string FormatCount(long n) - { - if (n >= 1_000_000) return $"{n / 1_000_000.0:F1}M"; - if (n >= 1_000) return $"{n / 1_000.0:F1}K"; - return n.ToString(); - } } public class GatewayUsageWindowInfo @@ -454,3 +442,17 @@ private static string FormatAge(DateTime timestampUtc) } } +/// Shared display-formatting helpers used by model classes. +internal static class ModelFormatting +{ + /// + /// Formats a large integer with K/M suffix for compact display (e.g. 1500 → "1.5K", 2_000_000 → "2.0M"). + /// + internal static string FormatLargeNumber(long n) + { + if (n >= 1_000_000) return $"{n / 1_000_000.0:F1}M"; + if (n >= 1_000) return $"{n / 1_000.0:F1}K"; + return n.ToString(); + } +} +