/** * presentTool — the SHELL of the auto-attached `present` tool (9.22.0). * * Pattern: the `skip_step` placeholder, exactly. The tool here carries the * schema the model reads; the AUTHORITATIVE work — `head` the ref under the * run's scope, compose the description-snapshot result, emit * `agentfootprint.artifacts.presented` — lives in the tool-calls stage * (`applyPresent` in `stages/toolCalls.ts`), which OVERWRITES this * placeholder's result. Bookkeeping lives where the batch order lives: the * stage owns the scope, the store, and the typed emit channel; a tool's * execute owns none of them. * * Attached by `buildToolRegistry` ONLY when a store is attached (the * `read_skill` seam): a storeless agent never sees the tool, never reserves * the name, and is byte-identical. * * The pure half — `PRESENT_TOOL_NAME`, `presentArtifact`, the snapshot * shapes — lives in `src/artifacts/present.ts`, which cannot import core. */ import { type Tool } from '../tools.js'; /** Build the placeholder `present` tool. See the module header. */ export declare function buildPresentTool(): Tool;