import { getExecutorRuntimeFingerprint } from '../executors/runtime-fingerprint.js'; import type { Artifact, Report, Sample, Task, VariantResult, GitInfo, EvaluationJob, EvaluationRequest, EvaluationRun, ReportDocument } from '../types/index.js'; export declare const DEFAULT_OUTPUT_DIR: string; export declare const EVALUATION_REPORT_SCHEMA_VERSION = 5; export declare function hashString(str: string): string; export { hashSample } from './sample-fingerprint.js'; export declare function getCliVersion(): string; export declare function getGitInfo(): GitInfo | null; export declare function buildExecutorRuntimesByVariant({ variants, model, executorName, tasks, artifacts, request, }: { variants: string[]; model: string; executorName: string; tasks: Task[]; artifacts: Artifact[]; request?: Pick; }): Record>; interface AggregateReportOptions { runId: string; variants: string[]; model: string; judgeModel: string; noJudge: boolean; executorName: string; samples: Sample[]; samplesBaseDir?: string; tasks: Task[]; results: Record>; totalCostUSD: number; artifacts: Artifact[]; request?: EvaluationRequest; run?: EvaluationRun; job?: EvaluationJob; layeredStats?: boolean; } export declare function aggregateReport({ runId, variants, model, judgeModel, noJudge, executorName, samples, samplesBaseDir, tasks, results, totalCostUSD, artifacts, request, run, job, layeredStats, }: AggregateReportOptions): Report; export type PersistableReport = ReportDocument; export declare function persistReport(report: PersistableReport, outputDir: string | null): string | null; /** * run id 的时间戳后缀 `YYYYMMDDTHHmmss-rand4`。 * 含秒 + 4 位随机:id 是 run 标签(非测量数),但被 studio 机器级 dedup 与 managed 证据 (reportId, * contentHash) 去重当唯一键用。分钟级会让跨项目 / 同分钟重跑撞同 id → 索引静默顶掉一份、managed 错并一条。 * 秒+随机根治撞名,保证每次 run 全局唯一。供 generateRunId 与 evolve 合并 id 共用,避免靠 split 反解格式。 */ export declare function runIdSuffix(): string; export declare function generateRunId(variants: string[]): string;