/** * Shared environment helpers. */ import { readRuntimeConfigIsland } from "@/lib/runtime-config.shared"; import { readBoolEnv } from "@/lib/runtime-env"; /** * Whether the UI is running inside a Prowler Cloud deployment. * * Runtime read, resolved from two sources: * - Browser: the runtime public-config island (`cloudEnabled`), rendered in * before any bundle runs, so calling this at module scope is safe. * - Without a DOM (RSC, server actions, SSR, edge, Node) and jsdom tests * without an island: `UI_CLOUD_ENABLED`. The island is produced from the * same env var (lib/runtime-config.ts), so SSR and hydration always agree. */ export function isCloud(): boolean { const islandConfig = readRuntimeConfigIsland(); if (islandConfig) return islandConfig.cloudEnabled; return readBoolEnv("UI_CLOUD_ENABLED"); }