/** * Whether an agent carries the `load_skill` family, and why. * * The rule is shared because two independent paths ask it. An agent with a * concrete tool map has its tools resolved once at construction; an agent with * `tools: true` draws from the registry on every step. Both must reach the same * answer, or a bare agent keeps the tools on one path and loses them on the * other. * * @module agent/skill-tool-disposition */ import type { AgentConfig } from "./types.js"; /** * - `disable`: skills were turned off on purpose. Remove the tools even if the * author also configured one, so `skills: false` cannot be worked around. * - `omit`: nothing declared them and there is nothing to load, so do not * inject. * - `inject`: attach the framework tools, keeping any concrete override. */ export type SkillToolDisposition = "disable" | "omit" | "inject"; /** * An undeclared `skills` means "every visible skill", which is usually right -- * but in a project with no skills it resolves to nothing while the tools get * attached anyway, spending prompt budget every request on a tool that could * only answer "no such skill". * * Declaring `skills` at all counts as intent and still injects, `true` against * an empty registry included: that author is opting in deliberately, possibly * before the skills they expect have registered. */ export declare function resolveSkillToolDisposition(config: Pick, agentId: string | undefined): SkillToolDisposition; //# sourceMappingURL=skill-tool-disposition.d.ts.map