{ pkgs, lib, ... }: let
  catwalk-providers = import ./catwalk-providers pkgs;
in {
  # TODO: Precisely define the type
  options.ai = lib.mkOption { type = lib.types.attrs; };
  config.ai = {
    deepseek = catwalk-providers.deepseek // {
      api_key = lib.trim (builtins.readFile ~/Gist/Vault/deepseek_api_key_nvim.txt);
    };
    tavily.api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/tavily.txt);
    jw2-openai = catwalk-providers.openai // {
      id = "jw2-openai";
      name = "JW2 OpenAI";
      api_endpoint = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-url.txt);
      api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-openai.txt);
      models = builtins.mapAttrs (
        _: model: model // {
          context_window = 353 * 1000;
        }
      ) catwalk-providers.openai.models;
    };
    jw2-deepseek = catwalk-providers.deepseek // {
      id = "jw2-deepseek";
      name = "JW2 DeepSeek";
      api_endpoint = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-url.txt) + "/v1";
      api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-deepseek.txt);
      models.deepseek-flash = catwalk-providers.deepseek.models.deepseek-v4-flash // {
        id = "deepseek-flash";
        name = "DeepSeek-Flash";
      };
    };
  };
}