import { businessConfig } from "@/lib/seo-config" export const SITE_CHAT_MODEL = process.env.XAI_CHAT_MODEL || "grok-4-1-fast-non-reasoning" export const SITE_CHAT_SOURCE = "site-chat" export const SITE_CHAT_SESSION_COOKIE = "rmv_site_chat_session" export const SITE_CHAT_AVATAR_SRC = "/images/jessica-avatar.jpg" export const SITE_CHAT_SUPPRESSED_ROUTE_PREFIXES = [ "/admin", "/auth", "/sign-in", "/stripe-setup", "/style-guide", "/manuals/dashboard", "/test-page", ] as const export const SITE_CHAT_MAX_HISTORY_MESSAGES = 12 export const SITE_CHAT_MAX_INPUT_CHARS = 600 export const SITE_CHAT_MAX_MESSAGE_CHARS = 1000 export const SITE_CHAT_MAX_OUTPUT_TOKENS = 180 export const SITE_CHAT_MAX_OUTPUT_CHARS = 700 export const SITE_CHAT_TEMPERATURE = 0.2 export const SITE_CHAT_MAX_REQUESTS_PER_IP_WINDOW = 12 export const SITE_CHAT_MAX_REQUESTS_PER_SESSION_WINDOW = 18 export const SITE_CHAT_REQUEST_WINDOW_MS = 10 * 60 * 1000 export const SITE_CHAT_MAX_OUTPUT_CHARS_PER_SESSION_WINDOW = 5000 export const SITE_CHAT_OUTPUT_WINDOW_MS = 60 * 60 * 1000 export function isSiteChatSuppressedRoute(pathname: string) { return SITE_CHAT_SUPPRESSED_ROUTE_PREFIXES.some( (prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`) ) } export function getSiteChatBootstrap() { return { assistantName: "Jessica", avatarSrc: SITE_CHAT_AVATAR_SRC, callNumber: businessConfig.publicCallNumber, callUrl: businessConfig.publicCallUrl, smsNumber: businessConfig.publicSmsNumber, smsUrl: businessConfig.publicSmsUrl, } }