agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
16 lines • 1.08 kB
JavaScript
// FOLD · the one owner of whether a filtered set is empty because the filter emptied it (held) or because the run held nothing
// consumers read this and never re-derive it, each NAMED so the pointer survives an edit above it:
// skillToolDescriptors.ts · describeOffer · the propose-transition refusal (toolCalls.ts · "── THE REFUSAL SPEAKS WITH THE FILTERED SETS")
// toolCalls.ts · dispatchRoster · the read_skill gate's two sets (toolCalls.ts · "── Skill-graph read_skill GATE") · the turn-route offer
// detached: yes — { named, held } is freshly built; held is required, not optional, on purpose.
/**
* Apply the role filter to one set and keep both halves (9.86.0).
*
* `mayName` is the caller's visibility predicate — skill ids test membership of
* `scope.hiddenSkillIds`, tool names test whether every skill declaring them is
* hidden. Both questions have one answer shape, and this is it.
*/
export function spoken(all, mayName) {
return { named: all.filter(mayName), held: all.length > 0 };
}
//# sourceMappingURL=spokenIds.js.map