# ❄️ My NixOS Configuration

This directory contains the declarative configuration for my user environment, managed by **Home Manager**.

## 🛠️ How it Works (The Nix Way)

In NixOS, configuration files are managed "declaratively" rather than manually.

1.  **The Source of Truth**: Everything is defined in your `.nix` files.
2.  **The Nix Store**: When you "switch," Nix builds your files and stores them in `/nix/store/`. These are **immutable** (read-only).
3.  **Symlinking**: Home Manager creates symbolic links in your home directory (like `~/.pi/agents/settings.json`) that point back to that read-only store.

## ✍️ How to Make Changes

**Do not edit the files in your home directory.** They are read-only symlinks. To change settings:

1.  **Edit your source code**: Open `home.nix` in `nvim`.
2.  **Modify the Nix block**: Locate the `home.file` section for your agents.
3.  **Apply changes**: 
    ```bash
    home-manager switch
    ```

## ❓ Why "sudo" doesn't work
The `/nix/store` is mounted as read-only at the system level. This ensures your system always matches your config and allows for instant **rollbacks** if something breaks.

### Example: Adding a local file and remote extensions

## Pi Agent Configuration

To use the **System Architect** skills and **Steel Browser** extension with this project, ensure your `.pi/settings.json` is configured as follows:

```json
{
  "packages": [
    {
      "source": "/home/sam/.agents",
      "extensions": [
        "extensions/steel-browser/index.ts"
      ],
      "skills": [
        "skills/system-architect"
      ]
    }
  ]
}
```

### Usage
When you launch `pi` in this directory, it will automatically pull these assets from the **Audas Media** Gitea instance and activate the specialized toolset.
