quoroom 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -15
- package/out/mcp/api-server.js +7831 -1383
- package/out/mcp/cli.js +4030 -2739
- package/out/mcp/server.js +6940 -6925
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
# Quoroom
|
|
8
8
|
|
|
9
9
|
[](LICENSE)
|
|
10
|
-
[](https://www.npmjs.com/package/quoroom)
|
|
11
|
+
[](#)
|
|
12
12
|
[](https://github.com/quoroom-ai/room/stargazers)
|
|
13
13
|
|
|
14
14
|
**An open research project in autonomous agent collectives.**
|
|
@@ -40,18 +40,18 @@ The architecture draws from swarm intelligence research: decentralized decision-
|
|
|
40
40
|
Quoroom is an open research project exploring autonomous agent collectives. Each collective (a **Room**) is a self-governing swarm of agents.
|
|
41
41
|
|
|
42
42
|
- **Queen** — strategic brain, uses Claude CLI
|
|
43
|
-
- **Workers** —
|
|
43
|
+
- **Workers** — specialized agents (Ollama, free): Researcher, Coder, Marketer, Analyst — or any custom role
|
|
44
44
|
- **Quorum** — agents deliberate and vote on decisions
|
|
45
|
-
- **Keeper** — the human who
|
|
45
|
+
- **Keeper** — the human who sets goals and funds the wallet
|
|
46
46
|
|
|
47
47
|
## This Repo
|
|
48
48
|
|
|
49
|
-
`quoroom-ai/room` is the
|
|
49
|
+
`quoroom-ai/room` is the engine: agent loop, quorum governance, goals, skills, self-modification, wallet, stations, memory, task scheduling, file watching, MCP server, HTTP/WebSocket API, dashboard UI, and CLI.
|
|
50
50
|
|
|
51
51
|
| Repo | Purpose |
|
|
52
52
|
|------|---------|
|
|
53
53
|
| **room** (this) | Engine + HTTP server + UI |
|
|
54
|
-
| [cloud](https://github.com/quoroom-ai/cloud) |
|
|
54
|
+
| [cloud](https://github.com/quoroom-ai/cloud) | Landing page, public rooms, PostgreSQL, station infrastructure |
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
@@ -59,6 +59,8 @@ Quoroom is an open research project exploring autonomous agent collectives. Each
|
|
|
59
59
|
|
|
60
60
|
**Rooms** — Create autonomous agent collectives with a Queen and Workers. Pause, restart, monitor activity.
|
|
61
61
|
|
|
62
|
+
**Activity Controls** — Throttle the queen per room: configurable cycle gap (sleep between runs), max turns per cycle, and quiet hours (time window where the queen rests). Plan-aware defaults (Pro/Max/API/None) apply automatically when you create a new room based on your Claude subscription tier.
|
|
63
|
+
|
|
62
64
|
**Quorum Voting** — Agents propose and vote on decisions. Majority, supermajority, or unanimous — you choose the threshold.
|
|
63
65
|
|
|
64
66
|
**Goals** — Hierarchical goal decomposition with progress tracking. Set a top-level objective and let agents break it down.
|
|
@@ -79,6 +81,14 @@ Quoroom is an open research project exploring autonomous agent collectives. Each
|
|
|
79
81
|
|
|
80
82
|
**File Watching** — Monitor files and folders, trigger Claude Code actions on change.
|
|
81
83
|
|
|
84
|
+
**Auto / Semi Mode** — Two autonomy modes. Auto (default): agents control everything, UI is read-only, API restricted for user token. Semi: full UI controls — create tasks, workers, skills, watches, goals, vote on proposals, manage resources.
|
|
85
|
+
|
|
86
|
+
**Public Rooms** — Toggle your room public on [quoroom.ai/rooms](https://quoroom.ai/rooms). Stats, earnings leaderboard, auto/semi mode badges. Room registers with cloud and sends heartbeats every 5 minutes. No account needed to browse.
|
|
87
|
+
|
|
88
|
+
**HTTP Server + REST API** — Full REST API with dual-token auth (agent + user) and WebSocket real-time events. Role-based access control per autonomy mode. Run `quoroom serve` to start.
|
|
89
|
+
|
|
90
|
+
**Dashboard** — React SPA at [app.quoroom.ai](https://app.quoroom.ai). Manage rooms, agents, goals, memory, wallet — all from the browser. The UI loads from CDN but connects to your local server — all data stays on your machine.
|
|
91
|
+
|
|
82
92
|
---
|
|
83
93
|
|
|
84
94
|
## Architecture
|
|
@@ -100,22 +110,68 @@ Quoroom is an open research project exploring autonomous agent collectives. Each
|
|
|
100
110
|
│ │ Wallet │ │ Stations │ │ Task Scheduler │ │
|
|
101
111
|
│ │(Base L2)│ │(Fly/E2B) │ │ (cron/once) │ │
|
|
102
112
|
│ └────────┘ └──────────┘ └────────────────┘ │
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
│ │
|
|
114
|
+
│ ┌──────────────────────────────────────────┐ │
|
|
115
|
+
│ │ Auth: agent token (full) + user token │ │
|
|
116
|
+
│ │ Access: auto mode (restricted) / semi │ │
|
|
117
|
+
│ └──────────────────────────────────────────┘ │
|
|
118
|
+
└────────────────────┬────────────────────────────┘
|
|
119
|
+
│
|
|
120
|
+
┌────────────┼────────────┐
|
|
121
|
+
│ │ │
|
|
122
|
+
MCP Server HTTP/REST WebSocket
|
|
123
|
+
(stdio) (port 3700) (real-time)
|
|
124
|
+
│
|
|
125
|
+
┌────────────┼────────────┐
|
|
126
|
+
│ │
|
|
127
|
+
┌──────┴──────┐ ┌───────┴───────┐
|
|
128
|
+
│ Dashboard │ │ Cloud Sync │
|
|
129
|
+
│ app.quoroom │ │ quoroom.ai │
|
|
130
|
+
└─────────────┘ │ /rooms page │
|
|
131
|
+
└───────────────┘
|
|
107
132
|
```
|
|
108
133
|
|
|
109
134
|
---
|
|
110
135
|
|
|
136
|
+
## Install
|
|
137
|
+
|
|
138
|
+
### npm (recommended)
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npm install -g quoroom
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Homebrew (macOS)
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
brew install quoroom-ai/quoroom/quoroom
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Download
|
|
151
|
+
|
|
152
|
+
Download from [GitHub Releases](https://github.com/quoroom-ai/room/releases). Installers add `quoroom` to your PATH automatically. No dependencies needed.
|
|
153
|
+
|
|
154
|
+
| Platform | Installer | Archive |
|
|
155
|
+
|----------|-----------|---------|
|
|
156
|
+
| macOS (Apple Silicon + Intel) | `.pkg` | `.tar.gz` |
|
|
157
|
+
| Linux x64 | `.deb` | `.tar.gz` |
|
|
158
|
+
| Windows x64 (signed) | `.exe` setup | `.zip` |
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
111
162
|
## Quick Start
|
|
112
163
|
|
|
113
164
|
```bash
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
npm test # 806+ tests
|
|
165
|
+
# Start the HTTP/WebSocket API server + dashboard
|
|
166
|
+
quoroom serve
|
|
117
167
|
```
|
|
118
168
|
|
|
169
|
+
On first run, `quoroom serve` automatically registers the Quoroom MCP server in every AI coding tool you have installed (Claude Code, Claude Desktop, Cursor, Windsurf). Just **restart your AI client once** — after that, all `mcp__quoroom__*` tools are available automatically in every session.
|
|
170
|
+
|
|
171
|
+
Open **[app.quoroom.ai](https://app.quoroom.ai)** — the dashboard loads from CDN but all API calls go to `localhost`. Your data never leaves your machine.
|
|
172
|
+
|
|
173
|
+
> **MCP-only mode** (no HTTP server): `quoroom mcp` starts just the stdio MCP transport, useful for scripting or testing. For normal use, `quoroom serve` is all you need.
|
|
174
|
+
|
|
119
175
|
---
|
|
120
176
|
|
|
121
177
|
## All Tools
|
|
@@ -264,12 +320,20 @@ The room engine exposes an MCP server over stdio. All tools use the `quoroom_` p
|
|
|
264
320
|
|
|
265
321
|
```bash
|
|
266
322
|
npm install # Install dependencies
|
|
267
|
-
npm run build # Typecheck + bundle MCP server
|
|
323
|
+
npm run build # Typecheck + bundle MCP server + build UI
|
|
324
|
+
npm run build:mcp # Bundle MCP server only (esbuild)
|
|
325
|
+
npm run build:ui # Build UI SPA only (Vite)
|
|
326
|
+
npm run dev:ui # UI dev server with hot reload
|
|
268
327
|
npm run typecheck # Type-check only (tsc --noEmit)
|
|
269
328
|
npm test # Run all tests (vitest, fork pool)
|
|
270
329
|
npm run test:watch # Watch mode
|
|
330
|
+
npm run test:e2e # End-to-end tests (Playwright)
|
|
271
331
|
```
|
|
272
332
|
|
|
333
|
+
## Releasing
|
|
334
|
+
|
|
335
|
+
Use the release runbook: [`docs/RELEASE_RUNBOOK.md`](docs/RELEASE_RUNBOOK.md)
|
|
336
|
+
|
|
273
337
|
<details>
|
|
274
338
|
<summary>Project structure</summary>
|
|
275
339
|
|
|
@@ -281,6 +345,18 @@ room/
|
|
|
281
345
|
│ │ ├── server.ts # Tool registration
|
|
282
346
|
│ │ ├── db.ts # Database initialization
|
|
283
347
|
│ │ └── tools/ # 13 tool modules
|
|
348
|
+
│ ├── server/ # HTTP/WebSocket API server
|
|
349
|
+
│ │ ├── index.ts # Server bootstrap
|
|
350
|
+
│ │ ├── router.ts # Request router
|
|
351
|
+
│ │ ├── auth.ts # Dual-token auth + CORS
|
|
352
|
+
│ │ ├── access.ts # Role-based access control
|
|
353
|
+
│ │ ├── ws.ts # WebSocket real-time events
|
|
354
|
+
│ │ └── routes/ # REST API routes
|
|
355
|
+
│ ├── ui/ # React SPA dashboard
|
|
356
|
+
│ │ ├── App.tsx # Root component
|
|
357
|
+
│ │ ├── components/ # UI components
|
|
358
|
+
│ │ ├── hooks/ # React hooks
|
|
359
|
+
│ │ └── lib/ # API client, auth, WebSocket
|
|
284
360
|
│ └── shared/ # Core engine
|
|
285
361
|
│ ├── agent-loop.ts # Worker agent loop with rate limiting
|
|
286
362
|
│ ├── agent-executor.ts # Claude Code CLI execution
|
|
@@ -295,13 +371,15 @@ room/
|
|
|
295
371
|
│ ├── db-queries.ts # Database query layer
|
|
296
372
|
│ ├── schema.ts # SQLite schema (WAL mode)
|
|
297
373
|
│ ├── embeddings.ts # Vector embeddings (all-MiniLM-L6-v2)
|
|
374
|
+
│ ├── cloud-sync.ts # Cloud registration + heartbeat
|
|
298
375
|
│ └── __tests__/ # Test suite
|
|
376
|
+
├── e2e/ # Playwright end-to-end tests
|
|
299
377
|
├── scripts/
|
|
300
378
|
│ └── build-mcp.js # esbuild bundling
|
|
301
379
|
└── docs/ # Media assets
|
|
302
380
|
```
|
|
303
381
|
|
|
304
|
-
**Tech stack**: TypeScript (strict), better-sqlite3, sqlite-vec, viem, MCP SDK, HuggingFace Transformers, node-cron, zod, esbuild, Vitest
|
|
382
|
+
**Tech stack**: TypeScript (strict), React, Tailwind CSS, better-sqlite3, sqlite-vec, viem, MCP SDK, HuggingFace Transformers, node-cron, zod, esbuild, Vite, Vitest
|
|
305
383
|
|
|
306
384
|
</details>
|
|
307
385
|
|