import type { AgentTool } from "@elyracode/agent-core"; import { type Static, Type } from "typebox"; import type { ToolDefinition } from "../extensions/types.js"; declare const skillWriteSchema: Type.TObject<{ name: Type.TString; description: Type.TString; body: Type.TString; scope: Type.TOptional, Type.TLiteral<"project">]>>; }>; export type SkillWriteToolInput = Static; export interface SkillWriteToolDetails { name: string; scope: "user" | "project"; path: string | null; saved: boolean; rejected?: boolean; } /** Pluggable operations for the skill-write tool (overridable for tests). */ export interface SkillWriteOperations { writeFile: (absolutePath: string, content: string) => Promise; mkdir: (dir: string) => Promise; exists: (path: string) => boolean; } export interface SkillWriteToolOptions { /** Directory for user-scoped skills (e.g. ~/.elyra/agent/skills). */ userSkillsDir: string; /** Directory for project-scoped skills (e.g. /.elyra/skills). */ projectSkillsDir: string; /** Whether auto-skills is enabled. Read fresh on each call so toggles take effect immediately. */ getAutoSkills: () => boolean; /** Custom operations (default: local filesystem). */ operations?: SkillWriteOperations; } /** * Validate a skill name against the Agent Skills spec. * Returns an error message, or null if valid. */ export declare function validateSkillName(name: string): string | null; /** Validate a skill description against the spec. Returns an error message, or null if valid. */ export declare function validateSkillDescription(description: string): string | null; /** Build the full SKILL.md content from frontmatter fields plus a Markdown body. */ export declare function buildSkillMarkdown(name: string, description: string, body: string): string; export declare function createSkillWriteToolDefinition(options: SkillWriteToolOptions): ToolDefinition; export declare function createSkillWriteTool(options: SkillWriteToolOptions): AgentTool; export {}; //# sourceMappingURL=skill-write.d.ts.map