import { type AgentSkillDiagnosticId } from "./diagnostic-ids.js"; import type { CommandInvocation } from "./types/decision.js"; import type { ParsedDocument } from "./types/metadata.js"; import { type ParsedYamlFrontmatter } from "./yaml-frontmatter.js"; export declare const AGENT_SKILLS_SPECIFICATION = "https://agentskills.io/specification"; export declare const LEGACY_RENMA_SKILL_FIELDS: readonly ["id", "title", "version", "owner", "status", "status_reason", "status_changed_at", "purpose", "last_reviewed_at", "review_cycle", "expires_at", "tags", "when_to_use", "when_not_to_use", "requires_context", "optional_context", "requires_lens", "optional_lens", "conflicts", "superseded_by", "allowed_data", "network_allowed", "external_upload_allowed", "secrets_allowed", "requires_human_approval", "forbidden_inputs", "approved_network_destinations", "approved_upload_destinations", "security_profile"]; export type AgentSkillFormat = "agent-skills" | "renma-legacy" | "hybrid" | "unknown"; export interface AgentSkillValidationIssue { code: AgentSkillDiagnosticId; severity: "error" | "warning"; category: "specification" | "renma-authoring"; path: string; startLine: number; endLine: number; message: string; field?: string; details?: Record; } export interface AgentSkillValidationResult { path: string; format: AgentSkillFormat; valid: boolean; name?: string; description?: string; migrationRecommended: boolean; migrationDirection?: "legacy-to-agent-skills"; migrationCommand?: AgentSkillMigrationCommand; legacyFields: string[]; canonicalRenmaFields: string[]; errorCount: number; warningCount: number; issues: AgentSkillValidationIssue[]; } export interface AgentSkillInspection { frontmatter: ParsedYamlFrontmatter; validation: AgentSkillValidationResult; } export type AgentSkillMigrationCommand = CommandInvocation<[ "suggest-metadata", string ]>; export interface AgentSkillsValidationSummary { specification: string; profile: string; totalSkillCount: number; validSkillCount: number; invalidSkillCount: number; canonicalSkillCount: number; legacySkillCount: number; hybridSkillCount: number; warningCount: number; results: AgentSkillValidationResult[]; } export interface AgentSkillNameValidation { normalized: string | undefined; problems: string[]; } /** Validate every discovered Skill using one locally versioned Agent Skills profile. */ export declare function validateAgentSkills(documents: ParsedDocument[]): AgentSkillsValidationSummary; /** Validate one discovered Skill without changing any operational metadata reader. */ export declare function validateAgentSkill(document: ParsedDocument): AgentSkillValidationResult; /** Parse and validate a Skill once for canonical operational consumers. */ export declare function inspectAgentSkill(document: ParsedDocument): AgentSkillInspection; /** Resolve the YAML description value used by Skill quality rules. */ export declare function resolvedAgentSkillDescription(document: ParsedDocument): string | undefined; /** Normalize and validate an Agent Skills YAML name field. */ export declare function normalizeAgentSkillNameField(value: unknown): AgentSkillNameValidation; /** Normalize and validate a Skill directory name without changing filesystem identity. */ export declare function normalizeAgentSkillDirectoryName(value: unknown): AgentSkillNameValidation; export declare function legacyRenmaMetadataKey(field: string): string | undefined; /** Return all original-file line numbers occupied by fenced code blocks. */ export declare function agentSkillFenceLines(document: ParsedDocument): Set;