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 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: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
10
+ [![npm version](https://img.shields.io/badge/npm-v0.1.0-blue)](https://www.npmjs.com/package/quoroom)
11
+ [![Tests](https://img.shields.io/badge/tests-806%20passing-brightgreen)](#)
12
+ [![GitHub stars](https://img.shields.io/github/stars/quoroom-ai/room)](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.