/** * Dispatcher script: publish-availability * * Self-contained, like reconcile-bookings. Publishes the install account's * computed free/busy into its Cloudflare D1 `availability_snapshot` table so the * public booking page's edge Function keeps serving open times while the device * is offline. Runs while the device is ONLINE; when the device is off it simply * does not run and the edge keeps serving the last snapshot until it returns. * * It reads the device's own free/busy from the always-running local server * (127.0.0.1:$MAXY_UI_INTERNAL_PORT/api/calendar/free-busy — a gate-exempt public * path), so it needs no Neo4j and no tunnel/DNS. The account whose free/busy the * endpoint serves is the one the server resolved and hands in via * PUBLISH_ACCOUNT_DIR / PUBLISH_ACCOUNT_ID. * * If the local endpoint is unreachable it makes NO D1 write (result=skipped- * unreachable), leaving the last edge snapshot intact. A PID lock prevents * overlapping runs. Each run records the outcome to a local last-publish.json so * the server's audit tick can report snapshot age independent of this job. * * Observability — one [calendar-availability] op=publish line per run. * * PLATFORM_ROOT=... MAXY_UI_INTERNAL_PORT=... PUBLISH_ACCOUNT_DIR=... \ * PUBLISH_ACCOUNT_ID=... node dist/scripts/publish-availability.js */ export {}; //# sourceMappingURL=publish-availability.d.ts.map