| import { Config } from "effect" |
|
|
| export function truthy(key: string) { |
| const value = process.env[key]?.toLowerCase() |
| return value === "true" || value === "1" |
| } |
|
|
| const copy = process.env["OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"] |
| const fff = process.env["OPENCODE_DISABLE_FFF"] |
|
|
| function enabledByExperimental(key: string) { |
| return process.env[key] === undefined ? truthy("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"], |
| OPENCODE_DISABLE_FFF: fff === undefined ? process.platform === "win32" : truthy("OPENCODE_DISABLE_FFF"), |
|
|
| |
| 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"), |
|
|
| |
| |
| get OPENCODE_DISABLE_PROJECT_CONFIG() { |
| return truthy("OPENCODE_DISABLE_PROJECT_CONFIG") |
| }, |
| get OPENCODE_EXPERIMENTAL_REFERENCES() { |
| return enabledByExperimental("OPENCODE_EXPERIMENTAL_REFERENCES") |
| }, |
| 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" |
| }, |
| } |
|
|