grix-connector
Version:
Connect local AI coding agents (Claude, Codex, Gemini, Qwen, DeepSeek, Cursor, OpenCode, Pi, OpenHuman, Reasonix) to the Grix scheduling platform. Also serves as an OpenClaw plugin for Grix channel transport.
2 lines (1 loc) • 900 B
JavaScript
import{createServer as a}from"node:http";import{log as o}from"../log/logger.js";class v{server=null;startTime=Date.now();alive=!0;statusProvider=null;setStatusProvider(t){this.statusProvider=t}async start(t){return new Promise((s,i)=>{this.server=a((n,e)=>{if(n.url==="/healthz")if(this.alive){const r=this.statusProvider?.();e.writeHead(200,{"Content-Type":"application/json"}),e.end(JSON.stringify({status:"ok",uptime:Math.floor((Date.now()-this.startTime)/1e3),pid:process.pid,...r?{agents:r}:{}}))}else e.writeHead(503,{"Content-Type":"application/json"}),e.end(JSON.stringify({status:"shutting_down"}));else e.writeHead(404),e.end()}),this.server.listen(t,"127.0.0.1",()=>{o.info("health",`Listening on 127.0.0.1:${t}`),s()}),this.server.on("error",i)})}markShuttingDown(){this.alive=!1}async stop(){if(this.server)return new Promise(t=>{this.server.close(()=>t())})}}export{v as HealthServer};