English · 한국어 · Open the monitor
Lifecycle: Lab — experimental, best-effort, and subject to change or retirement. The
monitorentry in the Mossland ecosystem registry follows MIP-1, ratified on 2026-09-02.
An interactive map of the Mossland ecosystem, with pixel-art detail views for Algora, AO, and Bridge. It brings registry metadata, service health, and governance data into one static web app.
The map separates what exists, what can be observed, and what a service reports. A registry entry alone is not evidence that a service is healthy.
Map is the default view. Registry entries orbit by section: Official, Participation, Developers, Markets, and Ecosystem. Hover over a body for details; click Algora, AO, or Bridge to open its detail view, or other entries to visit their destination. Clicking the monitor's own body recenters the map.
| Map form | Meaning |
|---|---|
| Streaming, with a ring | This monitor polls the service's data APIs: Algora, AO, or Bridge. This does not itself mean the service is healthy. |
| Health-checked | A health reading is available, directly or through the fallback aggregator. |
| Listed only | The registry lists the service, but no health reading is available. |
| Link or file | A reference such as an exchange listing, social account, or published file; excluded from service health counts. |
Colour shows ok, degraded, down, or no interpretable measurement. Archived/deprecated entries stay visible with subdued styling. The sidebar lists registry entries and lifecycle labels, service counts, API reachability, and governance figures.
The Map / Algora / AO / Bridge tabs work on desktop and mobile. Below 768px, the information panel opens from the menu button; between 768px and 1100px it sits above the stage. Crossing the mobile breakpoint reloads the app to fit its canvas. Reduced-motion preferences suppress map rotation and activity effects and remove tab-switch camera transitions.
The three services are independent. Their stage labels illustrate each service's workflow; they do not establish an implemented data handoff between services.
| View | Displays |
|---|---|
| Algora · Sense & Detect | A vertical signal belt, nine workflow stages, and agent clusters. The belt consumes a merged queue of signals fetched from all three services, not only Algora. |
| AO · Debate & Plan | Cached AO ideas and scores, debate topics/snippets, and Ideas / Plans / Projects totals. Idea bubbles illustrate score thresholds of 7 for a plan and 8 for a project. |
| Bridge · Execute & Verify | An L0–L4 workflow, specialist agents, proposal totals from stats, agent trust, and recent outcomes. The monitor does not fetch the full proposal collection. |
See the service overview for responsibilities and the conceptual governance loop. Its cross-service handoff model is a design sketch.
- Polling, not a push stream. Service APIs refresh 15 seconds after the previous cycle finishes. Health sweeps refresh after 60 seconds; the registry after 10 minutes. Requests have a 10-second cycle timeout.
- API reachability and health are different. A service gets a
LIVEbadge when its signals or stats request succeeds. The aggregate isLIVEwhen any of the three responds,OFFLINEwhen none responds, andConnecting…before the first verdict. The ecosystem health feed has its own status readings. - Health comes from evidence. The browser reads service
statusUrladdresses from the registry; direct readings override the city health aggregate. A declared status survives an HTTP error response. An unparseable 5xx meansdown; network/CORS failures and responses without a usable verdict do not by themselves prove an outage. Unknown status strings stay untranslated. - Motion has different meanings. Map particles are triggered by newly ingested signals and capped for display; a ring sweep follows a completed health refresh. Galaxy rotation is decorative. Belt travel, stage promotion, and Bridge's proposal/proof animation illustrate workflows; they are not execution traces or proof that work completed.
- Snapshots can be older than the latest poll. Detail caches survive individual request failures, and a wholly unsuccessful health sweep retains the previous snapshot. AO can replay cached ideas. Missing trust scores or an absent success rate display
—; an unavailable value must not be interpreted as a measured zero. This is an observational viewer, not an uptime or execution audit log.
Use Node.js 22 LTS (22.12+) or Node.js 24 LTS and npm. The development toolchain supports ^22.12.0 || ^24.0.0 || >=26.0.0. The app uses TypeScript, Vite 7, Phaser 3, vanilla DOM/CSS, and Vitest.
npm ci
npm run devVite prints the local URL, normally http://localhost:5173. The registry and health map use public cross-origin endpoints. To populate all governance detail views, run the three APIs locally or adjust the proxy targets in vite.config.ts:
| Browser path | Default development upstream | Data read |
|---|---|---|
/algora-api/* |
http://localhost:3201/api/* |
Signals, issues, stats |
/ao-api/* |
http://localhost:3001/* |
Signals, status, debates, ideas, plans, projects |
/bridge-api/* |
http://localhost:3101/api/* |
Signals, stats, outcomes, agent trust |
API servers are separate projects and are not started by this repository. No frontend API key or .env file is required. Registry and fallback health URLs are defined in ecosystem-client.ts; direct health endpoints must permit browser access with CORS.
npm run typecheck
npm test
npm run buildThese are the same checks run by GitHub Actions for branch pushes and pull requests into main. Tests cover health-response interpretation and ecosystem feed behaviour. Use npm run test:watch while working on those readers.
npm run preview # inspect the production build locally
# or
npm run serve # serve dist/ on port 6300Preview and static serving do not provide the Vite development API proxies. Full production verification needs the reverse-proxy setup below.
Build the reviewed commit and publish dist/. Deployment is manual; GitHub Actions validates the change but does not deploy it. The repository supports static hosting directly or an existing PM2 installation using ecosystem.config.cjs, which runs the installed local serve package on port 6300. Run npm ci before starting it.
The app has no pathname-based routes. Static serving deliberately returns 404 for missing files, including JavaScript assets, instead of substituting index.html. Preserve that behaviour when using another host or reverse proxy.
deploy/nginx.conf.example documents the production routes. Adjust domains, certificates, upstream addresses, and disk paths for your host. The deployment must provide:
- The three same-origin API proxies, preserving the path rewrites in the table above.
- An exact
/api/healthroute to the generatedhealth.json. - Revalidation for HTML and health responses, and immutable caching for content-hashed
/assets/files. - CORS for intended API consumers. The example reflects an origin allowlist, handles
OPTIONS, and varies API responses byOriginandAccept-Encoding. The public health endpoint usesAccess-Control-Allow-Origin: *.
After deployment, open the map and all three detail tabs at desktop and mobile widths. Check that API responses are JSON, service reachability settles, registry/health data loads, and browser assets load without errors. Verify /api/health returns JSON identifying the commit that was built, and a nonexistent /assets/ file returns 404.
Every production build emits dist/health.json. The reverse proxy exposes it at /api/health:
{
"status": "ok",
"service": "monitor",
"role": "viewer",
"pipeline": "none",
"timestamp": "<build timestamp>",
"buildTime": "<same build timestamp>",
"commit": "<short Git commit, or null outside a Git checkout>"
}This identifies the served frontend build. Its timestamp is the build time, not the last health poll or the freshness of upstream data. status: "ok" does not certify Algora, AO, Bridge, or the wider ecosystem. Vite development mode does not expose this route; local builds can be inspected at /health.json through preview/static serving.
- Mossland ecosystem registry — service discovery and lifecycle metadata.
- mossland-pixelops — a related event-sourced pixel-art operations map.
- MIT License.