import type { Provider } from "./types.js"; type PrismaProvider = Exclude | "hermes_agent"; export function toPrismaProvider(provider: Provider): PrismaProvider { return provider === "hermes-agent" ? "hermes_agent" : provider; } export function fromPrismaProvider(provider: unknown): Provider | null { if (provider === null || provider === undefined) return null; if (provider === "hermes_agent" || provider === "hermes-agent") return "hermes-agent"; if (provider === "openai" || provider === "anthropic" || provider === "xai") return provider; return null; } export function serializeProviderFields>(value: T): T { const next: Record = { ...value }; if ("initiatedProvider" in next) { next.initiatedProvider = fromPrismaProvider(next.initiatedProvider); } if ("lastUsedProvider" in next) { next.lastUsedProvider = fromPrismaProvider(next.lastUsedProvider); } if ("provider" in next) { next.provider = fromPrismaProvider(next.provider); } if (Array.isArray(next.calls)) { next.calls = next.calls.map((call: Record) => serializeProviderFields(call)); } return next as T; }