import type { ToolDefinition } from './rpc.js'; /** * The tools, kept in one file so the whole surface an agent can reach reads in one * pass. * * **Three deliberate absences, and they are the security design.** * * *No paths.* Every tool takes prompt text. A tool that accepted a filename would * be a file-read primitive reachable by whatever the model decided to ask for, and * "we reviewed it" is not a durable defence against one being added later. This * package imports `@trazum/core`, the browser-safe entry point, and never * `@trazum/core/node` — so the capability is *absent* rather than unused, and a * test enforces that. * * *No network.* Nothing here calls a model. `--suggest` and `eval` exist in the * CLI and are deliberately not exposed: they spend the caller's money, and a tool * an agent can invoke in a loop must not be able to do that. Everything below is * arithmetic on text. * * *No writes.* The tools return figures. Applying them is the agent's job, in its * own context, where a human can see the diff. */ /** * The same cap every other door uses, read from the one place it is written. * * An agent in a loop is exactly the caller that hands you a 40 MB string by * accident. Refusing early with a number beats an unbounded pass over it. */ export declare const MAX_PROMPT_CHARS = 400000; /** * Larger than the prompt cap because a usage log is a different object: a month * of calls at one JSON line each. Two million characters is a few MB of log — * far beyond what an agent realistically holds in context, so the cap exists to * refuse the accident, not to invite the maximum. */ export declare const MAX_LOG_CHARS = 2000000; /** Per answer. An interview is short fields, not a pasted corpus. */ export declare const MAX_ANSWER_CHARS = 20000; /** * Ordered by when an agent would reach for them, not by when they were written. * * A client renders this list in order and some truncate it. `spend_guard` is the * only tool here whose trigger is an event inside the agent's own loop rather * than a sentence somebody typed: every other tool answers "do this", and that * one answers "I am about to spend". It sat sixth of seven. */ export declare const TOOLS: readonly ToolDefinition[]; //# sourceMappingURL=tools.d.ts.map