| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { Config } from "effect"
- function truthy(key: string) {
- const value = process.env[key]?.toLowerCase()
- return value === "true" || value === "1"
- }
- const OPENCODE_EXPERIMENTAL = truthy("OPENCODE_EXPERIMENTAL")
- const copy = process.env["OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"]
- function enabledByExperimental(key: string) {
- return process.env[key] === undefined ? OPENCODE_EXPERIMENTAL : truthy(key)
- }
- export const Flag = {
- OTEL_EXPORTER_OTLP_ENDPOINT: process.env["OTEL_EXPORTER_OTLP_ENDPOINT"],
- OTEL_EXPORTER_OTLP_HEADERS: process.env["OTEL_EXPORTER_OTLP_HEADERS"],
- OPENCODE_AUTO_HEAP_SNAPSHOT: truthy("OPENCODE_AUTO_HEAP_SNAPSHOT"),
- OPENCODE_GIT_BASH_PATH: process.env["OPENCODE_GIT_BASH_PATH"],
- OPENCODE_CONFIG: process.env["OPENCODE_CONFIG"],
- OPENCODE_CONFIG_CONTENT: process.env["OPENCODE_CONFIG_CONTENT"],
- OPENCODE_DISABLE_AUTOUPDATE: truthy("OPENCODE_DISABLE_AUTOUPDATE"),
- OPENCODE_ALWAYS_NOTIFY_UPDATE: truthy("OPENCODE_ALWAYS_NOTIFY_UPDATE"),
- OPENCODE_DISABLE_PRUNE: truthy("OPENCODE_DISABLE_PRUNE"),
- OPENCODE_DISABLE_TERMINAL_TITLE: truthy("OPENCODE_DISABLE_TERMINAL_TITLE"),
- OPENCODE_SHOW_TTFD: truthy("OPENCODE_SHOW_TTFD"),
- OPENCODE_DISABLE_AUTOCOMPACT: truthy("OPENCODE_DISABLE_AUTOCOMPACT"),
- OPENCODE_DISABLE_MODELS_FETCH: truthy("OPENCODE_DISABLE_MODELS_FETCH"),
- OPENCODE_DISABLE_MOUSE: truthy("OPENCODE_DISABLE_MOUSE"),
- OPENCODE_FAKE_VCS: process.env["OPENCODE_FAKE_VCS"],
- OPENCODE_SERVER_PASSWORD: process.env["OPENCODE_SERVER_PASSWORD"],
- OPENCODE_SERVER_USERNAME: process.env["OPENCODE_SERVER_USERNAME"],
- // Experimental
- OPENCODE_EXPERIMENTAL_FILEWATCHER: Config.boolean("OPENCODE_EXPERIMENTAL_FILEWATCHER").pipe(
- Config.withDefault(false),
- ),
- OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: Config.boolean("OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(
- Config.withDefault(false),
- ),
- OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:
- copy === undefined ? process.platform === "win32" : truthy("OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),
- OPENCODE_MODELS_URL: process.env["OPENCODE_MODELS_URL"],
- OPENCODE_MODELS_PATH: process.env["OPENCODE_MODELS_PATH"],
- OPENCODE_DB: process.env["OPENCODE_DB"],
- OPENCODE_WORKSPACE_ID: process.env["OPENCODE_WORKSPACE_ID"],
- OPENCODE_EXPERIMENTAL_WORKSPACES: enabledByExperimental("OPENCODE_EXPERIMENTAL_WORKSPACES"),
- OPENCODE_EXPERIMENTAL_SESSION_SWITCHER: enabledByExperimental("OPENCODE_EXPERIMENTAL_SESSION_SWITCHER"),
- // Evaluated at access time (not module load) because tests, the CLI, and
- // external tooling set these env vars at runtime.
- get OPENCODE_DISABLE_PROJECT_CONFIG() {
- return truthy("OPENCODE_DISABLE_PROJECT_CONFIG")
- },
- get OPENCODE_TUI_CONFIG() {
- return process.env["OPENCODE_TUI_CONFIG"]
- },
- get OPENCODE_CONFIG_DIR() {
- return process.env["OPENCODE_CONFIG_DIR"]
- },
- get OPENCODE_PURE() {
- return truthy("OPENCODE_PURE")
- },
- get OPENCODE_PERMISSION() {
- return process.env["OPENCODE_PERMISSION"]
- },
- get OPENCODE_PLUGIN_META_FILE() {
- return process.env["OPENCODE_PLUGIN_META_FILE"]
- },
- get OPENCODE_CLIENT() {
- return process.env["OPENCODE_CLIENT"] ?? "cli"
- },
- }
|