1
0

feat: saving token data to sessions

This commit is contained in:
2026-03-06 08:32:37 +01:00
parent 91a44bb2a4
commit a776d978ea
7 changed files with 283 additions and 299 deletions

View File

@@ -5,10 +5,17 @@ namespace AnchorCli.OpenRouter;
/// </summary>
internal sealed class TokenTracker
{
private readonly ChatSession _session;
public TokenTracker(ChatSession session)
{
_session = session;
}
public string Provider { get; set; } = "Unknown";
public long SessionInputTokens { get; private set; }
public long SessionOutputTokens { get; private set; }
public int RequestCount { get; private set; }
public long SessionInputTokens => _session.SessionInputTokens;
public long SessionOutputTokens => _session.SessionOutputTokens;
public int RequestCount => _session.RequestCount;
/// <summary>Maximum context window for the model (tokens). 0 = unknown.</summary>
public int ContextLength { get; set; }
@@ -29,16 +36,16 @@ internal sealed class TokenTracker
/// </summary>
public void AddUsage(int inputTokens, int outputTokens)
{
SessionInputTokens += inputTokens;
SessionOutputTokens += outputTokens;
_session.SessionInputTokens += inputTokens;
_session.SessionOutputTokens += outputTokens;
LastInputTokens = inputTokens;
RequestCount++;
_session.RequestCount++;
}
public void Reset()
{
SessionInputTokens = 0;
SessionOutputTokens = 0;
RequestCount = 0;
_session.SessionInputTokens = 0;
_session.SessionOutputTokens = 0;
_session.RequestCount = 0;
LastInputTokens = 0;
}