From e8d33906badbbcf07625d310a3e91e4146c3b8b4 Mon Sep 17 00:00:00 2001 From: gahusb Date: Sat, 23 May 2026 02:13:35 +0900 Subject: [PATCH] =?UTF-8?q?feat(evolver):=20api.js=EC=97=90=20evolver=20+?= =?UTF-8?q?=20lotto=20activity=20fetch=20helpers=20(6=EA=B0=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/api.js b/src/api.js index d669ee7..2a13ac3 100644 --- a/src/api.js +++ b/src/api.js @@ -681,3 +681,45 @@ export const refreshScreenerSnap = () => apiPost('/api/stock/screener export const listScreenerRuns = (limit = 30) => apiGet (`/api/stock/screener/runs?limit=${limit}`); export const getScreenerRun = (id) => apiGet (`/api/stock/screener/runs/${id}`); +// --- Lotto Weight Evolver --- + +export async function fetchEvolverStatus() { + const r = await fetch('/api/lotto/evolver/status'); + if (!r.ok) throw new Error(`evolver/status ${r.status}`); + return r.json(); +} + +export async function fetchEvolverHistory(weeks = 12) { + const r = await fetch(`/api/lotto/evolver/history?weeks=${weeks}`); + if (!r.ok) throw new Error(`evolver/history ${r.status}`); + return r.json(); +} + +export async function fetchLottoTasks({ days = 7, taskType = null } = {}) { + const params = new URLSearchParams({ days: String(days), limit: '100' }); + if (taskType) params.set('task_type', taskType); + const r = await fetch(`/api/agent-office/agents/lotto/tasks?${params}`); + if (!r.ok) throw new Error(`agent-office tasks ${r.status}`); + return r.json(); +} + +export async function fetchLottoLogs({ days = 7 } = {}) { + const r = await fetch(`/api/agent-office/agents/lotto/logs?limit=200`); + if (!r.ok) throw new Error(`agent-office logs ${r.status}`); + const data = await r.json(); + if (!days) return data; + const cutoff = new Date(Date.now() - days * 24 * 3600 * 1000).toISOString(); + return { items: (data.items || data.logs || []).filter(l => (l.created_at || '') >= cutoff) }; +} + +export async function triggerEvolverGenerate() { + const r = await fetch('/api/lotto/evolver/generate-now', { method: 'POST' }); + if (!r.ok) throw new Error(`generate-now ${r.status}`); + return r.json(); +} + +export async function triggerEvolverEvaluate() { + const r = await fetch('/api/lotto/evolver/evaluate-now', { method: 'POST' }); + if (!r.ok) throw new Error(`evaluate-now ${r.status}`); + return r.json(); +}