import { defineStore } from 'pinia'
import { ref } from 'vue'
import * as api from '@/api/index.js'
export const useMcpKeysStore = defineStore('mcpKeys', () => {
const servers = ref([])
const loading = ref(false)
const savingServer = ref(null)
async function fetchServers() {
loading.value = true
try {
const data = await api.getMcpKeys()
servers.value = data.items || []
} finally {
loading.value = false
}
}
async function saveKey(serverName, key) {
savingServer.value = serverName
try {
const data = await api.saveMcpKey(serverName, key)
const item = servers.value.find(s => s.server_name === serverName)
if (item) {
item.has_key = true
item.updated_at = data.updated_at
}
} finally {
savingServer.value = null
}
}
async function resetKey(serverName) {
savingServer.value = serverName
try {
await api.resetMcpKey(serverName)
const item = servers.value.find(s => s.server_name === serverName)
if (item) {
item.has_key = false
item.updated_at = null
}
} finally {
savingServer.value = null
}
}
return {
servers,
loading,
savingServer,
fetchServers,
saveKey,
resetKey,
}
})