import { observable } from "../_vendor/@legendapp/state/index.js";
import { getAvailableModels } from "../utils/backend-api.js";
const modelStore$ = observable({
  // 模型提供商列表
  providers: [],
  // 可用的 AI 模型列表
  models: [],
  // 当前选中的模型
  selectedModel: null,
  // 加载状态
  isLoading: false,
  // 错误信息
  error: null
});
const modelActions = {
  // 从后端获取可用模型列表
  async fetchAvailableModels() {
    modelStore$.isLoading.set(true);
    modelStore$.error.set(null);
    try {
      const models = await getAvailableModels();
      modelStore$.models.set(models);
      if (!modelStore$.selectedModel.get() && models.length > 0) {
        const defaultModel = models.find((model) => model.isAvailable) || models[0];
        modelStore$.selectedModel.set(defaultModel);
      }
    } catch (error) {
      const errorMessage = error instanceof Error ? error.message : "Failed to fetch models";
      modelStore$.error.set(errorMessage);
      console.error("Failed to fetch available models:", error);
    } finally {
      modelStore$.isLoading.set(false);
    }
  },
  // 选择模型
  selectModel(model) {
    if (model.isAvailable) {
      modelStore$.selectedModel.set(model);
    } else {
      console.warn("Cannot select unavailable model:", model.name);
    }
  },
  // 根据 ID 选择模型
  selectModelById(modelId) {
    const model = modelStore$.models.get().find((m) => m.id === modelId);
    if (model) {
      this.selectModel(model);
    } else {
      console.warn("Model not found:", modelId);
    }
  },
  // 清除错误状态
  clearError() {
    modelStore$.error.set(null);
  },
  // 重置模型状态
  reset() {
    modelStore$.set({
      providers: [],
      models: [],
      selectedModel: null,
      isLoading: false,
      error: null
    });
  }
};
const modelComputed$ = {
  // 获取可用的模型列表（仅返回 isAvailable 为 true 的模型）
  availableModels: () => {
    return modelStore$.models.get().filter((model) => model.isAvailable);
  },
  // 获取当前模型名称
  currentModelName: () => {
    return modelStore$.selectedModel.get()?.name || "GPT-4.1";
  },
  // 获取当前模型 ID
  currentModelId: () => {
    return modelStore$.selectedModel.get()?.id || "openai/gpt-4.1";
  },
  // 检查是否有可用模型
  hasAvailableModels: () => {
    return modelStore$.models.get().some((model) => model.isAvailable);
  },
  // 获取模型加载状态
  isModelLoading: () => {
    return modelStore$.isLoading.get();
  },
  // 获取错误状态
  modelError: () => {
    return modelStore$.error.get();
  }
};
export {
  modelActions,
  modelComputed$,
  modelStore$
};
//# sourceMappingURL=model-store.js.map
