/** * Claude Skills — Load Claude-style SKILL.md files as SignalWire agent tools. * * Tier 3 built-in skill that parses Claude Code skill directories and makes * them available as SWAIG tools the AI can call. Each Claude skill becomes a * tool that returns the skill's instructions when invoked. * * Port of Python SDK's `signalwire_agents/skills/claude_skills/skill.py`. */ import { SkillBase } from '../SkillBase.js'; import type { SkillToolDefinition, SkillPromptSection, SkillConfig, ParameterSchemaEntry } from '../SkillBase.js'; /** * Load Claude-style SKILL.md files as SignalWire agent tools. * * This skill parses Claude Code skill directories and makes them available * as SWAIG tools that the AI can call. Each Claude skill becomes a tool * that returns the skill's instructions when invoked. * * @example * ```ts * agent.addSkill('claude_skills', { skills_dir: './claude-skills' }); * ``` */ export declare class ClaudeSkillsSkill extends SkillBase { static SKILL_NAME: string; static SKILL_DESCRIPTION: string; static SKILL_VERSION: string; static REQUIRED_ENV_VARS: readonly string[]; static SUPPORTS_MULTIPLE_INSTANCES: boolean; private _skillsPath; private _includePatterns; private _excludePatterns; private _allowShellInjection; private _allowScriptExecution; private _ignoreInvocationControl; private _shellTimeout; private _skills; static getParameterSchema(): Record; /** * Setup the Claude skills loader — discovers and parses all SKILL.md files. * * Returns `true` on success and `false` on any failure (missing path, * invalid path, stat failure, or non-directory), mirroring the Python * skill's `setup() -> bool` contract. */ setup(): Promise; private _discoverSkills; private _discoverSections; private _discoverSectionsRecursive; private _discoverAllFiles; private _discoverAllFilesRecursive; private _parseSkillMd; private _buildParsedSkill; private _matchesPatterns; /** Simple fnmatch implementation: `*` → `.*`, `?` → `.`, escape the rest. */ private _fnmatch; private _warnUnsupportedFields; private _warnShellPatterns; private _applyInvocationControl; private _sanitizeToolName; private _executeShellInjection; private _substituteVariables; private _substituteArguments; getTools(): SkillToolDefinition[]; private _makeHandler; getHints(): string[]; protected _getPromptSections(): SkillPromptSection[]; getInstanceKey(): string; } /** * Factory function for creating ClaudeSkillsSkill instances. * @param config - Optional skill configuration. * @returns A new ClaudeSkillsSkill instance. */ export declare function createSkill(config?: SkillConfig): ClaudeSkillsSkill;