- 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>
2.0 KiB
2.0 KiB
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.jsxpicks the app by hostname (Scene2D/DocsApp/PmApp). Pixel sprites inpublic/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 (viaAuthorization: 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
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).