# `LlmCore.Paths`
[🔗](https://github.com/fosferon/llm_core/blob/v0.3.0/lib/llm_core/paths.ex#L1)

Cross-project path helpers for llm_core.

The module centralizes how we resolve global and project-specific
directories so consuming applications can
override locations through environment variables without patching the
library.

# `ensure_dir!`

```elixir
@spec ensure_dir!(String.t()) :: :ok
```

Ensures the given directory exists.

# `global_config_dir`

```elixir
@spec global_config_dir() :: String.t()
```

Returns the directory that stores global configuration files.

# `global_home`

```elixir
@spec global_home() :: String.t()
```

Returns the root directory for shared llm_core state.

Precedence:
  * `LLM_CORE_HOME`
  * `DEVMAN_HOME` (legacy compatibility)
  * `~/.llm_core`

# `global_memory_dir`

```elixir
@spec global_memory_dir() :: String.t()
```

Returns the directory for global memory assets (cache, buffers, etc.).

# `project_config_dir`

```elixir
@spec project_config_dir() :: String.t()
```

Returns the project configuration directory.

Precedence:
  * `LLM_CORE_PROJECT_CONFIG`
  * `DEVMAN_CONFIG` (legacy compatibility)
  * `<project_root>/.llm_core`

# `project_root`

```elixir
@spec project_root() :: String.t()
```

Returns the root of the current project workspace.

Precedence:
  * `LLM_CORE_PROJECT_ROOT`
  * `File.cwd!/0`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
