/** * MetadataSchema — Full simulation configuration capture for reproducibility. * * Every simulation run produces a JSON metadata record that captures: * - Solver type and version * - Complete parameter set * - Mesh/grid description * - Material properties used * - Boundary conditions * - Convergence settings and results * - Provenance (timestamp, software version) * * This record, combined with the solver code at the recorded commit, * should be sufficient to reproduce the simulation exactly. */ export interface SimulationMetadata { /** Schema version for forward compatibility */ schemaVersion: '1.0.0'; /** Unique run identifier */ runId: string; /** ISO 8601 timestamp of when the simulation was executed */ timestamp: string; /** Software identification */ software: { name: 'HoloScript'; version: string; commitHash?: string; }; /** Solver configuration */ solver: { type: 'thermal' | 'structural' | 'hydraulic' | 'coupled'; /** Full solver config as-provided (JSON-serializable) */ config: Record; }; /** Mesh/grid description */ mesh: { type: 'regular_grid' | 'tetrahedral' | 'pipe_network'; /** Grid dimensions or node/element counts */ dimensions: Record; /** Hash of mesh data for integrity checking */ dataHash?: string; }; /** Materials used in the simulation */ materials: { name: string; properties: Record; source?: string; }[]; /** Convergence results */ convergence?: { converged: boolean; iterations: number; finalResidual: number; }; /** Result summary (min/max/avg of primary field) */ resultSummary: { fieldName: string; min: number; max: number; avg: number; }; /** Whether the run is deterministically reproducible */ deterministic: boolean; /** Free-form notes */ notes?: string; } /** * Create a metadata record for a simulation run. */ export declare function createMetadata(partial: Omit & { runId?: string; timestamp?: string; }): SimulationMetadata; /** * Validate a metadata record. Returns list of errors (empty = valid). */ export declare function validateMetadata(meta: SimulationMetadata): string[]; /** * Serialize metadata to formatted JSON string. */ export declare function serializeMetadata(meta: SimulationMetadata): string; /** * Deserialize and validate a JSON metadata string. * Throws on parse error or validation failure. */ export declare function deserializeMetadata(json: string): SimulationMetadata; //# sourceMappingURL=MetadataSchema.d.ts.map