agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
44 lines • 1.93 kB
TypeScript
/**
* loadFacts — read-side stage that loads stored `Fact` entries into
* `scope.loadedFacts`.
*
* Reads from scope: `identity`
* Writes to scope: `loadedFacts` (appends — does not replace)
*
* Unlike `loadRecent` (which returns ALL entries and lets downstream
* stages filter), `loadFacts` queries the store and keeps only entries
* whose id matches the `fact:` prefix. Facts are typically few dozen
* at most per identity — a linear scan after a bounded `list` call is
* cheap.
*
* Why append, not replace?
* Same contract as `loadRecent` — pipelines may combine multiple
* load stages (e.g. facts + recent messages + beats). Appending lets
* each contribute without coordination.
*
* Note: this stage writes `loadedFacts` (a separate field from
* `loaded`) because fact entries have a different payload type
* (`MemoryEntry<Fact>`) than message entries (`MemoryEntry<Message>`).
* Keeping them separate prevents format stages from misrouting entries.
*/
import type { TypedScope } from 'footprintjs';
import type { MemoryStore } from '../store/index.js';
import type { FactPipelineState } from './extractFacts.js';
export interface LoadFactsConfig {
/** The store to read from. */
readonly store: MemoryStore;
/**
* Upper bound on the `list` call's page size. Adapters may cap this
* lower. Defaults to 100 — enough for typical identity/preference
* inventories. Fact pipelines that accumulate task statuses or
* commitments should raise this.
*/
readonly limit?: number;
/**
* Optional tier filter. When set, only loads facts tagged with one
* of these tiers. Matches the `loadRecent` / `loadRelevant` API.
*/
readonly tiers?: ReadonlyArray<'hot' | 'warm' | 'cold'>;
}
export declare function loadFacts(config: LoadFactsConfig): (scope: TypedScope<FactPipelineState>) => Promise<void>;
//# sourceMappingURL=loadFacts.d.ts.map