40 lines
1.6 KiB
GDScript
40 lines
1.6 KiB
GDScript
@tool
|
|
class_name McpSettings
|
|
extends RefCounted
|
|
|
|
## Shared EditorSettings key constants for the godot_ai/* namespace.
|
|
##
|
|
## Centralised here so lightweight files (e.g. telemetry.gd) can reference
|
|
## settings keys without pulling in the full client_configurator.gd dep tree.
|
|
## All keys must keep their raw string values stable across releases because
|
|
## they are persisted in the user's editor_settings-4.tres.
|
|
|
|
const SETTING_HTTP_PORT := "godot_ai/http_port"
|
|
## Comma-separated list of tool domains excluded from the server at spawn time.
|
|
const SETTING_EXCLUDED_DOMAINS := "godot_ai/excluded_domains"
|
|
const SETTING_TELEMETRY_ENABLED := "godot_ai/telemetry_enabled"
|
|
|
|
|
|
## Returns true if the string value is truthy
|
|
## ("1", "true", "yes", "on", case-insensitive, whitespace-trimmed).
|
|
static func truthy(value: String) -> bool:
|
|
return value.strip_edges().to_lower() in ["1", "true", "yes", "on"]
|
|
|
|
|
|
## Returns true if the named environment variable is set to a truthy value.
|
|
static func env_truthy(var_name: String) -> bool:
|
|
return truthy(OS.get_environment(var_name))
|
|
|
|
|
|
## Returns true if telemetry should be active, checking in priority order:
|
|
## 1. GODOT_AI_DISABLE_TELEMETRY / DISABLE_TELEMETRY env vars
|
|
## 2. The godot_ai/telemetry_enabled EditorSetting written by the dock UI
|
|
## Defaults to true when neither source has set a preference.
|
|
static func telemetry_enabled() -> bool:
|
|
if env_truthy("GODOT_AI_DISABLE_TELEMETRY") or env_truthy("DISABLE_TELEMETRY"):
|
|
return false
|
|
var es := EditorInterface.get_editor_settings()
|
|
if es != null and es.has_setting(SETTING_TELEMETRY_ENABLED):
|
|
return bool(es.get_setting(SETTING_TELEMETRY_ENABLED))
|
|
return true
|