diff --git a/UPSTREAMS.md b/UPSTREAMS.md index dd9594f..90517be 100644 --- a/UPSTREAMS.md +++ b/UPSTREAMS.md @@ -1,65 +1,23 @@ # Upstream Dependencies ## Portal -- Next.js 15 (App Router) -- TypeScript -- Axios (API calls) -- WebSocket console (`TerminalView` / `ServerConsole`) -- Multipart `FormData` upload +- Next.js +- Axios +- Websocket console +- 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) +- Raw http.request for upload proxy +- Prisma +- Token auth ## 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) +- Runtime root sandboxing +- Atomic file writes +- Metadata tracking +- Shadow backup system ---- - -## 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 | +No external reverse proxy required for internal upload.