zlh-grind/UPSTREAMS.md

1.5 KiB

Upstream Dependencies

Portal

  • Next.js 15 (App Router)
  • TypeScript
  • Axios (API calls)
  • WebSocket console (TerminalView / ServerConsole)
  • Multipart FormData upload

API

  • Node.js (ESM)
  • Express
  • Raw http.request for upload proxy (not fetch)
  • Prisma (DB ORM)
  • JWT token auth
  • Redis (agent telemetry cache)

Agent

  • Go
  • Runtime root sandboxing (internal/files)
  • Atomic file writes (os.Rename)
  • .zlh_metadata.json provenance tracking
  • Shadow backup system (.zlh-shadow)
  • PTY-backed console over WebSocket
  • Mod management endpoints
  • Agent update system (versioned, SHA-verified)

Modrinth API

Used for mod resolution and search.

  • Base: api.modrinth.com/v2
  • Rate limit: 300 req/min
  • Requires User-Agent header
  • No API key required for public endpoints
  • SHA512 provided on all artifacts (SHA1 fallback)

Agent host allowlist:

  • cdn.modrinth.com — artifact downloads
  • api.modrinth.com — search/resolve (API-level)

Artifact Store

Location (VM filesystem): /opt/zlh/zpacks/minecraft/

Loader coverage:

  • Vanilla, Paper, Purpur, Forge, Quilt, NeoForge

No external reverse proxy required for internal upload path.


Repo Registry

Repo Role
zlh-grind Architecture alignment, session logs, constraints, open threads
zlh-api Control plane (Node + Express)
zlh-portal Frontend (Next.js)
zlh-agent Go runtime inside containers
knowledge-base Canonical architecture docs