- 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>
50 lines
2.0 KiB
Markdown
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).
|