import Fastify from "fastify"; import { createCharacterGardenApp } from "./app"; const port = Number(process.env.APP_PORT ?? 3000); const host = process.env.APP_HOST ?? "0.0.0.0"; const dbPath = process.env.DB_PATH ?? "/data/sqlite/app.db"; const game = createCharacterGardenApp(dbPath); const server = Fastify({ logger: true }); server.get("/health", async () => ({ ok: true })); server.get("/api/state", async () => game.getSnapshot()); server.post<{ Body: { input?: string } }>("/api/turn", async (request, reply) => { const input = request.body?.input?.trim(); if (!input) { reply.code(400); return { error: "input is required" }; } return game.processTurn(input); }); async function start(): Promise { try { await server.listen({ host, port }); } catch (error) { server.log.error(error); process.exit(1); } } void start();