Constructor ChatMemoryDecision
ChatMemoryDecision(ChatMemoryVerdict, int, long, long, long, long, long, long?, long?, long?, EdgeMemoryBudgetKind, bool, string)
The gate's answer, with every term it read.
public ChatMemoryDecision(ChatMemoryVerdict Verdict, int ContextTokens, long RequiredBytes, long WeightsBytes, long KvCacheBytes, long WorkspaceBytes, long ReserveBytes, long? AvailableBytes, long? UsableBytes, long? TotalMemoryBytes, EdgeMemoryBudgetKind BudgetKind, bool UsedMeasuredPeak, string Explanation)
Parameters
VerdictChatMemoryVerdictWhat was decided.
ContextTokensintThe context to run at, or 0 on a refusal.
RequiredByteslongWhat that context needs.
WeightsByteslongThe resident-weight term.
KvCacheByteslongThe KV term at
ContextTokens.WorkspaceByteslongThe workspace term.
ReserveByteslongThe reserve term.
AvailableByteslong?What the monitor reported, or null when it would not say.
UsableByteslong?AvailableBytesafter SystemWideMemoryFraction, or unchanged on a PerProcess reading.TotalMemoryByteslong?The device profile's total, whatever its source.
BudgetKindEdgeMemoryBudgetKindHow to read
AvailableBytes.UsedMeasuredPeakboolWhether MeasuredPeakBytes plus the reserve was the term that bound, rather than the arithmetic.
ExplanationstringOne sentence naming every term and which one bound. It is what the refusal message says and what the diagnostics block publishes, so a consumer can see why they got 2048 tokens on one phone and 4096 on another without attaching a debugger.