agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
40 lines • 2.27 kB
TypeScript
/**
* toolOutcome — the normalized tool-outcome vocabulary, as a PURE leaf
* (9.34.0).
*
* WHY IT LIVES HERE. A skill-graph route edge can key on what a tool
* DECLARED happened (`onToolStatus`), so this vocabulary is part of the
* graph's own reading of a turn — `InjectionContext.toolResults[].status`
* is typed by it. It used to be declared inside `core/agent/toolEffects.ts`
* (today `semantics/toolEffects.ts`),
* which meant the graph's context type reached into the agent loop's
* tool-effects module for one string union: the loop's vocabulary embedded
* in the graph's contract, pointing the dependency the wrong way.
*
* So the words moved DOWN here — a module with zero imports that both
* sides read. `semantics/toolEffects.ts` re-exports them under the same
* names, so every existing import path is unchanged; that module remains
* the owner of the ENVELOPE grammar (the two effect kinds, the recognizer).
*
* Zone: a zero-import leaf the skill-graph PURE CORE may reach (`PURE_LEAVES`).
* Pinned by `test/injection-engine/skill-graph-fence.test.ts`.
*/
/**
* Normalized outcome of one tool call, declared by the tool itself. Seven
* values, deliberately closed: routing keyed on meaning needs a vocabulary
* both sides spell identically. A string outside this set makes the value
* NOT an envelope (data path, unchanged).
*
* `'absent'` is the seventh (the `absent()` primitive, from field use), and
* it earns its own word rather than folding into `'success'` or `'failure'`
* for the reason the primitive exists: *nothing found* and *could not look*
* must not route down the same edge. Under `'failure'` an honest empty answer
* sends an operator to investigate a healthy collector; under `'success'` a
* route that wants to escalate on "we found nothing" has nothing to key on.
* A tool may declare it directly (`{ content, effects: [], status:
* 'absent' }`); returning `absent(…)` makes the framework declare it.
*/
export type ToolResultStatus = 'success' | 'failure' | 'denied' | 'invalid' | 'partial' | 'pending' | 'absent';
/** The closed set, as data — validators and docs read one list. */
export declare const TOOL_RESULT_STATUSES: readonly ToolResultStatus[];
//# sourceMappingURL=toolOutcome.d.ts.map