Table of Contents

Class SqliteUsageMeter

Namespace
JD.AI.Core.Usage
Assembly
JD.AI.Core.dll

SQLite-backed usage metering service. Stores turn-level usage records in a dedicated usage.db and provides aggregation queries.

public sealed class SqliteUsageMeter : IUsageMeter, IAsyncDisposable
Inheritance
SqliteUsageMeter
Implements
Inherited Members

Constructors

SqliteUsageMeter(string, CostRateProvider?, BudgetConfig?)

public SqliteUsageMeter(string dbPath, CostRateProvider? costRates = null, BudgetConfig? budget = null)

Parameters

dbPath string
costRates CostRateProvider
budget BudgetConfig

Methods

CheckBudgetAsync(BudgetPeriod, CancellationToken)

Checks current budget status against configured limits.

public Task<BudgetStatus> CheckBudgetAsync(BudgetPeriod period = BudgetPeriod.Monthly, CancellationToken ct = default)

Parameters

period BudgetPeriod
ct CancellationToken

Returns

Task<BudgetStatus>

DisposeAsync()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

public ValueTask DisposeAsync()

Returns

ValueTask

A task that represents the asynchronous dispose operation.

ExportAsync(UsageExportFormat, DateTimeOffset?, DateTimeOffset?, CancellationToken)

Exports usage data in the specified format.

public Task<string> ExportAsync(UsageExportFormat format, DateTimeOffset? from = null, DateTimeOffset? until = null, CancellationToken ct = default)

Parameters

format UsageExportFormat
from DateTimeOffset?
until DateTimeOffset?
ct CancellationToken

Returns

Task<string>

GetPeriodUsageAsync(DateTimeOffset, DateTimeOffset, CancellationToken)

Gets aggregated usage for a time period.

public Task<UsageSummary> GetPeriodUsageAsync(DateTimeOffset from, DateTimeOffset until, CancellationToken ct = default)

Parameters

from DateTimeOffset
until DateTimeOffset
ct CancellationToken

Returns

Task<UsageSummary>

GetProjectUsageAsync(string, CancellationToken)

Gets aggregated usage for a project path.

public Task<UsageSummary> GetProjectUsageAsync(string projectPath, CancellationToken ct = default)

Parameters

projectPath string
ct CancellationToken

Returns

Task<UsageSummary>

GetSessionUsageAsync(string, CancellationToken)

Gets aggregated usage for a session.

public Task<UsageSummary> GetSessionUsageAsync(string sessionId, CancellationToken ct = default)

Parameters

sessionId string
ct CancellationToken

Returns

Task<UsageSummary>

GetTotalUsageAsync(CancellationToken)

Gets total lifetime usage.

public Task<UsageSummary> GetTotalUsageAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<UsageSummary>

InitializeAsync(CancellationToken)

public Task InitializeAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task

RecordTurnAsync(TurnUsageRecord, CancellationToken)

Records a single agent turn's usage.

public Task RecordTurnAsync(TurnUsageRecord record, CancellationToken ct = default)

Parameters

record TurnUsageRecord
ct CancellationToken

Returns

Task