import type { SkillLoader, Tool } from '@wrongstack/core/types'; export interface SkillToolInput { name: string; /** Optional relative path of a bundled resource to load (e.g. `references/REF.md`, `scripts/extract.py`, `assets/template.html`). Omit to list resources. */ resource?: string | undefined; } export interface SkillResource { /** Path relative to the skill directory (e.g. `scripts/extract.py`). */ path: string; bytes: number; } export interface LoadedResource { rel: string; absPath: string; content: string; bytes: number; truncated: boolean; } export interface SkillToolOutput { name: string; description: string; /** Frontmatter-stripped SKILL.md body (capped). */ body: string; /** All bundled resource files (recursive), when no specific resource was requested. */ resources: SkillResource[]; /** Absolute directory of the skill — run scripts via bash using paths under here. */ dir: string; /** When `resource` was requested: the loaded file. */ loadedResource?: LoadedResource | undefined; /** * Soft advisory: prose in the skill body mentions tools not registered in * this runtime (e.g. hidden by a token-saving tier). The skill still loads — * only `manifest.requiredTools` hard-fails. */ warning?: string | undefined; } /** * Skill tool — the agentskills.io progressive-disclosure primitive. * * - `skill({ name })` → SKILL.md body + a recursive listing of every bundled * resource file (scripts/ references/ assets/ templates/ … any subdir). * - `skill({ name, resource })` → the content of that one resource file. * * Use this (not the `read` tool) to load skill resources: it works for foreign * skills that live outside the project root (e.g. `~/.claude/skills/…`), which * a project-root-restricted `read` tool may refuse. Scripts are returned with * their absolute path so the agent can run them via `bash`. */ export declare function makeSkillTool(skillLoader: SkillLoader): Tool; //# sourceMappingURL=skill.d.ts.map