SPB Git

Repository Public

index.ts 859 B 15 lines typescript

1import { env } from "../lib/env";2import { createXaiImage, createXaiLLM, createXaiSpeech, createXaiVideo } from "./xai";3import type { ImageProvider, LLMProvider, SpeechProvider, VideoProvider } from "./types";45/** Provider registry: the only place that knows which vendor backs each interface. */6export interface Providers { llm: LLMProvider; image: ImageProvider; video: VideoProvider; speech: SpeechProvider; name: string }7let cached: Providers | null = null;8export function providers(): Providers {9  if (cached) return cached;10  const cfg = { apiKey: env.xaiKey, llmModel: env.llmModel, imageModel: env.imageModel };11  return (cached = { name: "xai", llm: createXaiLLM(cfg), image: createXaiImage(cfg), video: createXaiVideo(cfg), speech: createXaiSpeech(cfg) });12}13/** Test seam. */14export function setProviders(p: Providers | null) { cached = p; }15
Files main
Menu

Theme