From 1ccba9eef1ab4024d04327a780133665fdf21abd Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Sun, 15 Mar 2026 13:09:17 -0700 Subject: [PATCH] Feat: API route to expose worker state to frontend --- app/api/state/route.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 app/api/state/route.js diff --git a/app/api/state/route.js b/app/api/state/route.js new file mode 100644 index 0000000..f7996c4 --- /dev/null +++ b/app/api/state/route.js @@ -0,0 +1,23 @@ +import { NextResponse } from 'next/server'; +import fs from 'fs'; + +export const dynamic = 'force-dynamic'; + +const STATE_FILE = '/tmp/kalbot-state.json'; + +export async function GET() { + try { + const raw = fs.readFileSync(STATE_FILE, 'utf-8'); + const data = JSON.parse(raw); + return NextResponse.json(data); + } catch (e) { + return NextResponse.json({ + market: null, + paper: { balance: 1000, totalPnL: 0, wins: 0, losses: 0, winRate: 0, openPositions: [], totalTrades: 0 }, + strategies: [], + workerUptime: 0, + lastUpdate: null, + error: 'Worker not running or no data yet' + }); + } +}