UNPKG

agentfootprint

Version:

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

41 lines • 2.04 kB
"use strict"; /** * compaction/errors — the one refusal compaction makes out loud. * * Pattern: Typed terminal error (peer of PolicyHaltError). * Role: core/ layer. * Emits: N/A. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.CompactionUnmeasurableError = void 0; /** * Thrown when compaction is configured but the provider reports no token * usage, so the threshold cannot be COUNTED. * * Compaction is counted, not guessed. Given a provider that reports nothing, * the library has three options: guess the window size (a lie), silently do * nothing (a configured budget that never applies — config that lies), or say * so. It says so, by name, at the first iteration boundary where a completed * call reported zero tokens in AND zero out. * * Terminal: `Agent.run` does not wrap this in `RunCheckpointError`, because * resuming would walk into the same wall with the same provider. */ class CompactionUnmeasurableError extends Error { name = 'CompactionUnmeasurableError'; /** `provider.name` of the adapter that reported nothing. */ provider; constructor(provider) { super(`Compaction is counted, not guessed: provider '${provider}' reported 0 input and 0 output ` + `tokens for the last call, so the window cannot be measured against thresholdTokens. ` + `Compaction refuses rather than guess the size of the window or leave a configured ` + `budget silently unenforced. Fixes: use a provider that reports usage (anthropic, ` + `openai, bedrock, ollama and the mock provider all do), or remove .compaction() from ` + `this agent. Note that an OpenAI-COMPATIBLE endpoint reached through openai({ baseURL }) ` + `may not send usage while streaming — for a local model, ollama() talks the native API ` + `and always reports it.`); this.provider = provider; } } exports.CompactionUnmeasurableError = CompactionUnmeasurableError; //# sourceMappingURL=errors.js.map