/** * Honouring `nativeTools:` now that Unreal's tools are declared rather than * injected. * * The config contract has not changed. `nativeTools.enabled: false` means "do * not advertise the wrapped engine tools", and `nativeTools.exclude: [gas]` * means "not in that category". What changed is the direction the work runs in: * the catalog used to be read from the live editor at startup and injected, so * honouring the config meant declining to inject; the actions are declared in * `ALL_TOOLS` now, so honouring it means REMOVING them from this session's * graph. * * Removal rather than conditional declaration is deliberate. One declaration * that every session starts from is what puts these actions in the golden * baseline, the parameter audits and `describe_action`; a surface that only * exists when an editor was reachable at startup was exactly what could not be * held to any of those. * * The `epic` category's own four actions (status, list_toolsets, * describe_toolset, call_tool) are never removed. They are the gateway, and * `call_tool` stays reachable for a toolset this package has not baked, which * is what makes turning the surface off survivable rather than a dead end. */ import type { ToolDef } from "./types.js"; /** Prefix every generated engine-tool action carries. */ export declare const EPIC_ACTION_PREFIX = "epic_"; export interface NativeToolsConfig { enabled?: boolean; exclude?: string[]; } export interface EpicSurfaceResult { /** How many generated actions were removed. */ removed: number; /** Per category, how many went. */ byCategory: Record; /** Categories that lost every action they had and were dropped entirely. */ droppedCategories: string[]; } /** * Apply `nativeTools:` to one session's graph, in place. * * A category left with no actions at all is dropped rather than advertised * empty: `dataflow` and `conversation` are wrapped engine tools and nothing * else, so switching those off should remove the category, not leave a tool * whose every action is gone. */ export declare function applyNativeToolsConfig(tools: ToolDef[], cfg: NativeToolsConfig | undefined): EpicSurfaceResult;