Reads env vars, builds the config map, writes config.yaml for the Python server.
@type t() :: %Gralkor.Config{ capture_idle_seconds: number() | nil, data_dir: String.t(), embedder_model: String.t() | nil, embedder_provider: String.t(), llm_model: String.t() | nil, llm_provider: String.t(), server_dir: String.t(), server_url: String.t(), test: boolean() | nil }
@spec build_yaml(t()) :: String.t()
@spec default_server_dir() :: String.t()
@spec from_env() :: t()
@spec write_yaml(t()) :: :ok