import { Config } from "effect"
function truthy(key: string) {
const value = process.env[key]?.toLowerCase()
return value === "true" || value === "1"
}
const DEVECO_EXPERIMENTAL = truthy("DEVECO_EXPERIMENTAL")
const copy = process.env["DEVECO_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"]
export const Flag = {
OTEL_EXPORTER_OTLP_ENDPOINT: process.env["OTEL_EXPORTER_OTLP_ENDPOINT"],
OTEL_EXPORTER_OTLP_HEADERS: process.env["OTEL_EXPORTER_OTLP_HEADERS"],
DEVECO_AUTO_HEAP_SNAPSHOT: truthy("DEVECO_AUTO_HEAP_SNAPSHOT"),
DEVECO_GIT_BASH_PATH: process.env["DEVECO_GIT_BASH_PATH"],
DEVECO_CONFIG: process.env["DEVECO_CONFIG"],
DEVECO_CONFIG_CONTENT: process.env["DEVECO_CONFIG_CONTENT"],
DEVECO_DISABLE_AUTOUPDATE: truthy("DEVECO_DISABLE_AUTOUPDATE"),
DEVECO_ALWAYS_NOTIFY_UPDATE: truthy("DEVECO_ALWAYS_NOTIFY_UPDATE"),
DEVECO_DISABLE_PRUNE: truthy("DEVECO_DISABLE_PRUNE"),
DEVECO_DISABLE_TERMINAL_TITLE: truthy("DEVECO_DISABLE_TERMINAL_TITLE"),
DEVECO_SHOW_TTFD: truthy("DEVECO_SHOW_TTFD"),
DEVECO_PERMISSION: process.env["DEVECO_PERMISSION"],
DEVECO_DISABLE_DEFAULT_PLUGINS: truthy("DEVECO_DISABLE_DEFAULT_PLUGINS"),
DEVECO_DISABLE_AUTOCOMPACT: truthy("DEVECO_DISABLE_AUTOCOMPACT"),
DEVECO_DISABLE_MODELS_FETCH: truthy("DEVECO_DISABLE_MODELS_FETCH"),
DEVECO_DISABLE_MOUSE: truthy("DEVECO_DISABLE_MOUSE"),
DEVECO_FAKE_VCS: process.env["DEVECO_FAKE_VCS"],
DEVECO_SERVER_PASSWORD: process.env["DEVECO_SERVER_PASSWORD"],
DEVECO_SERVER_USERNAME: process.env["DEVECO_SERVER_USERNAME"],
DEVECO_ENABLE_QUESTION_TOOL: truthy("DEVECO_ENABLE_QUESTION_TOOL"),
DEVECO_EXPERIMENTAL,
DEVECO_EXPERIMENTAL_FILEWATCHER: Config.boolean("DEVECO_EXPERIMENTAL_FILEWATCHER").pipe(
Config.withDefault(false),
),
DEVECO_EXPERIMENTAL_DISABLE_FILEWATCHER: Config.boolean("DEVECO_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(
Config.withDefault(false),
),
DEVECO_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:
copy === undefined ? process.platform === "win32" : truthy("DEVECO_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),
DEVECO_MODELS_URL: process.env["DEVECO_MODELS_URL"],
DEVECO_MODELS_PATH: process.env["DEVECO_MODELS_PATH"],
DEVECO_DB: process.env["DEVECO_DB"],
DEVECO_WORKSPACE_ID: process.env["DEVECO_WORKSPACE_ID"],
DEVECO_EXPERIMENTAL_WORKSPACES: DEVECO_EXPERIMENTAL || truthy("DEVECO_EXPERIMENTAL_WORKSPACES"),
get DEVECO_DISABLE_PROJECT_CONFIG() {
return truthy("DEVECO_DISABLE_PROJECT_CONFIG")
},
get DEVECO_TUI_CONFIG() {
return process.env["DEVECO_TUI_CONFIG"]
},
get DEVECO_CONFIG_DIR() {
return process.env["DEVECO_CONFIG_DIR"]
},
get DEVECO_PURE() {
return truthy("DEVECO_PURE")
},
get DEVECO_PLUGIN_META_FILE() {
return process.env["DEVECO_PLUGIN_META_FILE"]
},
get DEVECO_CLIENT() {
return process.env["DEVECO_CLIENT"] ?? "cli"
},
}