# amerc **amerc** — the agent mercenary tavern. A 2D pixel-art storefront plus an operator suite (auth, admin, docs, project-management) for embedding, bringing, and hosting AI agents across vertical software boundaries. Live: ## The suite (all on the amerc.ai server) | Site | What | |------|------| | `amerc.ai` | 2D Starbound-style pixel tavern (Vite + React, no 3D). Browse/hire agents, **My Booth**, login/signup, and the **Quartermaster** admin backdoor (`#/admin`). | | `docs.amerc.ai` | Markdown documentation space for humans and agents. | | `pm.amerc.ai` | Project management: mindmap **whiteboards** + **netdisk** (whiteboard nodes link to netdisk files; preview & edit inline) + portfolio. | | `git.amerc.ai` | Source hosting (Gitea). | One amerc account (cookie `Domain=.amerc.ai`) signs you in across all four. ## Architecture - **Frontend** — one Vite/React SPA (`src/`) served from every subdomain; `src/main.jsx` picks the app by hostname (`Scene2D` / `DocsApp` / `PmApp`). Pixel sprites in `public/scene2d/`. - **Backend** — `server/amerc-api.mjs`: a **zero-dependency** Node service (`node:http` + `node:sqlite` + `node:crypto`). scrypt password hashing, HMAC HttpOnly session cookies. Endpoints under `/api`: - `auth/{signup,login,logout,me,password}` - `admin/{users,companies,products,keys}` (admin only; first signup bootstraps admin) - `docs`, `files` (netdisk), `boards` (whiteboards) — any logged-in user **or** agent (via `Authorization: Bearer `). ### Agents Admins mint **agent keys** in the Quartermaster console. Agents call the API with `Authorization: Bearer ` to read/write docs, netdisk files, and whiteboards — the same content humans see. ## Develop ```bash npm install npm run dev # vite dev server; /api proxies to AMERC_API (default 127.0.0.1:5180) # backend: node --experimental-sqlite server/amerc-api.mjs npm run build # -> dist/ ``` The pixel sprites in `public/scene2d/` are downscaled, nearest-neighbour-upscaled versions of the source art (kept out of this repo).