/** * agentify.help — standalone Express server * Deployed on Fly.io (fra region), database on Fly.io Postgres. * DNS: Bunny DNS → agentify.help * Git: git.wellspr.ing/wellspring/agentify-help */ import express from "express"; import { pool } from "./db.js"; import { registerAgentifyHelpRoutes } from "./routes/agentify-help.js"; import { registerAgentifyRoutes } from "./routes/agentify.js"; import { registerStage5Routes } from "./routes/stage5.js"; import { registerSkillsAgentifyHelpRoutes } from "./routes/skills.js"; import { registerCorpusRoutes } from "./routes/corpus.js"; import { registerCorpusGatherRoutes } from "./routes/corpus-gather.js"; import { registerPersonaForgeRoutes, initPersonaForge } from "./routes/personaforge.js"; import { registerStewardRoutes, initStewardDash } from "./routes/steward.js"; const app = express(); const PORT = parseInt(process.env.PORT || "3000"); app.set("trust proxy", true); app.use(express.json({ limit: "10mb" })); app.use(express.urlencoded({ extended: true, limit: "10mb" })); app.get("/health", (_req, res) => { res.json({ ok: true, app: "agentify-help", ts: new Date().toISOString() }); }); registerAgentifyHelpRoutes(app); registerAgentifyRoutes(app); registerStage5Routes(app); registerSkillsAgentifyHelpRoutes(app); registerCorpusRoutes(app); registerCorpusGatherRoutes(app); async function start() { try { await pool.query("SELECT 1"); console.log("[db] pool connected"); } catch (e: any) { console.error("[db] connection failed:", e.message); process.exit(1); } await initPersonaForge().catch((e: any) => console.error("[personaforge] init:", e.message)); await initStewardDash().catch((e: any) => console.error("[steward] init:", e.message)); await registerPersonaForgeRoutes(app).catch((e: any) => console.error("[personaforge] routes:", e.message) ); registerStewardRoutes(app); app.listen(PORT, "0.0.0.0", () => { console.log(`[agentify-help] listening on :${PORT}`); }); } start().catch((err) => { console.error("Fatal startup error:", err); process.exit(1); });