agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
37 lines • 2.01 kB
JavaScript
/**
* hostContract — THE BOUNDARY between the skill-graph runtime and whatever
* runs it (9.34.0).
*
* The skill graph is a pure decision layer: given an `InjectionContext` it
* says which skill the cursor is in, which skills are reachable from there,
* and which injections are active. It does not call a model, does not own a
* loop, and does not know what a `Tool` is in any particular framework. This
* module is the small set of shapes that statement needs to be TRUE:
*
* • {@link SkillToolSchema} / {@link SkillTool} — the narrow shape a skill's
* tools must have for the graph to reason about them (a name, a
* description, an input schema, something to run). agentfootprint's own
* `Tool` structurally satisfies it; so would any other framework's.
* • {@link SkillToolDescriptor} — a PLAIN description of a tool the graph
* needs to exist (`read_skill` above all, which is how the model moves
* the cursor). The graph describes it; the host constructs it in its own
* tool type.
* • {@link SkillCachePolicy} — the cache directive that rides the
* `ActiveInjection` projection across the host boundary.
* • {@link SkillGraphHost} — the obligations a host must meet for the graph
* to route correctly. Documentation as a type.
*
* WHY STRUCTURAL COPIES. `SkillToolSchema` and `SkillCachePolicy` are
* field-for-field mirrors of `provider-contract/types.ts#LLMToolSchema` and
* `cache/types.ts#CachePolicy`. Mirroring them is what lets a foreign host
* satisfy the boundary without importing an adapter layer it does not use;
* TypeScript's structural typing then makes the two spellings mutually
* assignable, so nothing inside agentfootprint changed shape. The mirrors are
* PINNED against their originals by
* `test/injection-engine/skill-graph-fence.test.ts`, which fails on drift
* in either direction.
*
* Zone: PURE CORE. Zero imports, by construction.
*/
export {};
//# sourceMappingURL=hostContract.js.map