/** * Keep prompts in step with the tools that are actually loaded. * * With selective loading (--modules, MODULES), a prompt that says "call * treasury_query_fiscal_data" when Treasury isn't loaded sends the model after * a tool that doesn't exist. The filter: * * - drops every line that mentions a known tool which isn't loaded, wherever * the name appears in the line (list item, numbered step, prose) * - renumbers numbered steps after a removal so they stay 1, 2, 3, … * - hides a prompt when it mentions tools but none of them are loaded and it * doesn't name a loaded module either * * "Known" tools are those of every module that could be loaded, plus * deprecated aliases. Other snake_case words, such as dataset names like * debt_to_penny, are left alone. */ import type { InputPrompt } from "fastmcp"; /** Known tool names mentioned in `text`. */ export declare function mentionedTools(text: string, known: ReadonlySet): Set; /** * Remove lines that mention known-but-unloaded tools. Numbered steps are * renumbered so each list still counts up from its original first number. */ export declare function filterPromptText(text: string, known: ReadonlySet, available: ReadonlySet): string; /** * Wrap prompts so their output mentions only loaded tools, and drop prompts * that can't be used: they mention tools, none of those are loaded, and they * don't name a loaded module either ("pull these FRED series" still counts * for FRED). Prompt text is sampled once with empty arguments to see what it * mentions; a prompt that can't be sampled is kept. */ export declare function filterPrompts

>(prompts: P[], known: ReadonlySet, available: ReadonlySet, loadedModules?: readonly string[]): Promise; //# sourceMappingURL=prompt-filter.d.ts.map