//#region extensions/crypto/src/services/tool-config-service.d.ts /** * Tool Configuration Service — Centralized registry of what each tool needs. * * Maps tool names to their requirements (env vars, wallet, services). * Used by: * - Tools themselves (early return with clean guidance when not configured) * - /setup command (shows what's configured vs missing) * - System prompt injection (tells the LLM what's available) */ interface ToolRequirement { /** Tool name (matches the tool's `name` field) */ tool: string; /** Human-readable label */ label: string; /** Short description of what the tool does */ description: string; /** Env vars required (ALL must be set for tool to work) */ requiredKeys: string[]; /** Env vars that add optional functionality */ optionalKeys?: string[]; /** Whether a connected wallet is required */ walletRequired?: boolean; /** Whether the tool works without any keys (public APIs) */ worksWithoutKeys?: boolean; /** Where to get the key(s) */ keySource?: string; /** flykeys set example */ setupHint?: string; } declare const TOOL_REQUIREMENTS: ToolRequirement[]; /** Get requirements for a specific tool */ declare function getToolRequirement(toolName: string): ToolRequirement | undefined; /** Check if a tool has all its required keys configured */ declare function isToolConfigured(toolName: string): boolean; /** Get missing keys for a tool */ declare function getMissingKeys(toolName: string): string[]; /** * Check tool configuration and return a clean guidance message if not configured. * Returns null if the tool is ready to use. * * Usage in tools: * ```ts * const notReady = checkToolConfig('block_explorer'); * if (notReady) return notReady; * ``` */ declare function checkToolConfig(toolName: string): { content: Array<{ type: 'text'; text: string; }>; details: unknown; isError: true; } | null; interface ToolStatus { tool: string; label: string; description: string; configured: boolean; missingKeys: string[]; setupHint?: string; keySource?: string; walletRequired?: boolean; } /** Get status of all tools */ declare function getAllToolStatus(): ToolStatus[]; //#endregion export { TOOL_REQUIREMENTS, ToolRequirement, ToolStatus, checkToolConfig, getAllToolStatus, getMissingKeys, getToolRequirement, isToolConfigured }; //# sourceMappingURL=tool-config-service.d.mts.map