Files
pyre/infra/status
RogueWave 6ab0f02d06 feat(prometheus): real providers (Gemini/fal/Pollinations…) + secure key store
- Secure secrets: gitignored ~/pyre/.env (chmod 600) loaded into the API via
  `node --env-file-if-exists`; keys never committed/logged/returned. .env.example
  documents the vars. Free-first default (text=gemini, image=pollinations).
- @pyre/config: provider selection + key fields.
- @pyre/prometheus: real providers via fetch (no SDK deps) — Gemini/Anthropic/
  OpenAI text, Pollinations(free)/fal/DeepInfra/Replicate image, OpenAI moderation;
  `createProviders()` factory selects by config + key presence, falls back to stub.
  29 tests.
- @pyre/api: /api/prometheus/generate builds providers from config; keys never logged.

Live-verified end-to-end: admin-gated generate returned a real Spawn ("Ashen
Golem"/$AGOL) with a Pollinations image on the $0 stub-text+free-image stack;
.env-loaded admin token enforced. typecheck 8/8, 150 tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 07:23:18 +00:00
..

PYRE Status Dashboard

A static, self-contained dark "ember"-themed page the team uses to track PYRE MVP progress. It is a snapshot, not live telemetry.

Files

  • status.json — the single source of truth. All content on the page (phases, checklists, infra, dates, links) comes from here.
  • index.html — the prebuilt rendered page. Committed so the page works even before anyone runs the generator. Self-contained: inline CSS, no external requests, no JS.
  • README.md — this file.

Editing & regenerating

  1. Edit status.json — flip an item's "done" to true, update a phase "state" (todo / in_progress / done), or bump "updated".

  2. Regenerate the page from the repo root:

    node scripts/gen-status.mjs
    

    The generator is dependency-free (plain Node ESM, no npm install). It reads infra/status/status.json and rewrites infra/status/index.html, recomputing the overall % complete from the item done-counts. It prints the output path when finished.

  3. Commit the regenerated index.html alongside the status.json change so the prebuilt page stays consistent with the data.

Deployment

The provision script deploys infra/status/* to /var/www/feedthepyre/status, and nginx serves it as the site root (feedthepyre.com) until the real PYRE app ships. Because index.html is prebuilt and self-contained, deployment is a plain file copy — no build step or generator run is required on the server.