import { type ChainDefinition } from "./chain.js"; import type { ExecutionSemantics } from "../../receipts/src/index.js"; export declare const parserPackage = "@runx/parser"; export interface RawSkillIR { readonly frontmatter: Record; readonly rawFrontmatter: string; readonly body: string; } export interface SkillInput { readonly type: string; readonly required: boolean; readonly description?: string; readonly default?: unknown; } export interface SkillRetryPolicy { readonly maxAttempts: number; } export interface SkillIdempotencyPolicy { readonly key?: string; } export interface SkillSource { readonly type: string; readonly command?: string; readonly args: readonly string[]; readonly cwd?: string; readonly timeoutSeconds?: number; readonly inputMode?: "args" | "stdin" | "none"; readonly sandbox?: SkillSandbox; readonly server?: { readonly command: string; readonly args: readonly string[]; readonly cwd?: string; }; readonly tool?: string; readonly arguments?: Readonly>; readonly agentCardUrl?: string; readonly agentIdentity?: string; readonly agent?: string; readonly task?: string; readonly hook?: string; readonly outputs?: Readonly>; readonly chain?: ChainDefinition; readonly raw: Record; } export interface SkillArtifactContract { readonly emits?: readonly string[]; readonly namedEmits?: Readonly>; readonly wrapAs?: string; } export type SkillSandboxProfile = "readonly" | "workspace-write" | "network" | "unrestricted-local-dev"; export interface SkillSandbox { readonly profile: SkillSandboxProfile; readonly cwdPolicy?: "skill-directory" | "workspace" | "custom"; readonly envAllowlist?: readonly string[]; readonly network?: boolean; readonly writablePaths: readonly string[]; readonly approvedEscalation?: boolean; readonly raw: Record; } export interface ValidatedSkill { readonly name: string; readonly description?: string; readonly body: string; readonly source: SkillSource; readonly inputs: Readonly>; readonly auth?: unknown; readonly risk?: unknown; readonly runtime?: unknown; readonly retry?: SkillRetryPolicy; readonly idempotency?: SkillIdempotencyPolicy; readonly mutating?: boolean; readonly artifacts?: SkillArtifactContract; readonly allowedTools?: readonly string[]; readonly execution?: ExecutionSemantics; readonly runx?: Record; readonly raw: RawSkillIR; } export interface RawRunnerManifestIR { readonly document: Record; readonly raw: string; } export interface RawToolManifestIR { readonly document: Record; readonly raw: string; } export interface SkillRunnerDefinition { readonly name: string; readonly default: boolean; readonly source: SkillSource; readonly inputs: Readonly>; readonly auth?: unknown; readonly risk?: unknown; readonly runtime?: unknown; readonly retry?: SkillRetryPolicy; readonly idempotency?: SkillIdempotencyPolicy; readonly mutating?: boolean; readonly artifacts?: SkillArtifactContract; readonly allowedTools?: readonly string[]; readonly execution?: ExecutionSemantics; readonly runx?: Record; readonly raw: Record; } export interface HarnessCallerFixture { readonly answers?: Readonly>; readonly approvals?: Readonly>; } export interface HarnessReceiptExpectation { readonly kind?: "skill_execution" | "chain_execution"; readonly status?: "success" | "failure"; readonly subject?: Readonly>; } export interface HarnessExpectation { readonly status?: "success" | "failure" | "needs_resolution" | "policy_denied"; readonly receipt?: HarnessReceiptExpectation; readonly steps?: readonly string[]; } export interface RunnerHarnessCase { readonly name: string; readonly runner?: string; readonly inputs: Readonly>; readonly env: Readonly>; readonly caller: HarnessCallerFixture; readonly expect: HarnessExpectation; } export interface RunnerHarnessManifest { readonly cases: readonly RunnerHarnessCase[]; } export interface SkillRunnerManifest { readonly skill?: string; readonly runners: Readonly>; readonly harness?: RunnerHarnessManifest; readonly raw: RawRunnerManifestIR; } export interface ValidatedTool { readonly name: string; readonly description?: string; readonly source: SkillSource; readonly inputs: Readonly>; readonly scopes: readonly string[]; readonly risk?: unknown; readonly runtime?: unknown; readonly retry?: SkillRetryPolicy; readonly idempotency?: SkillIdempotencyPolicy; readonly mutating?: boolean; readonly artifacts?: SkillArtifactContract; readonly runx?: Record; readonly raw: RawToolManifestIR; } export interface ValidateSkillOptions { readonly mode?: "strict" | "lenient"; } export declare class SkillParseError extends Error { constructor(message: string); } export declare class SkillValidationError extends Error { constructor(message: string); } export declare function parseSkillMarkdown(markdown: string): RawSkillIR; export declare function parseRunnerManifestYaml(yaml: string): RawRunnerManifestIR; export declare function parseToolManifestYaml(yaml: string): RawToolManifestIR; export declare function validateSkill(raw: RawSkillIR, options?: ValidateSkillOptions): ValidatedSkill; export declare function validateRunnerManifest(raw: RawRunnerManifestIR): SkillRunnerManifest; export declare function validateToolManifest(raw: RawToolManifestIR): ValidatedTool; export declare function validateSkillSource(source: Record, runx?: Record): SkillSource; export declare function validateSkillArtifactContract(value: unknown, field?: string): SkillArtifactContract | undefined; export * from "./chain.js"; export * from "./install.js";