/** * Typed skill system. * * Skills are data/configuration — never automatically trusted code. A skill * manifest declares typed inputs, an output schema, allowed tools, denied * effects, execution mode, budget, timeout, success criteria, a model role, * version, and provenance. A skill can never grant capabilities the parent run * lacks: effective permissions are the intersection of user authorization ∩ * parent policy ∩ skill allowlist ∩ execution mode. Repository Markdown is * never executed as a skill unless it has a recognized manifest + schema. */ import type { ModelRole, SkillExecutionMode, SkillManifest } from "./types.js"; export interface SkillValidation { valid: boolean; errors: string[]; warnings: string[]; } export interface EffectiveSkillPolicy { allowedTools: ReadonlySet; deniedEffects: ReadonlySet; executionMode: SkillExecutionMode; canPublish: boolean; canMutate: boolean; } export declare function validateSkillManifest(manifest: unknown): SkillValidation; /** * Compute the effective policy as the intersection of parent allowlist, skill * allowlist, and execution mode. A skill cannot authorize tools the parent run * does not allow, and observe/static modes never mutate or publish. */ export declare function computeEffectiveSkillPolicy(skill: SkillManifest, parentAllowedTools: ReadonlySet, userCanPublish: boolean, parentCanMutate: boolean): EffectiveSkillPolicy; /** Inspect the default model role for a skill (bounded). */ export declare function skillModelRole(skill: SkillManifest): ModelRole; //# sourceMappingURL=skills.d.ts.map