amerc/README.md
artheru b055663372 amerc suite: 2D pixel tavern + zero-dep auth/admin/docs/pm backend
- Scene2D pixel tavern (replaces three.js 3D scene)
- amerc-api: node:http+node:sqlite+node:crypto, auth/admin/docs/files/boards
- docs.amerc.ai + pm.amerc.ai (whiteboard mindmap + netdisk) apps
- agent API keys for fleet read/write

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 06:03:40 +08:00

50 lines
2.0 KiB
Markdown

# 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: <https://amerc.ai>
## 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 <agent-key>`).
### Agents
Admins mint **agent keys** in the Quartermaster console. Agents call the API with
`Authorization: Bearer <key>` 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).