/** * Society Protocol — Skills System * * Sistema de skills/plugins para definir comportamentos reutilizáveis. * Baseado em arquivos skill.md (YAML frontmatter + Markdown). */ export interface SkillManifest { skill: { name: string; version: string; description: string; author?: string; license?: string; homepage?: string; repository?: string; }; triggers?: Array<{ type: 'webhook' | 'schedule' | 'event' | 'manual'; source?: string; event?: string; cron?: string; condition?: string; }>; society?: { template?: string; room?: string; priority?: 'low' | 'normal' | 'high' | 'critical'; privacy?: 'public' | 'encrypted' | 'private'; chain_config?: { timeout_ms?: number; max_retries?: number; consensus?: 'single' | 'majority' | 'unanimous'; }; }; inputs?: Array<{ name: string; type: 'string' | 'number' | 'boolean' | 'url' | 'file' | 'json' | 'markdown'; required?: boolean; default?: any; description?: string; validation?: { pattern?: string; min?: number; max?: number; options?: string[]; }; }>; outputs?: Array<{ name: string; type: 'string' | 'file' | 'json' | 'markdown' | 'html' | 'artifact'; description?: string; path?: string; }>; adapters?: Array<{ runtime: string; specialties?: string[]; min_reputation?: number; max_cost?: number; count?: number; }>; hooks?: { on_init?: string; on_validate?: string; on_before_step?: string; on_after_step?: string; on_complete?: string; on_error?: string; }; config?: { env?: Record; secrets?: string[]; files?: string[]; }; documentation?: string; } export interface SkillExecutionContext { skill: SkillManifest; inputs: Record; config: Record; society: { client: any; room: string; }; logger: { info: (msg: string) => void; warn: (msg: string) => void; error: (msg: string) => void; }; } export type SkillHook = (context: SkillExecutionContext) => Promise | void; export declare class SkillParser { parse(content: string): SkillManifest; parseFile(path: string): SkillManifest; private validate; } export declare class SkillLoader { private parser; private skills; loadFromFile(path: string): SkillManifest; loadFromDirectory(dir: string): SkillManifest[]; get(name: string): SkillManifest | undefined; list(): SkillManifest[]; listByCategory(category: string): SkillManifest[]; } export declare class SkillExecutor { private hooks; registerHook(name: string, hook: SkillHook): void; execute(manifest: SkillManifest, inputs: Record, society: { client: any; room: string; }): Promise>; private validateInputs; private buildGoal; private runHook; private collectOutputs; private extractMarkdownOutput; private extractJsonOutput; private extractFileOutput; } export declare function createSkillTemplate(options: { name: string; description: string; template?: string; inputs?: SkillManifest['inputs']; }): string; export declare const skillParser: SkillParser; export declare const skillLoader: SkillLoader; export declare const skillExecutor: SkillExecutor; //# sourceMappingURL=parser.d.ts.map