import { mkdtemp } from "node:fs/promises";
import { join } from "node:path";
import { tmpdir } from "node:os";
import type { KernelStores } from "../../../core/src/classify/classifier.js";
import { loadContractStore } from "../../../core/src/contracts/store.js";
import { loadDecisionStore } from "../../../core/src/decisions/store.js";

const CLOCK_START = "2026-07-25T00:00:00.000Z";

export async function makeCalibrationStores(now = CLOCK_START): Promise<KernelStores> {
  const root = await mkdtemp(join(tmpdir(), "invariantum-calibration-"));
  const [decisions, contracts] = await Promise.all([
    loadDecisionStore(root),
    loadContractStore(root),
  ]);

  return {
    decisions,
    contracts,
    authoritativeContracts: new Set<string>(),
    now,
  };
}
