"use strict";
var common_vendor = require("../../common/vendor.js");
var api_modules_config = require("./config.js");
require("../../stores/index.js");
var stores_modules_AIResponse = require("../../stores/modules/AIResponse.js");
var stores_modules_tabIndex = require("../../stores/modules/tabIndex.js");
const {
  responseText,
  showResponseText,
  isLoading,
  isDone
} = common_vendor.storeToRefs(stores_modules_AIResponse.useAIReponseStore());
const {
  tabIndex
} = common_vendor.storeToRefs(stores_modules_tabIndex.useTabStore());
const API_KEY = "sk-b65f99c1b2ab416aaf340891cf4ca308";
const AI_URL = "https://api.deepseek.com/chat/completions";
const AI_MODEL = "deepseek-chat";
const errMessage = {
  401: "API key \u65E0\u6548",
  403: "API key \u4F59\u989D\u4E0D\u8DB3"
};
const AIChat = async (q, symbol_1, symbol_2, symbol_3) => {
  const pageCfg = await api_modules_config.getPageConfig();
  let callWord = pageCfg.call_word;
  callWord = callWord.replace("[q]", q).replace("[symbol_1]", symbol_1).replace("[symbol_2]", symbol_2).replace("[symbol_3]", symbol_3);
  console.log(callWord);
  return await new Promise((resolve, reject) => {
    const requestTask = common_vendor.index.request({
      url: AI_URL,
      method: "POST",
      header: {
        "content-type": "application/json",
        "Authorization": `Bearer ${API_KEY}`
      },
      data: {
        model: AI_MODEL,
        messages: [
          { role: "system", content: "You are a helpful assistant." },
          { role: "user", content: callWord }
        ],
        stream: true
      },
      enableChunked: true,
      responseType: "arraybuffer",
      success: (res) => {
        if (res.statusCode !== 200) {
          resolve({
            code: res.statusCode,
            message: errMessage[res.statusCode]
          });
        }
        isDone.value = true;
      },
      fail: (error) => {
      },
      complete: (complete) => {
      }
    });
    requestTask.onChunkReceived((res) => {
      var _a;
      const uint8Array = new Uint8Array(res.data);
      const decoder = new common_vendor.textEncodingShim.exports.TextDecoder("utf-8");
      const chunk = decoder.decode(uint8Array).toString().split("data: ");
      for (let i = 1; i < chunk.length; i++) {
        try {
          const result = JSON.parse(chunk[i]);
          if (result.choices[0].delta.content) {
            isLoading.value = false;
            responseText.value += (_a = result.choices[0].delta) == null ? void 0 : _a.content;
          }
        } catch (e) {
        }
      }
    });
    common_vendor.watch(
      () => tabIndex.value,
      (newVal, oldVal) => {
        if (newVal !== oldVal) {
          requestTask.abort();
          isLoading.value = false;
          responseText.value = "";
          showResponseText.value = false;
          isDone.value = false;
          return;
        }
      },
      {
        deep: true
      }
    );
  });
};
exports.AIChat = AIChat;
