big backend refactor

This commit is contained in:
2026-06-13 12:02:22 -07:00
parent 7436544a69
commit 297b053a91
15 changed files with 1768 additions and 1068 deletions

View File

@@ -2,15 +2,28 @@ import type { Provider } from "./types.js";
type PrismaProvider = Exclude<Provider, "hermes-agent"> | "hermes_agent";
const apiToPrismaProvider = {
openai: "openai",
anthropic: "anthropic",
xai: "xai",
"hermes-agent": "hermes_agent",
} as const satisfies Record<Provider, PrismaProvider>;
const prismaToApiProvider = {
openai: "openai",
anthropic: "anthropic",
xai: "xai",
hermes_agent: "hermes-agent",
"hermes-agent": "hermes-agent",
} as const satisfies Record<PrismaProvider | "hermes-agent", Provider>;
export function toPrismaProvider(provider: Provider): PrismaProvider {
return provider === "hermes-agent" ? "hermes_agent" : provider;
return apiToPrismaProvider[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;
return prismaToApiProvider[provider as keyof typeof prismaToApiProvider] ?? null;
}
export function serializeProviderFields<T extends Record<string, any>>(value: T): T {