Table of Contents

Constructor ChatMemoryDecision

Namespace
Qavren.Edge.Chat
Assembly
Qavren.Edge.Chat.Onnx.dll

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

Verdict ChatMemoryVerdict

What was decided.

ContextTokens int

The context to run at, or 0 on a refusal.

RequiredBytes long

What that context needs.

WeightsBytes long

The resident-weight term.

KvCacheBytes long

The KV term at ContextTokens.

WorkspaceBytes long

The workspace term.

ReserveBytes long

The reserve term.

AvailableBytes long?

What the monitor reported, or null when it would not say.

UsableBytes long?

AvailableBytes after SystemWideMemoryFraction, or unchanged on a PerProcess reading.

TotalMemoryBytes long?

The device profile's total, whatever its source.

BudgetKind EdgeMemoryBudgetKind

How to read AvailableBytes.

UsedMeasuredPeak bool

Whether MeasuredPeakBytes plus the reserve was the term that bound, rather than the arithmetic.

Explanation string

One 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.