/** * Plugin interface for converting eval.yaml and results * into formats consumed by external evaluation tools. */ import type { EvalSchema } from "../eval/types.js"; import type { ExporterRegistry } from "./registry.js"; /** Input for schema export: the eval spec and its root directory. */ export interface ExportSchemaInput { /** The parsed eval.yaml. */ eval: EvalSchema; /** Directory containing the eval.yaml (for resolving relative paths). */ rootDir: string; /** Exporter-specific options. */ options?: Record; } export interface ExportSchemaResult { /** Paths written, relative to the output directory. */ filesWritten: string[]; /** Non-fatal issues (unmappable concepts, lossy conversions). */ warnings?: ExportWarning[]; } /** A non-fatal issue encountered during export. */ export interface ExportWarning { /** Machine-readable code (e.g. "unsupported-grader-type"). */ code: string; /** Human-readable explanation. */ message: string; /** Which stimulus triggered this, if applicable. */ stimulus?: string; } export interface EvalExporter { /** Unique name */ name: string; /** Human-readable description */ description: string; /** * Convert an EvalSchema into the target tool's format. * Writes output files to `outputDir`. */ exportSchema(input: ExportSchemaInput, outputDir: string): Promise; } /** Every exporter plugin exports a `registerExporters(registry)` function. */ export interface ExporterPluginEntry { registerExporters: (registry: ExporterRegistry) => void | Promise; } export declare function isExporterPluginEntry(mod: unknown): mod is ExporterPluginEntry; //# sourceMappingURL=types.d.ts.map