mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-20 20:39:10 +00:00
## Summary - Add `VITE_PUBLIC_KIMI_LAUNCH` feature flag controlling Kimi partnership branding - BrowserOS provider card shows "Powered by Kimi K2.5 from Moonshot AI" badge and "Extended usage limits for the next 2 weeks!" when flag is on - Moonshot/Kimi highlighted as "Recommended" in provider templates - LLM Hub defaults to Kimi, ChatGPT, Claude, Gemini (with legacy defaults migration) - Kimi hub row shows "Powered by Moonshot AI" flare - Model selector locked to kimi-k2.5 - "How to get a Kimi API key" link in provider dialog - Moonshot provider fully integrated across frontend and backend
34 lines
900 B
TypeScript
34 lines
900 B
TypeScript
import { ZodError, z } from 'zod'
|
|
|
|
const EnvSchema = z.object({
|
|
VITE_BROWSEROS_SERVER_PORT: z.coerce.number().optional(),
|
|
VITE_PUBLIC_POSTHOG_KEY: z.string().optional(),
|
|
VITE_PUBLIC_POSTHOG_HOST: z.string().optional(),
|
|
VITE_PUBLIC_SENTRY_DSN: z.string().optional(),
|
|
VITE_PUBLIC_BROWSEROS_API: z.string().optional(),
|
|
VITE_PUBLIC_KIMI_LAUNCH: z.string().optional(),
|
|
PROD: z.boolean(),
|
|
})
|
|
|
|
try {
|
|
EnvSchema.parse(import.meta.env)
|
|
} catch (error) {
|
|
if (error instanceof ZodError) {
|
|
let message = 'Missing required values in .env:\n'
|
|
for (const issue of error.issues) {
|
|
message += `${issue.path.join('.')}\n`
|
|
}
|
|
const e = new Error(message)
|
|
e.stack = ''
|
|
throw e
|
|
}
|
|
// biome-ignore lint/suspicious/noConsole: allowed to display error information
|
|
console.error(error)
|
|
throw error
|
|
}
|
|
|
|
/**
|
|
* @public
|
|
*/
|
|
export const env = EnvSchema.parse(import.meta.env)
|