agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
27 lines (26 loc) • 1.72 kB
TypeScript
import type { ArtifactRef } from '../artifacts/types.js';
import type { ArtifactDetailArgs, ArtifactDetailResult } from '../artifacts/detailTypes.js';
import { type Tool, type ToolExecutionContext } from './tools.js';
/** Trusted host admission and presentation; neither callback is controlled by model arguments. */
export interface ArtifactDetailOptions {
readonly name: string;
/** Re-authorize this reference for the caller on EVERY navigation call. No implicit store read occurs. */
readonly admit: (ref: ArtifactRef, ctx: ToolExecutionContext) => Promise<unknown>;
/** Presentation only, nested under context; it cannot override ref, path, mode or pagination. */
readonly context?: (root: unknown, path: string) => Readonly<Record<string, unknown>>;
}
/**
* Open bounded JSON sections through a host-authenticated reference.
*
* The host owns scope, run, source, kind, integrity and domain checks in `admit`.
* This helper never reads a store automatically or grants claim authority. Every
* call re-admits, then detaches/freezes at most 1 MiB of ordinary JSON (depth 100).
* Paths have at most 16 segments and 2048 UTF-16 characters; pages contain at most
* 20 children. Whole responses are bounded to 12 KiB UTF-8, including at most
* 4 KiB host context; inline values are at most 8 KiB. Large scalars are omitted
* whole. Bounds do not preempt synchronous host code or arbitrary Proxy traps.
*
* Callback failures use fixed refusal text. Cancellation stops waiting and late
* results cannot be served, but does not claim the underlying work stopped.
*/
export declare function artifactDetailTool(options: ArtifactDetailOptions): Tool<ArtifactDetailArgs, ArtifactDetailResult>;