/** * The single source of truth for tool names, shared by the wizard, doctor, and * tests. Names are exact and case-sensitive, verified against the runtime's * `pi-bridge.js` (built-ins) and `adapter-send-tools.ts` (adapter send tools). */ import { ALLOW_ALL_TOOLS } from "@mono-agent/config"; /** Re-export the allow-all sentinel so agent-app callers share one canonical value. */ export { ALLOW_ALL_TOOLS }; /** Mono-agent-managed built-ins gated by `tools.allowedTools` (pi-bridge.js). */ export declare const BUILTIN_TOOL_NAMES: readonly ["Read", "Write", "Edit", "Glob", "Grep", "Bash", "Exec", "NodeRepl", "WebFetch", "WebSearch", "Agent"]; /** App-owned tools injected by the configured host and governed by tool policy. */ export declare const APP_TOOL_NAMES: readonly ["RunHistory", "SessionHistory"]; /** Adapter send tools — require BOTH an `allowedTools` entry AND an enabled channel. */ export declare const ADAPTER_SEND_TOOL_NAMES: readonly ["SlackSendMessage", "TelegramSendMessage", "TelegramSendFile", "AskUser"]; /** * Permanent compatibility input aliases for old snake_case tool names. Existing * hand-written allow/deny policies cannot be migrated automatically; in * particular, a legacy deny-list entry must not stop matching and silently * broaden access. Each alias maps to its canonical PascalCase name; * `telegram_send_document`/`telegram_send_photo` both collapse to the single * `TelegramSendFile` tool. The allow/deny matcher and doctor normalize through * this map, while canonical names are the only ones registered, emitted, or * recommended. There is no scheduled removal. */ export declare const LEGACY_TOOL_ALIASES: Record; /** The canonical new name for a tool, resolving a legacy snake_case alias if given. */ export declare function canonicalToolName(name: string): string; /** Safe read-only default pre-checked for every new agent. */ export declare const DEFAULT_SAFE_TOOLS: readonly ["Read", "Glob", "Grep"]; export type BuiltinToolName = (typeof BUILTIN_TOOL_NAMES)[number]; export type AppToolName = (typeof APP_TOOL_NAMES)[number]; export type AdapterSendToolName = (typeof ADAPTER_SEND_TOOL_NAMES)[number]; /** * True when `name` is a built-in, an adapter send tool, or a canonical alias-value * name (exact, case-sensitive match). Legacy snake_case alias KEYS are also accepted * so an old config keeps validating cleanly through the rename. */ export declare function isKnownToolName(name: string): boolean; /** True when `list` contains the global allow-all sentinel (`"*"`). */ export declare function isAllowAllTools(list: readonly string[]): boolean; /** True when `name` targets an MCP server tool (`mcp__…`) — cannot be validated offline. */ export declare function isMcpToolName(name: string): boolean; /** * The closest known tool name for a typo, case-insensitive (e.g. `read` → `Read`), * else undefined. Used by doctor for "did you mean" hints. Matches * case-insensitively against the known set (BUILTIN ∪ ADAPTER_SEND ∪ alias values). */ export declare function suggestToolName(name: string): string | undefined; //# sourceMappingURL=known-tools.d.ts.map