Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code compaction accounting 흐름을 참고해 service:model 기준 일별 토큰 집계와 compact 이후 모델 사용량 버킷을 추가함 - microcompact/session_memory/collapsed boundary 메시지를 전용 압축 카드로 렌더링하고 compact 관련 thinking 이벤트를 얇은 compact pill로 분리함 - README 및 docs/DEVELOPMENT.md에 2026-04-05 00:01 (KST) 기준 이력을 반영함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
59 lines
2.5 KiB
C#
59 lines
2.5 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace AxCopilot.Models;
|
|
|
|
/// <summary>
|
|
/// 하루치 사용 통계. %APPDATA%\AxCopilot\stats\YYYY-MM-DD.json 에 저장됩니다.
|
|
/// </summary>
|
|
public class DailyUsageStats
|
|
{
|
|
[JsonPropertyName("date")]
|
|
public string Date { get; set; } = "";
|
|
|
|
/// <summary>런처가 호출된 횟수 (단축키 누름 횟수)</summary>
|
|
[JsonPropertyName("launcherOpens")]
|
|
public int LauncherOpens { get; set; }
|
|
|
|
/// <summary>명령어별 실행 횟수. key = 프리픽스 포함 명령 문자열 (예: "/lock", "calc")</summary>
|
|
[JsonPropertyName("commandUsage")]
|
|
public Dictionary<string, int> CommandUsage { get; set; } = new();
|
|
|
|
/// <summary>PC 잠금 해제 후 활성 상태였던 누적 시간 (초)</summary>
|
|
[JsonPropertyName("activeSeconds")]
|
|
public int ActiveSeconds { get; set; }
|
|
|
|
// ─── AX Agent 통계 ──────────────────────────────────────────────────
|
|
|
|
/// <summary>탭별 대화 횟수. key = "Chat" | "Cowork" | "Code"</summary>
|
|
[JsonPropertyName("chatCounts")]
|
|
public Dictionary<string, int> ChatCounts { get; set; } = new();
|
|
|
|
/// <summary>일별 총 사용 토큰 수 (Prompt + Completion).</summary>
|
|
[JsonPropertyName("totalTokens")]
|
|
public long TotalTokens { get; set; }
|
|
|
|
/// <summary>일별 프롬프트 토큰 수.</summary>
|
|
[JsonPropertyName("promptTokens")]
|
|
public long PromptTokens { get; set; }
|
|
|
|
/// <summary>일별 완료 토큰 수.</summary>
|
|
[JsonPropertyName("completionTokens")]
|
|
public long CompletionTokens { get; set; }
|
|
|
|
/// <summary>모델별 프롬프트 토큰 수. key = service:model</summary>
|
|
[JsonPropertyName("modelPromptTokens")]
|
|
public Dictionary<string, long> ModelPromptTokens { get; set; } = new();
|
|
|
|
/// <summary>모델별 완료 토큰 수. key = service:model</summary>
|
|
[JsonPropertyName("modelCompletionTokens")]
|
|
public Dictionary<string, long> ModelCompletionTokens { get; set; } = new();
|
|
|
|
/// <summary>모델별 compact 이후 프롬프트 토큰 수. key = service:model</summary>
|
|
[JsonPropertyName("postCompactionPromptTokens")]
|
|
public Dictionary<string, long> PostCompactionPromptTokens { get; set; } = new();
|
|
|
|
/// <summary>모델별 compact 이후 완료 토큰 수. key = service:model</summary>
|
|
[JsonPropertyName("postCompactionCompletionTokens")]
|
|
public Dictionary<string, long> PostCompactionCompletionTokens { get; set; } = new();
|
|
}
|