# Essential CLI packages — core utilities always available on every host.
# NOTE: `lazylib` does not exist in nixpkgs. `lazygit` is the correct package
# (Git TUI) and is intentionally used here instead.
{
  config,
  lib,
  pkgs,
  ...
}:
with lib; let
  cfg = config.base.cliTools.essentials;
in {
  # Enabled by default — base modules are always-on.
  options.base.cliTools.essentials.enable = (mkEnableOption "enable essential CLI packages") // {default = true;};

  config = mkIf cfg.enable {
    home.packages = with pkgs; [
      # Core utilities
      coreutils
      fd
      htop
      jq
      ripgrep

      # Nix
      alejandra
      comma
      nixd
      nix-diff
      nix-index
      nix-update

      # Dev tools
      bc
      cmake
      devenv
      gcc
      gnumake
      go
      httpie
      just
      lazygit
      progress
      sqlite
      sqlite-vec
      tldr

      # AI tools
      fabric-ai
      llm

      # Misc
      basecamp
      hyprpaper-random
      libnotify
      trash-cli
      unzip
      yazi
      zip
    ];
  };
}
