6cf82970a1
Thin wrappers over the FC-2b API: ml (settings GET/PATCH, backfill + recompute triggers), allowlist (list, threshold patch, remove with optimistic local update), aliases (list, remove with optimistic update). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
31 lines
886 B
JavaScript
31 lines
886 B
JavaScript
import { defineStore } from 'pinia'
|
|
import { ref } from 'vue'
|
|
import { useApi } from '../composables/useApi.js'
|
|
|
|
export const useAllowlistStore = defineStore('allowlist', () => {
|
|
const api = useApi()
|
|
const rows = ref([])
|
|
const loading = ref(false)
|
|
|
|
async function load() {
|
|
loading.value = true
|
|
try { rows.value = await api.get('/api/allowlist') }
|
|
finally { loading.value = false }
|
|
}
|
|
|
|
async function updateThreshold(tagId, minConfidence) {
|
|
await api.patch(`/api/tags/${tagId}/allowlist`, {
|
|
body: { min_confidence: minConfidence }
|
|
})
|
|
const r = rows.value.find(x => x.tag_id === tagId)
|
|
if (r) r.min_confidence = minConfidence
|
|
}
|
|
|
|
async function remove(tagId) {
|
|
await api.delete(`/api/tags/${tagId}/allowlist`)
|
|
rows.value = rows.value.filter(x => x.tag_id !== tagId)
|
|
}
|
|
|
|
return { rows, loading, load, updateThreshold, remove }
|
|
})
|