amerc/README.md
artheru 4d82fc07a4 tavern: real 2D-RPG game scene from CC0 game tiles (Kenney Tiny Dungeon)
- TavernGame renders an actual tile-based RPG tavern: brick walls, floor,
  bar(吧台)+bartender(酒保)+bottles, tables(圆桌)+patrons, rug, dancer(舞女, spotlit+sway),
  barrels(酒桶), and the cyan amerc screen(屏幕) — animated fire/screen/dust
- tiles downloaded from kenney.nl (CC0), bundled as public/scene2d/dungeon.png
- credit added to README
2026-06-10 01:57:25 +08:00

54 lines
2.2 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).
## Credits
Tavern scene tiles: **Kenney Tiny Dungeon** (CC0) — https://kenney.nl/assets/tiny-dungeon