quoroom 0.1.0
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/LICENSE +21 -0
- package/README.md +316 -0
- package/out/mcp/api-server.js +2855 -0
- package/out/mcp/cli.js +53253 -0
- package/out/mcp/server.js +45970 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Quoroom
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://quoroom.ai">
|
|
3
|
+
<img src="docs/banner.png" alt="Quoroom — Autonomous AI agent collective." width="100%">
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
# Quoroom
|
|
8
|
+
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://www.npmjs.com/package/quoroom)
|
|
11
|
+
[](#)
|
|
12
|
+
[](https://github.com/quoroom-ai/room/stargazers)
|
|
13
|
+
|
|
14
|
+
**An open research project in autonomous agent collectives.**
|
|
15
|
+
|
|
16
|
+
A single agent thinks. A collective decides. We're building the swarm.
|
|
17
|
+
|
|
18
|
+
Queen, Workers, Quorum. Goals, skills, self-modification, wallet, stations — starting on your machine, scaling to cloud.
|
|
19
|
+
|
|
20
|
+
[quoroom.ai](https://quoroom.ai)
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<video src="docs/demo.mp4" autoplay loop muted playsinline width="800"></video>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Why Quoroom?
|
|
29
|
+
|
|
30
|
+
Run a swarm of AI agents that pursue goals autonomously. The Queen strategizes, a swarm of Workers execute, and the Quorum votes on decisions. Agents learn new skills, modify their own behavior, manage a crypto wallet, and rent cloud stations for more compute — all governed by democratic consensus.
|
|
31
|
+
|
|
32
|
+
Autonomous agents earning money is inevitable. It's already happening behind closed doors. We believe it should happen in the open — publicly, transparently — so everyone can learn. Quoroom is an experiment: let's see what AI can actually do.
|
|
33
|
+
|
|
34
|
+
The architecture draws from swarm intelligence research: decentralized decision-making, emergent behavior from local interactions, and collective intelligence that exceeds any individual agent. The queen doesn't dictate — the swarm decides.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## What is Quoroom?
|
|
39
|
+
|
|
40
|
+
Quoroom is an open research project exploring autonomous agent collectives. Each collective (a **Room**) is a self-governing swarm of agents.
|
|
41
|
+
|
|
42
|
+
- **Queen** — strategic brain, uses Claude CLI
|
|
43
|
+
- **Workers** — a swarm of specialized agents, use Ollama (free)
|
|
44
|
+
- **Quorum** — agents deliberate and vote on decisions
|
|
45
|
+
- **Keeper** — the human who created and funds the room
|
|
46
|
+
|
|
47
|
+
## This Repo
|
|
48
|
+
|
|
49
|
+
`quoroom-ai/room` is the headless engine: agent loop, quorum governance, goals, skills, self-modification, wallet, stations, memory, task scheduling, file watching, MCP server, and CLI.
|
|
50
|
+
|
|
51
|
+
| Repo | Purpose |
|
|
52
|
+
|------|---------|
|
|
53
|
+
| **room** (this) | Engine + HTTP server + UI |
|
|
54
|
+
| [cloud](https://github.com/quoroom-ai/cloud) | Station infrastructure + portal |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Features
|
|
59
|
+
|
|
60
|
+
**Rooms** — Create autonomous agent collectives with a Queen and Workers. Pause, restart, monitor activity.
|
|
61
|
+
|
|
62
|
+
**Quorum Voting** — Agents propose and vote on decisions. Majority, supermajority, or unanimous — you choose the threshold.
|
|
63
|
+
|
|
64
|
+
**Goals** — Hierarchical goal decomposition with progress tracking. Set a top-level objective and let agents break it down.
|
|
65
|
+
|
|
66
|
+
**Skills** — Reusable agent capabilities with activation contexts and versioning. Agents learn and improve over time.
|
|
67
|
+
|
|
68
|
+
**Self-Modification** — Agents edit their own skills and files with full audit trail and one-click revert.
|
|
69
|
+
|
|
70
|
+
**Memory** — Entities, observations, and relations with semantic vector search (384-dim embeddings). Knowledge persists across sessions.
|
|
71
|
+
|
|
72
|
+
**Wallet** — EVM wallet for USDC on Base L2. Encrypted keys (AES-256-GCM). Agents can send and receive funds.
|
|
73
|
+
|
|
74
|
+
**On-Chain Identity** — ERC-8004 agent identity on Base. Rooms register as on-chain agents with discoverable metadata. Reputation-ready.
|
|
75
|
+
|
|
76
|
+
**Stations** — Workers rent cloud servers when they need more compute. Deploy to Fly.io, E2B, or Modal with exec, logs, and domain management.
|
|
77
|
+
|
|
78
|
+
**Task Scheduling** — Recurring (cron), one-time, or on-demand tasks with session continuity and auto-nudge.
|
|
79
|
+
|
|
80
|
+
**File Watching** — Monitor files and folders, trigger Claude Code actions on change.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Architecture
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
┌─────────────────────────────────────────────────┐
|
|
88
|
+
│ Room │
|
|
89
|
+
│ ┌───────┐ ┌─────────┐ ┌──────────────────┐ │
|
|
90
|
+
│ │ Queen │ │ Workers │ │ Quorum │ │
|
|
91
|
+
│ │(Claude)│ │(Ollama) │ │ propose → vote │ │
|
|
92
|
+
│ └───┬───┘ └────┬────┘ └──────────────────┘ │
|
|
93
|
+
│ │ │ │
|
|
94
|
+
│ ┌───┴───────────┴───────────────────────────┐ │
|
|
95
|
+
│ │ Agent Loop │ │
|
|
96
|
+
│ │ goals · skills · self-mod · memory │ │
|
|
97
|
+
│ └───────────────────────────────────────────┘ │
|
|
98
|
+
│ │
|
|
99
|
+
│ ┌────────┐ ┌──────────┐ ┌────────────────┐ │
|
|
100
|
+
│ │ Wallet │ │ Stations │ │ Task Scheduler │ │
|
|
101
|
+
│ │(Base L2)│ │(Fly/E2B) │ │ (cron/once) │ │
|
|
102
|
+
│ └────────┘ └──────────┘ └────────────────┘ │
|
|
103
|
+
└─────────────────────────────────────────────────┘
|
|
104
|
+
▲
|
|
105
|
+
│ stdio
|
|
106
|
+
MCP Server (quoroom_* tools)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Quick Start
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm install
|
|
115
|
+
npm run build
|
|
116
|
+
npm test # 806+ tests
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## All Tools
|
|
122
|
+
|
|
123
|
+
The room engine exposes an MCP server over stdio. All tools use the `quoroom_` prefix.
|
|
124
|
+
|
|
125
|
+
<details>
|
|
126
|
+
<summary>Full tool reference (click to expand)</summary>
|
|
127
|
+
|
|
128
|
+
### Room
|
|
129
|
+
|
|
130
|
+
| Tool | Description |
|
|
131
|
+
|------|-------------|
|
|
132
|
+
| `quoroom_create_room` | Create a new autonomous agent collective |
|
|
133
|
+
| `quoroom_list_rooms` | List rooms by status |
|
|
134
|
+
| `quoroom_room_status` | Get room status and summary |
|
|
135
|
+
| `quoroom_room_activity` | Get recent room activity |
|
|
136
|
+
| `quoroom_pause_room` | Pause a running room |
|
|
137
|
+
| `quoroom_restart_room` | Restart a paused room |
|
|
138
|
+
| `quoroom_delete_room` | Delete a room |
|
|
139
|
+
|
|
140
|
+
### Quorum
|
|
141
|
+
|
|
142
|
+
| Tool | Description |
|
|
143
|
+
|------|-------------|
|
|
144
|
+
| `quoroom_propose` | Create a proposal for the quorum to vote on |
|
|
145
|
+
| `quoroom_vote` | Cast a vote on a proposal |
|
|
146
|
+
| `quoroom_list_decisions` | List quorum decisions |
|
|
147
|
+
| `quoroom_decision_detail` | Get details of a specific decision |
|
|
148
|
+
|
|
149
|
+
### Goals
|
|
150
|
+
|
|
151
|
+
| Tool | Description |
|
|
152
|
+
|------|-------------|
|
|
153
|
+
| `quoroom_set_goal` | Set a room's primary objective |
|
|
154
|
+
| `quoroom_create_subgoal` | Decompose a goal into sub-goals |
|
|
155
|
+
| `quoroom_update_progress` | Log a progress observation |
|
|
156
|
+
| `quoroom_complete_goal` | Mark a goal as completed |
|
|
157
|
+
| `quoroom_abandon_goal` | Abandon a goal |
|
|
158
|
+
| `quoroom_list_goals` | List goals for a room |
|
|
159
|
+
|
|
160
|
+
### Skills
|
|
161
|
+
|
|
162
|
+
| Tool | Description |
|
|
163
|
+
|------|-------------|
|
|
164
|
+
| `quoroom_create_skill` | Create a reusable agent skill |
|
|
165
|
+
| `quoroom_edit_skill` | Update a skill (increments version) |
|
|
166
|
+
| `quoroom_list_skills` | List available skills |
|
|
167
|
+
| `quoroom_activate_skill` | Activate a skill |
|
|
168
|
+
| `quoroom_deactivate_skill` | Deactivate a skill |
|
|
169
|
+
| `quoroom_delete_skill` | Delete a skill |
|
|
170
|
+
|
|
171
|
+
### Self-Modification
|
|
172
|
+
|
|
173
|
+
| Tool | Description |
|
|
174
|
+
|------|-------------|
|
|
175
|
+
| `quoroom_self_mod_edit` | Edit a skill or file with audit logging |
|
|
176
|
+
| `quoroom_self_mod_revert` | Revert a modification by audit ID |
|
|
177
|
+
| `quoroom_self_mod_history` | View modification audit history |
|
|
178
|
+
|
|
179
|
+
### Workers
|
|
180
|
+
|
|
181
|
+
| Tool | Description |
|
|
182
|
+
|------|-------------|
|
|
183
|
+
| `quoroom_create_worker` | Create a named agent with system prompt |
|
|
184
|
+
| `quoroom_list_workers` | List all workers |
|
|
185
|
+
| `quoroom_update_worker` | Update a worker's configuration |
|
|
186
|
+
| `quoroom_delete_worker` | Delete a worker |
|
|
187
|
+
|
|
188
|
+
### Task Scheduling
|
|
189
|
+
|
|
190
|
+
| Tool | Description |
|
|
191
|
+
|------|-------------|
|
|
192
|
+
| `quoroom_schedule` | Create a recurring (cron), one-time, or on-demand task |
|
|
193
|
+
| `quoroom_list_tasks` | List tasks by status |
|
|
194
|
+
| `quoroom_run_task` | Execute a task immediately |
|
|
195
|
+
| `quoroom_task_progress` | Check running task progress |
|
|
196
|
+
| `quoroom_task_history` | View task run history |
|
|
197
|
+
| `quoroom_pause_task` | Pause a scheduled task |
|
|
198
|
+
| `quoroom_resume_task` | Resume a paused task |
|
|
199
|
+
| `quoroom_delete_task` | Delete a task |
|
|
200
|
+
| `quoroom_reset_session` | Clear session continuity for a task |
|
|
201
|
+
|
|
202
|
+
### File Watching
|
|
203
|
+
|
|
204
|
+
| Tool | Description |
|
|
205
|
+
|------|-------------|
|
|
206
|
+
| `quoroom_watch` | Watch a file/folder for changes |
|
|
207
|
+
| `quoroom_unwatch` | Stop watching |
|
|
208
|
+
| `quoroom_pause_watch` | Pause a watch |
|
|
209
|
+
| `quoroom_resume_watch` | Resume a paused watch |
|
|
210
|
+
| `quoroom_list_watches` | List active watches |
|
|
211
|
+
|
|
212
|
+
### Memory
|
|
213
|
+
|
|
214
|
+
| Tool | Description |
|
|
215
|
+
|------|-------------|
|
|
216
|
+
| `quoroom_remember` | Store facts, preferences, people, events |
|
|
217
|
+
| `quoroom_recall` | Semantic + full-text search of memories |
|
|
218
|
+
| `quoroom_forget` | Delete a memory |
|
|
219
|
+
| `quoroom_memory_list` | List all memories |
|
|
220
|
+
|
|
221
|
+
### Wallet
|
|
222
|
+
|
|
223
|
+
| Tool | Description |
|
|
224
|
+
|------|-------------|
|
|
225
|
+
| `quoroom_wallet_create` | Create an EVM wallet (USDC on Base) |
|
|
226
|
+
| `quoroom_wallet_address` | Get wallet address |
|
|
227
|
+
| `quoroom_wallet_balance` | Check USDC balance |
|
|
228
|
+
| `quoroom_wallet_send` | Send USDC |
|
|
229
|
+
| `quoroom_wallet_history` | View transaction history |
|
|
230
|
+
|
|
231
|
+
### Identity
|
|
232
|
+
|
|
233
|
+
| Tool | Description |
|
|
234
|
+
|------|-------------|
|
|
235
|
+
| `quoroom_identity_register` | Register room as ERC-8004 on-chain agent |
|
|
236
|
+
| `quoroom_identity_get` | Get on-chain identity (agentId, registry, URI) |
|
|
237
|
+
| `quoroom_identity_update` | Update on-chain registration metadata |
|
|
238
|
+
|
|
239
|
+
### Stations
|
|
240
|
+
|
|
241
|
+
| Tool | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `quoroom_station_create` | Provision a cloud server (Fly.io, E2B, Modal) |
|
|
244
|
+
| `quoroom_station_list` | List stations |
|
|
245
|
+
| `quoroom_station_status` | Get station status |
|
|
246
|
+
| `quoroom_station_start` | Start a stopped station |
|
|
247
|
+
| `quoroom_station_stop` | Stop a running station |
|
|
248
|
+
| `quoroom_station_exec` | Execute a command on a station |
|
|
249
|
+
| `quoroom_station_logs` | View station logs |
|
|
250
|
+
| `quoroom_station_deploy` | Deploy to a station |
|
|
251
|
+
| `quoroom_station_domain` | Manage station domain |
|
|
252
|
+
| `quoroom_station_delete` | Delete a station |
|
|
253
|
+
|
|
254
|
+
### Settings
|
|
255
|
+
|
|
256
|
+
| Tool | Description |
|
|
257
|
+
|------|-------------|
|
|
258
|
+
| `quoroom_get_setting` | Get a setting value |
|
|
259
|
+
| `quoroom_set_setting` | Update a setting |
|
|
260
|
+
|
|
261
|
+
</details>
|
|
262
|
+
|
|
263
|
+
## Development
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
npm install # Install dependencies
|
|
267
|
+
npm run build # Typecheck + bundle MCP server (esbuild)
|
|
268
|
+
npm run typecheck # Type-check only (tsc --noEmit)
|
|
269
|
+
npm test # Run all tests (vitest, fork pool)
|
|
270
|
+
npm run test:watch # Watch mode
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
<details>
|
|
274
|
+
<summary>Project structure</summary>
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
room/
|
|
278
|
+
├── src/
|
|
279
|
+
│ ├── cli/ # CLI entry point (quoroom command)
|
|
280
|
+
│ ├── mcp/ # MCP server (stdio)
|
|
281
|
+
│ │ ├── server.ts # Tool registration
|
|
282
|
+
│ │ ├── db.ts # Database initialization
|
|
283
|
+
│ │ └── tools/ # 13 tool modules
|
|
284
|
+
│ └── shared/ # Core engine
|
|
285
|
+
│ ├── agent-loop.ts # Worker agent loop with rate limiting
|
|
286
|
+
│ ├── agent-executor.ts # Claude Code CLI execution
|
|
287
|
+
│ ├── room.ts # Room lifecycle
|
|
288
|
+
│ ├── quorum.ts # Voting & decisions
|
|
289
|
+
│ ├── goals.ts # Goal decomposition
|
|
290
|
+
│ ├── skills.ts # Skill management
|
|
291
|
+
│ ├── wallet.ts # EVM wallet (Base L2, USDC)
|
|
292
|
+
│ ├── identity.ts # ERC-8004 on-chain identity
|
|
293
|
+
│ ├── station.ts # Cloud provisioning
|
|
294
|
+
│ ├── task-runner.ts # Task execution engine
|
|
295
|
+
│ ├── db-queries.ts # Database query layer
|
|
296
|
+
│ ├── schema.ts # SQLite schema (WAL mode)
|
|
297
|
+
│ ├── embeddings.ts # Vector embeddings (all-MiniLM-L6-v2)
|
|
298
|
+
│ └── __tests__/ # Test suite
|
|
299
|
+
├── scripts/
|
|
300
|
+
│ └── build-mcp.js # esbuild bundling
|
|
301
|
+
└── docs/ # Media assets
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Tech stack**: TypeScript (strict), better-sqlite3, sqlite-vec, viem, MCP SDK, HuggingFace Transformers, node-cron, zod, esbuild, Vitest
|
|
305
|
+
|
|
306
|
+
</details>
|
|
307
|
+
|
|
308
|
+
## No API keys needed
|
|
309
|
+
|
|
310
|
+
No ChatGPT API. No Claude API. The queen uses your [Claude Code](https://docs.anthropic.com/en/docs/claude-code) subscription. Workers use [Ollama](https://ollama.com) — free, open-source LLMs. Scale up with stations.
|
|
311
|
+
|
|
312
|
+
Quoroom is not affiliated with Anthropic or OpenAI.
|
|
313
|
+
|
|
314
|
+
## License
|
|
315
|
+
|
|
316
|
+
MIT License. See [LICENSE](LICENSE) for details.
|