/** * Generic lexicon packaging pipeline. * * Orchestrates: generate → manifest → collect rules → collect skills → * assemble BundleSpec → compute integrity → attach metadata. */ import type { BundleSpec, LexiconManifest } from "../lexicon.js"; import type { GenerateResult } from "./generate.js"; export interface PackageOptions { verbose?: boolean; force?: boolean; } export interface PackageResult { spec: BundleSpec; stats: { resources: number; properties: number; enums: number; ruleCount: number; skillCount: number; }; } export interface PackagePipelineConfig { /** Run generation and return artifacts. */ generate: (opts: { verbose?: boolean; force?: boolean; }) => Promise; /** Build the lexicon manifest from the generate result. */ buildManifest: (genResult: GenerateResult) => LexiconManifest; /** Source directory for collecting rules. */ srcDir: string; /** Rule directories relative to srcDir (default: ["lint/rules", "lint/post-synth"]). */ ruleDirs?: string[]; /** Collect skill definitions. Returns map of filename → content. */ collectSkills: () => Map; /** Package version for metadata. */ version?: string; } /** * Run the packaging pipeline with the supplied config. */ export declare function packagePipeline(config: PackagePipelineConfig, opts?: PackageOptions): Promise; /** * Collect lint rule source files from a lexicon package. * Auto-discovers .ts files in the specified directories, * skipping test files, re-export files (index.ts), and non-.ts files. */ export declare function collectRules(srcDir: string, dirs?: string[]): Map; /** * Write a BundleSpec to the given dist directory. * * Creates the directory structure and writes all artifacts: * manifest.json, meta.json, types/index.d.ts, rules/*, skills/*, okf/*, * integrity.json. */ export declare function writeBundleSpec(spec: BundleSpec, distDir: string): void; /** * Collect skills from a plugin's skill definitions. */ export declare function collectSkills(skillDefs: Array<{ name: string; content: string; }>): Map; //# sourceMappingURL=package.d.ts.map