WindowStrategyInput
Interface: WindowStrategyInput
Defined in: src/core/agent/window/strategy.ts:65
Everything a strategy is allowed to look at.
Properties
agentModel
readonlyagentModel:string
Defined in: src/core/agent/window/strategy.ts:94
The agent's own model — the sensible default for a strategy that bills.
history
readonlyhistory: readonlyLLMMessage[]
Defined in: src/core/agent/window/strategy.ts:67
The window as it stands, detached.
iteration
readonlyiteration:number
Defined in: src/core/agent/window/strategy.ts:82
The ReAct iteration this decision belongs to.
measured
readonlymeasured: {input:number;output:number; } |undefined
Defined in: src/core/agent/window/strategy.ts:80
What the provider REPORTED for the last completed call. Counted, never
guessed. undefined before the first call of the run — a strategy that
acted on that would be guessing, which is the one thing this family
refuses to do.
{ input: 0, output: 0 } is a provider that reported NOTHING, not a call
that cost nothing. A token-triggered strategy should throw
CompactionUnmeasurableError there rather than invent a size.
now
readonlynow: () =>number
Defined in: src/core/agent/window/strategy.ts:100
Wall clock, injectable so a caller can pin survivalMs.
Returns
number
planRemoval
readonlyplanRemoval: (keepRecentTurns,isExistingSummary?) =>RemovalPlan
Defined in: src/core/agent/window/strategy.ts:115
THE shared refusal engine, bound to this iteration.
Answers: which contiguous span of turns may leave, and every turn that
refused, named. Never removes the system envelope, the CURRENT REQUEST,
the last keepRecentTurns turns, an unanswered tool call, the paused
tool, or a pending check-in.
Parameters
keepRecentTurns
number
how many trailing turns are off-limits
isExistingSummary?
(turn) => boolean
optional predicate marking a turn that is a
summary a previous fold wrote; when the whole span is one of those, the
plan refuses with only-existing-summary. Pass it only if your strategy
spends an LLM call — a drop has nothing to protect against.
Returns
providerName
readonlyproviderName:string
Defined in: src/core/agent/window/strategy.ts:96
provider.name of the MAIN provider, for a refusal that names it.
removalFacts
readonlyremovalFacts: (indices,atMs) =>RemovalFacts
Defined in: src/core/agent/window/strategy.ts:126
Turn removed message indices into the facts the ledger needs: which stages wrote them, and how long each lived in the window.
Parameters
indices
readonly number[]
indices in the PRE-change window that are leaving
atMs
number
the moment they leave (usually input.now())
Returns
runId
readonlyrunId:string
Defined in: src/core/agent/window/strategy.ts:92
The run this decision belongs to.
A strategy that retains what it removed has to name the run whose commit
log held it — that is the honest answer to "where else could I have found
this?", and the answer is "nowhere, once that process ended", which is the
whole reason retention exists. 'unknown' when the runtime could not name
the run, never a fabricated id.
signal
readonlysignal:AbortSignal|undefined
Defined in: src/core/agent/window/strategy.ts:98
The run's cancellation signal, when there is one.
turns
readonlyturns: readonlyTurn[]
Defined in: src/core/agent/window/strategy.ts:69
The same window, segmented into turns.
