/** * Pre-constructed CRUD tools for model-visible standing instruction management. * * @module @nhtio/adk/batteries/tools/standing_instructions * * @remarks * Pre-constructed CRUD tools that expose the ADK's standing-instruction surface to the * model. Each tool delegates to the corresponding callback on the active * {@link @nhtio/adk!DispatchContext} (`standingInstructions` getter, `storeStandingInstruction`, * `deleteStandingInstruction`) — the persistence layer is whatever the consumer wired into * the runner. * * Standing instructions are stored as a {@link Set} of {@link @nhtio/adk!Tokenizable} values keyed by * identity, not by an `id` field — there is no separate "update by id" semantics. The tools * therefore expose only `list` / `add` / `remove`. To replace an existing instruction the * model should `remove` the old value and `add` the new one (the ADK's persistence layer * is free to interpret that pair as an update if appropriate). * * Output is JSON for every tool so consumers can parse the result without re-tokenising — * the artifact constructor is set to {@link @nhtio/adk!SpooledJsonArtifact}. * * Tools: * - {@link listStandingInstructionsTool} — read-only list of every standing instruction * currently held by the context (after refreshing from the persistence layer). * - {@link addStandingInstructionTool} — add a new standing instruction. * - {@link removeStandingInstructionTool} — remove a standing instruction by its content * (exact string match). */ import { SpooledJsonArtifact, Tool } from "../../../common"; /** * List every standing instruction currently held by the active execution context. * * @remarks * Calls `ctx.refreshStandingInstructions()` to ensure the local Set is in sync with the * persistence layer, then serialises the resulting strings to a JSON array. The list is * stringly-keyed; the same content string serves as the identifier for subsequent removes. */ export declare const listStandingInstructionsTool: Tool>; /** * Add a new standing instruction to the active execution context. * * @remarks * Delegates to `ctx.storeStandingInstruction(content)`. Standing instructions are stored as * a `Set` — adding the same content twice is a no-op at the local level, though the * consumer's persistence callback may interpret it differently. */ export declare const addStandingInstructionTool: Tool>; /** * Remove an existing standing instruction by its content string. * * @remarks * Delegates to `ctx.deleteStandingInstruction(content)`. Idempotent — succeeds even when * no matching instruction is currently present. */ export declare const removeStandingInstructionTool: Tool>; /** * Convenience tuple of every standing-instruction tool. Spread into a {@link @nhtio/adk!ToolRegistry} * to register the entire category at once. */ export declare const standingInstructionTools: readonly [ Tool>, Tool>, Tool> ];