UNPKG

agentfootprint

Version:

The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.

39 lines • 1.89 kB
"use strict"; /** * iterationBudget — how many actions a turn has left, computed in ONE place. * * Pattern: One pure function. No imports, no state, no clock. * Role: Leaf. Three layers ask this question and used to answer it three * times: the cache decision (`CachePolicyContext.iterationsRemaining`), * the request assembly (`CacheStrategy.prepareRequest`), and — since * 9.57.0 — the injection engine, which puts the number in front of * the MODEL. * Emits: N/A. * * Three copies of `Math.max(0, max - iteration)` were three chances to be off * by one, and the one that matters most is the new one: a model told "5 remain" * that actually has 4 will plan a step it cannot take. So there is one * implementation and every caller uses it. * * `Math.max(0, …)` rather than a raw subtraction because `iteration` legally * exceeds `maxIterations` by one: the out-of-budget wrap-up call (9.56.0) runs * at `max + 1`. "0 remain" is the truth there. A negative count would be * arithmetic leaking into a sentence a person reads. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.iterationsRemainingOf = void 0; // FOLD · the one owner of how many actions a turn has left — the number a model is told // consumers read this and never re-derive it: promptTemplate.ts · renderTemplate, buildInjectionEngineSubflow.ts, // callLLM.ts (the llm_start payload), cache/CacheDecisionSubflow.ts // detached: yes — a number. /** * Actions left in this turn — never negative. * * @param maxIterations the turn's action cap * @param iteration the action about to be taken (1-based) */ function iterationsRemainingOf(maxIterations, iteration) { return Math.max(0, maxIterations - iteration); } exports.iterationsRemainingOf = iterationsRemainingOf; //# sourceMappingURL=iterationBudget.js.map