mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-01 15:32:11 +08:00
110 lines
4.9 KiB
TypeScript
110 lines
4.9 KiB
TypeScript
import { Config } from "effect"
|
|
|
|
function truthy(key: string) {
|
|
const value = process.env[key]?.toLowerCase()
|
|
return value === "true" || value === "1"
|
|
}
|
|
|
|
function falsy(key: string) {
|
|
const value = process.env[key]?.toLowerCase()
|
|
return value === "false" || value === "0"
|
|
}
|
|
|
|
function number(key: string) {
|
|
const value = process.env[key]
|
|
if (!value) return undefined
|
|
const parsed = Number(value)
|
|
return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined
|
|
}
|
|
|
|
const KILO_EXPERIMENTAL = truthy("KILO_EXPERIMENTAL")
|
|
const KILO_DISABLE_CLAUDE_CODE = truthy("KILO_DISABLE_CLAUDE_CODE")
|
|
const KILO_DISABLE_CLAUDE_CODE_SKILLS = KILO_DISABLE_CLAUDE_CODE || truthy("KILO_DISABLE_CLAUDE_CODE_SKILLS")
|
|
const copy = process.env["KILO_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"],
|
|
|
|
KILO_AUTO_SHARE: truthy("KILO_AUTO_SHARE"),
|
|
KILO_AUTO_HEAP_SNAPSHOT: truthy("KILO_AUTO_HEAP_SNAPSHOT"),
|
|
KILO_GIT_BASH_PATH: process.env["KILO_GIT_BASH_PATH"],
|
|
KILO_CONFIG: process.env["KILO_CONFIG"],
|
|
KILO_CONFIG_CONTENT: process.env["KILO_CONFIG_CONTENT"],
|
|
KILO_DISABLE_AUTOUPDATE: truthy("KILO_DISABLE_AUTOUPDATE"),
|
|
KILO_ALWAYS_NOTIFY_UPDATE: truthy("KILO_ALWAYS_NOTIFY_UPDATE"),
|
|
KILO_DISABLE_PRUNE: truthy("KILO_DISABLE_PRUNE"),
|
|
KILO_DISABLE_TERMINAL_TITLE: truthy("KILO_DISABLE_TERMINAL_TITLE"),
|
|
KILO_SHOW_TTFD: truthy("KILO_SHOW_TTFD"),
|
|
KILO_PERMISSION: process.env["KILO_PERMISSION"],
|
|
KILO_DISABLE_DEFAULT_PLUGINS: truthy("KILO_DISABLE_DEFAULT_PLUGINS"),
|
|
KILO_DISABLE_LSP_DOWNLOAD: truthy("KILO_DISABLE_LSP_DOWNLOAD"),
|
|
KILO_ENABLE_EXPERIMENTAL_MODELS: truthy("KILO_ENABLE_EXPERIMENTAL_MODELS"),
|
|
KILO_DISABLE_AUTOCOMPACT: truthy("KILO_DISABLE_AUTOCOMPACT"),
|
|
KILO_DISABLE_MODELS_FETCH: truthy("KILO_DISABLE_MODELS_FETCH"),
|
|
KILO_DISABLE_MOUSE: truthy("KILO_DISABLE_MOUSE"),
|
|
KILO_DISABLE_CLAUDE_CODE,
|
|
KILO_DISABLE_CLAUDE_CODE_PROMPT: KILO_DISABLE_CLAUDE_CODE || truthy("KILO_DISABLE_CLAUDE_CODE_PROMPT"),
|
|
KILO_DISABLE_CLAUDE_CODE_SKILLS,
|
|
KILO_DISABLE_EXTERNAL_SKILLS: KILO_DISABLE_CLAUDE_CODE_SKILLS || truthy("KILO_DISABLE_EXTERNAL_SKILLS"),
|
|
KILO_FAKE_VCS: process.env["KILO_FAKE_VCS"],
|
|
KILO_SERVER_PASSWORD: process.env["KILO_SERVER_PASSWORD"],
|
|
KILO_SERVER_USERNAME: process.env["KILO_SERVER_USERNAME"],
|
|
KILO_ENABLE_QUESTION_TOOL: truthy("KILO_ENABLE_QUESTION_TOOL"),
|
|
|
|
// Experimental
|
|
KILO_EXPERIMENTAL,
|
|
KILO_EXPERIMENTAL_FILEWATCHER: Config.boolean("KILO_EXPERIMENTAL_FILEWATCHER").pipe(Config.withDefault(false)),
|
|
KILO_EXPERIMENTAL_DISABLE_FILEWATCHER: Config.boolean("KILO_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(
|
|
Config.withDefault(false),
|
|
),
|
|
KILO_EXPERIMENTAL_ICON_DISCOVERY: KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_ICON_DISCOVERY"),
|
|
KILO_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:
|
|
copy === undefined ? process.platform === "win32" : truthy("KILO_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),
|
|
KILO_ENABLE_EXA: truthy("KILO_ENABLE_EXA") || KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_EXA"),
|
|
KILO_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS: number("KILO_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS"),
|
|
KILO_EXPERIMENTAL_OUTPUT_TOKEN_MAX: number("KILO_EXPERIMENTAL_OUTPUT_TOKEN_MAX"),
|
|
KILO_EXPERIMENTAL_OXFMT: KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_OXFMT"),
|
|
KILO_EXPERIMENTAL_LSP_TY: truthy("KILO_EXPERIMENTAL_LSP_TY"),
|
|
KILO_EXPERIMENTAL_LSP_TOOL: KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_LSP_TOOL"),
|
|
KILO_EXPERIMENTAL_PLAN_MODE: KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_PLAN_MODE"),
|
|
KILO_EXPERIMENTAL_MARKDOWN: !falsy("KILO_EXPERIMENTAL_MARKDOWN"),
|
|
KILO_MODELS_URL: process.env["KILO_MODELS_URL"],
|
|
KILO_MODELS_PATH: process.env["KILO_MODELS_PATH"],
|
|
KILO_DISABLE_EMBEDDED_WEB_UI: truthy("KILO_DISABLE_EMBEDDED_WEB_UI"),
|
|
KILO_DB: process.env["KILO_DB"],
|
|
KILO_DISABLE_CHANNEL_DB: truthy("KILO_DISABLE_CHANNEL_DB"),
|
|
KILO_SKIP_MIGRATIONS: truthy("KILO_SKIP_MIGRATIONS"),
|
|
KILO_STRICT_CONFIG_DEPS: truthy("KILO_STRICT_CONFIG_DEPS"),
|
|
|
|
KILO_WORKSPACE_ID: process.env["KILO_WORKSPACE_ID"],
|
|
KILO_EXPERIMENTAL_HTTPAPI: truthy("KILO_EXPERIMENTAL_HTTPAPI"),
|
|
KILO_EXPERIMENTAL_WORKSPACES: KILO_EXPERIMENTAL || truthy("KILO_EXPERIMENTAL_WORKSPACES"),
|
|
|
|
// Evaluated at access time (not module load) because tests, the CLI, and
|
|
// external tooling set these env vars at runtime.
|
|
get KILO_DISABLE_PROJECT_CONFIG() {
|
|
return truthy("KILO_DISABLE_PROJECT_CONFIG")
|
|
},
|
|
get KILO_TUI_CONFIG() {
|
|
return process.env["KILO_TUI_CONFIG"]
|
|
},
|
|
get KILO_CONFIG_DIR() {
|
|
return process.env["KILO_CONFIG_DIR"]
|
|
},
|
|
get KILO_PURE() {
|
|
return truthy("KILO_PURE")
|
|
},
|
|
get KILO_PLUGIN_META_FILE() {
|
|
return process.env["KILO_PLUGIN_META_FILE"]
|
|
},
|
|
get KILO_CLIENT() {
|
|
return process.env["KILO_CLIENT"] ?? "cli"
|
|
},
|
|
// kilocode_change start
|
|
get KILO_SESSION_RETRY_LIMIT() {
|
|
return number("KILO_SESSION_RETRY_LIMIT")
|
|
},
|
|
// kilocode_change end
|
|
}
|