{ pkgs, ... }: let
  addonId = "{b33fc9ba-eac3-4adb-a3c7-d0f50634182e}";
in {
  programs.firefox.profiles.xieby1.extensions.packages = [(
    pkgs.nur.repos.rycee.firefox-addons.buildFirefoxXpiAddon {
      pname = "webpage_summary";
      version = "0.6.2";
      inherit addonId;
      url = "https://addons.mozilla.org/firefox/downloads/file/4681585/webpage_summary-0.6.2.xpi";
      sha256 = "sha256-6FP2RMDJUYWHNJRg/6jDckCo94dgyLmnZH7A2aZX3l4=";
      meta = {
        mozPermissions = ["storage" "contextMenus" "scripting" "activeTab" "cookies" "webRequest" "webRequestBlocking" "*://*.kimi.com/*" "<all_urls>"];
        platforms = pkgs.lib.platforms.all;
      };
    }
  )];
  firefox-extensions.xieby1.browser-extension-data."${addonId}" = {
    storage = {
      is-first-install = true;
      default-prompt-id = "8zuiQHnivwU2scwZ";
      prompt-configs = [{
        id = "8zuiQHnivwU2scwZ";
        name = "Sample";
        systemMessage = ''
          You are a one-webpage content summarize expert to help users quickly and intuitively understand the content of the webpage.
          Please NOTICE:
          1. Be concise and clear, DO NOT just retell.
          2. The entire conversation and instructions should be aligned with webpage content.
          3. Your output format should be raw markdown(not a markdown code block).
          4. Do not exceed 1000 words.
          5. User may asks questions after a message of input content, then YOU should chat but not summary.
        '';
        userMessage = ''
          here is the url:
          <Webpage URL>{{articleUrl}}</Webpage URL> 
          here is the content of webpage:
          <Webpage Content>{{textContent}}</Webpage Content>
        '';
        at = 0;
      }];
      default-model-id = "p4s0PTKm1x4xga8X";
      model-configs = [{
          id = "LwC1DkGB6Fs01U99";
          name = "siliconflow-deepseek";
          modelName = "Pro/deepseek-ai/DeepSeek-V3.2";
          apiKey = pkgs.lib.trim (builtins.readFile "/home/xieby1/Gist/Vault/siliconflow_api_key_chatbox.txt");
          providerType = "deepseek";
          baseURL = "https://api.siliconflow.cn/v1";
          at = 0;
      } {
          id = "p4s0PTKm1x4xga8X";
          name = "deepseek-offical";
          modelName = "deepseek-chat";
          apiKey = pkgs.lib.trim (builtins.readFile "/home/xieby1/Gist/Vault/deepseek_api_key_nvim.txt");
          providerType = "deepseek";
          baseURL = "";
          at = 0;
      }];
      config-model-list-is-edit-mode = true;
      right-floating-ball-top-page = "75%";
      enable-floating-ball = false;
      user-custom-style = /*css*/ ''
        --webpage-summary-panel-width: 50vw;
        --webpage-summary-panel-dialog-max-height: 60vh;
        --webpage-summary-panel-top: 10vh;
        --webpage-summary-panel-right: 0.5em;
        --webpage-summary-markdown-font-size: 10pt;
        --webpage-summary-markdown-line-height: 1em;
      '';
    };
  };

  firefox-extensions.xieby1 = {
    extension-settings = {
      commands = {
        COMMAND_ADD_SELECTION.precedenceList = [{
          id = addonId;
          installDate = 0;
          value.shortcut = "";
          enabled = true;
        }];
        COMMAND_INVOKE_SUMMARY.precedenceList = [{
          id = addonId;
          installDate = 0;
          value.shortcut = "Alt+A";
          enabled = true;
        }];
      };
    };
  };
}