/** * Per-platform packaging for operational skills. * * Mirrors the framework adapter seam — one canonical body, N platform-native * files — but never passes through `loadSkills`/`parseSkillFile`, which require a * lifecycle `phase` an operational skill does not have (D-1, AC-33). * * Two shapes: * * - **Per-skill** (claude-code): one pointer file per skill. * - **Index** (codex): one artifact listing every operational skill, because * Codex reads only `AGENTS.md`. * * Every platform artifact is a **pointer** to the canonical body — the full * instructions and the verification text live in * `.aidlc/operational-skills/.md` only. That scoping is what makes * AC-35/AC-37/AC-38 well-defined. * * Requirements: AC-13, AC-14, AC-15, AC-16, AC-20, AC-47, AC-48 * * @module */ import type { FileOp, PlatformId } from '../core/types.js'; import type { OperationalSkill } from './schema.js'; /** Directory holding canonical operational-skill bodies (AC-13, D-2). */ export declare const OPERATIONAL_DIR = ".aidlc/operational-skills"; /** Merge-block id for operational skills. Distinct from every framework id. */ export declare const OPERATIONAL_BLOCK_ID = "aidlc-operational-skills"; /** * Build the app-owned marker comment. * * Placement differs per target because `claude-code.ts` validates that its files * *begin* with frontmatter, so a first-line comment would fail its validator. */ export declare function ownershipMarker(name: string): string; /** Packaging strategy for one platform. */ export interface OperationalPackager { readonly platform: PlatformId; /** Per-skill file ops. Empty for index-shaped platforms. */ plan(skill: OperationalSkill): FileOp[]; /** One op covering all operational skills. Absent for per-skill platforms. */ planIndex?(skills: OperationalSkill[]): FileOp | null; } /** Thrown when a configured platform has no operational packaging (AC-16). */ export declare class UnsupportedPlatformError extends Error { readonly platform: string; constructor(platform: string, supported: readonly string[]); } /** Relative path of a skill's canonical body. */ export declare function canonicalBodyPath(name: string): string; /** Platforms with operational packaging, sorted for stable error messages. */ export declare const supportedOperationalPlatforms: PlatformId[]; /** * Look up the packager for a platform. * * @param platform - Platform identifier from `.aidlc/config.yaml`. * @returns The packager. * @throws {UnsupportedPlatformError} When the platform has no packaging (AC-16). */ export declare function packagerFor(platform: PlatformId): OperationalPackager; /** Does this platform have operational packaging? */ export declare function hasOperationalPackaging(platform: string): boolean; //# sourceMappingURL=packagers.d.ts.map