let-them-talk 3.5.1 → 3.6.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/CHANGELOG.md +62 -0
- package/README.md +62 -21
- package/cli.js +16 -9
- package/conversation-templates/managed-team.json +12 -0
- package/dashboard.html +7389 -5720
- package/dashboard.js +2017 -1766
- package/mods/built-in-accessories.json +122 -0
- package/mods/registry.json +4 -0
- package/office/accessories.js +265 -0
- package/office/agents.js +376 -0
- package/office/animation.js +337 -0
- package/office/appearance.js +56 -0
- package/office/character.js +208 -0
- package/office/constants.js +62 -0
- package/office/environment.js +805 -0
- package/office/face.js +258 -0
- package/office/hair.js +183 -0
- package/office/index.js +343 -0
- package/office/mod-loader.js +257 -0
- package/office/monitors.js +113 -0
- package/office/outfits.js +212 -0
- package/office/scene.js +75 -0
- package/office/spectator-camera.js +177 -0
- package/office/state.js +25 -0
- package/package.json +58 -56
- package/server.js +2704 -2196
- package/templates/managed.json +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.6.1] - 2026-03-16
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **3D Hub black screen on page load** — the office module loads asynchronously, but the initial `switchView('office')` fired before `office3dStart` was defined. Added auto-start at end of module so the 3D Hub loads immediately on refresh.
|
|
7
|
+
|
|
8
|
+
## [3.6.0] - 2026-03-16
|
|
9
|
+
|
|
10
|
+
### Added — Managed Conversation Mode
|
|
11
|
+
|
|
12
|
+
- **`set_conversation_mode("managed")`** — structured turn-taking for 3+ agent teams, prevents broadcast storms
|
|
13
|
+
- **`claim_manager()`** — claim the manager role (first caller wins, auto-election fallback)
|
|
14
|
+
- **`yield_floor(to, prompt?)`** — manager-only: give an agent permission to speak (directed, round-robin `__open__`, or close `__close__`)
|
|
15
|
+
- **`set_phase(phase)`** — manager-only: move team through discussion → planning → execution → review with auto-instructions to all agents
|
|
16
|
+
- **Floor enforcement** — `send_message`, `broadcast`, `handoff`, and `share_file` all block non-floor-holders with actionable error messages
|
|
17
|
+
- **Auto-advance turns** — floor returns to manager after directed responses; round-robin advances to next alive agent automatically
|
|
18
|
+
- **Manager disconnect recovery** — heartbeat detects dead manager within 10-30s, notifies all agents to re-elect
|
|
19
|
+
- **Dead turn-holder detection** — heartbeat detects dead agents holding the floor and resets it
|
|
20
|
+
- **Managed mode in `listen_group()`** — returns `managed_context`, `should_respond`, and `instructions` to guide agent behavior
|
|
21
|
+
- **`managed` template** — 4-agent team (Manager, Designer, Coder, Tester) with structured prompts
|
|
22
|
+
- **`managed-team` conversation template** — dashboard-launchable version
|
|
23
|
+
- **Dashboard Docs tab** — in-dashboard documentation with full tool reference, managed mode guide, architecture, version history
|
|
24
|
+
- **Dashboard managed mode badge** — header shows current phase and floor status when managed mode is active
|
|
25
|
+
|
|
26
|
+
### Added — 3D World Improvements
|
|
27
|
+
|
|
28
|
+
- **Spectator camera** — free-fly WASD + mouse camera replacing OrbitControls, no distance limits, Shift for fast movement, Q/E up/down
|
|
29
|
+
- **6 new hairstyles** — curly, afro, bun, braids, mohawk, wavy
|
|
30
|
+
- **6 new eye styles** — surprised, angry, happy, wink, confident, tired
|
|
31
|
+
- **5 new mouth styles** — grin, frown, smirk, tongue, whistle
|
|
32
|
+
- **6 outfit types** — hoodie, suit, dress, lab coat, vest, jacket with color customization
|
|
33
|
+
- **3 body types** — default, stocky, slim (scale multipliers on torso/legs/arms)
|
|
34
|
+
- **5 gesture animations** — wave, think, point, celebrate, stretch with idle gesture system
|
|
35
|
+
- **New furniture** — bookshelf (random colored books), wall TV (animated dashboard with agent stats, scrolling ticker, clock), arcade machine (cabinet + screen + joystick + buttons), floor lamp (warm point light), area rug
|
|
36
|
+
- **Agent behavior** — realistic conversation distance (1.8m), listener turns toward speaker, broadcast triggers wave gesture, task completion triggers celebrate
|
|
37
|
+
- **3D Hub** — renamed from "Office", now default tab on page load
|
|
38
|
+
- **Speed slider** — camera speed control in toolbar (1-20)
|
|
39
|
+
|
|
40
|
+
### Added — 3D Virtual Office (v1 foundation from previous session)
|
|
41
|
+
|
|
42
|
+
- **Modular 3D engine** — 14 ES modules under `office/`
|
|
43
|
+
- **Expanded office** — 28x16 floor with right wing, dividing wall, LOUNGE archway
|
|
44
|
+
- **Dressing room** — mirror, raised platform, privacy partitions, coat hooks
|
|
45
|
+
- **Rest area** — beanbags, circular rug, side table, warm ambient lighting
|
|
46
|
+
- **Click-to-command** — Dressing Room, Go Rest, Back to Work, Edit Profile
|
|
47
|
+
- **Character designer** — 5-tab panel with live 3D rotating preview
|
|
48
|
+
- **Accessory system** — glasses, headwear, neckwear with color customization
|
|
49
|
+
- **Mod system infrastructure** — GLB/GLTF pipeline with validation
|
|
50
|
+
|
|
51
|
+
### Security
|
|
52
|
+
- **Config file lock** — `config.json` read-modify-write operations now use file-based locking (same pattern as `agents.json`)
|
|
53
|
+
- **Reserved name blocklist** — `__system__`, `__all__`, `__open__`, `__close__`, `system` cannot be registered as agent names
|
|
54
|
+
- **Mode change protection** — only the manager can switch away from managed mode
|
|
55
|
+
- **Floor enforcement on all message paths** — `handoff` and `share_file` now enforce managed mode floor control
|
|
56
|
+
- **Branch-aware system messages** — floor/phase notifications sent to recipient's branch, not sender's
|
|
57
|
+
- **Phase history cap** — limited to 50 entries to prevent config.json bloat
|
|
58
|
+
- `/office/*` and `/mods/*` static routes with path traversal protection
|
|
59
|
+
- Mod file type allowlist blocks all executable formats
|
|
60
|
+
- GLB magic bytes validation (server + client)
|
|
61
|
+
|
|
62
|
+
### Removed
|
|
63
|
+
- ~1,100 lines of dead 2D isometric office code
|
|
64
|
+
|
|
3
65
|
## [3.5.0] - 2026-03-15
|
|
4
66
|
|
|
5
67
|
### Added — Group Conversation Mode
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<strong>Multi-agent collaboration for AI CLI terminals.</strong><br>
|
|
9
|
-
Let your AI agents talk, delegate, review, and build together.
|
|
9
|
+
Let your AI agents talk, delegate, review, and build together — in a 3D virtual office.
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
Let Them Talk is an MCP server that connects multiple AI CLI terminals through a shared filesystem. Open Claude Code, Gemini CLI, or Codex CLI in separate terminals — they discover each other, exchange messages, share files, assign tasks, and coordinate through workflows. A real-time web dashboard lets you watch
|
|
30
|
+
Let Them Talk is an MCP server that connects multiple AI CLI terminals through a shared filesystem. Open Claude Code, Gemini CLI, or Codex CLI in separate terminals — they discover each other, exchange messages, share files, assign tasks, and coordinate through workflows. A real-time web dashboard with a **3D virtual office** lets you watch chibi agent characters walk between desks, wave during broadcasts, celebrate completed tasks, and sleep when idle.
|
|
31
31
|
|
|
32
32
|
If you want your AI agents to stop working in isolation and start collaborating like a team, this is it.
|
|
33
33
|
|
|
@@ -84,20 +84,19 @@ Each terminal spawns its own MCP server process. All processes share a `.agent-b
|
|
|
84
84
|
|
|
85
85
|
## Highlights
|
|
86
86
|
|
|
87
|
-
- **
|
|
88
|
-
- **
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
- **
|
|
87
|
+
- **3D virtual office** — chibi characters at desks, spectator camera (WASD+mouse), 11 hairstyles, 6 outfits, gestures, furniture, TV dashboard
|
|
88
|
+
- **Managed conversation mode** — structured turn-taking with floor control for 3+ agents, prevents broadcast storms
|
|
89
|
+
- **32 MCP tools** — messaging, tasks, workflows, profiles, workspaces, branching, managed mode
|
|
90
|
+
- **8-tab dashboard** — 3D Hub (default), messages, tasks, workspaces, workflows, launch, stats, docs
|
|
91
|
+
- **Group conversation mode** — free multi-agent collaboration with auto-broadcast and cooldown
|
|
92
|
+
- **5 agent templates** — pair, team, review, debate, managed — with ready-to-paste prompts
|
|
93
|
+
- **5 conversation templates** — Code Review, Debug Squad, Feature Dev, Research & Write, Managed Team
|
|
92
94
|
- **Stats & analytics** — per-agent scores, response times, hourly charts, conversation velocity
|
|
93
|
-
- **Conversation templates** — 4 built-in workflows (Code Review, Debug Squad, Feature Dev, Research & Write)
|
|
94
|
-
- **Message management** — edit, delete, copy messages with full edit history
|
|
95
95
|
- **Task management** — drag-and-drop kanban board between agents
|
|
96
96
|
- **Workflow pipelines** — multi-step automation with auto-handoff
|
|
97
|
-
- **Agent profiles** — display names, SVG avatars, roles, bios
|
|
98
97
|
- **Conversation branching** — fork at any point, isolated history per branch
|
|
99
|
-
- **
|
|
100
|
-
- **Secure by default** — CSRF, LAN auth tokens, CSP,
|
|
98
|
+
- **Ollama integration** — `npx let-them-talk init --ollama` for local AI models
|
|
99
|
+
- **Secure by default** — CSRF, LAN auth tokens, CSP, config locking, reserved name blocklist
|
|
101
100
|
- **Zero config** — one `npx` command, auto-detects your CLI, works immediately
|
|
102
101
|
|
|
103
102
|
## Agent Templates
|
|
@@ -105,11 +104,12 @@ Each terminal spawns its own MCP server process. All processes share a `.agent-b
|
|
|
105
104
|
Pre-built team configurations. Each template gives you ready-to-paste prompts for every terminal.
|
|
106
105
|
|
|
107
106
|
```bash
|
|
108
|
-
npx let-them-talk init --template pair
|
|
109
|
-
npx let-them-talk init --template team
|
|
110
|
-
npx let-them-talk init --template review
|
|
111
|
-
npx let-them-talk init --template debate
|
|
112
|
-
npx let-them-talk
|
|
107
|
+
npx let-them-talk init --template pair # A + B
|
|
108
|
+
npx let-them-talk init --template team # Coordinator + Researcher + Coder
|
|
109
|
+
npx let-them-talk init --template review # Author + Reviewer
|
|
110
|
+
npx let-them-talk init --template debate # Pro + Con
|
|
111
|
+
npx let-them-talk init --template managed # Manager + Designer + Coder + Tester
|
|
112
|
+
npx let-them-talk templates # List all available templates
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
| Template | Agents | Best For |
|
|
@@ -118,19 +118,22 @@ npx let-them-talk templates # List all available templates
|
|
|
118
118
|
| **team** | Coordinator, Researcher, Coder | Complex features needing research + implementation |
|
|
119
119
|
| **review** | Author, Reviewer | Code review with structured feedback loops |
|
|
120
120
|
| **debate** | Pro, Con | Evaluating trade-offs, architecture decisions |
|
|
121
|
+
| **managed** | Manager, Designer, Coder, Tester | Structured teams with floor control — no chaos with 3+ agents |
|
|
121
122
|
|
|
122
123
|
## Web Dashboard
|
|
123
124
|
|
|
124
125
|
Launch with `npx let-them-talk dashboard` — opens at `http://localhost:3000`.
|
|
125
126
|
|
|
126
|
-
**
|
|
127
|
+
**8 tabs:**
|
|
127
128
|
|
|
128
|
-
- **
|
|
129
|
+
- **3D Hub** — real-time 3D virtual office with chibi agent characters (default view)
|
|
130
|
+
- **Messages** — live feed with full markdown, search, bookmarks, pins, emoji reactions, replay
|
|
129
131
|
- **Tasks** — drag-and-drop kanban board (pending / in progress / done / blocked)
|
|
130
132
|
- **Workspaces** — per-agent key-value storage browser
|
|
131
133
|
- **Workflows** — horizontal pipeline visualization, advance or skip steps
|
|
132
|
-
- **Launch** — spawn new agents with templates,
|
|
134
|
+
- **Launch** — spawn new agents with templates, 5 conversation templates with copyable prompts
|
|
133
135
|
- **Stats** — per-agent message counts, avg response times, hourly activity charts, conversation velocity
|
|
136
|
+
- **Docs** — in-dashboard documentation with full tool reference and managed mode guide
|
|
134
137
|
|
|
135
138
|
**Plus:**
|
|
136
139
|
|
|
@@ -148,7 +151,31 @@ Launch with `npx let-them-talk dashboard` — opens at `http://localhost:3000`.
|
|
|
148
151
|
- Browser notifications and sound alerts
|
|
149
152
|
- LAN mode for phone access
|
|
150
153
|
|
|
151
|
-
##
|
|
154
|
+
## 3D Hub
|
|
155
|
+
|
|
156
|
+
The dashboard's default view is a **real-time 3D virtual office** (the "3D Hub") where AI agents come to life as chibi characters. Watch them walk to each other's desks to deliver messages, sit and type, wave during broadcasts, celebrate completed tasks, and sleep when idle.
|
|
157
|
+
|
|
158
|
+
**Office:**
|
|
159
|
+
- Expanded floor with desks, reception area, **dressing room** (mirror + platform), **rest area** (beanbags)
|
|
160
|
+
- Furniture: bookshelves, wall-mounted TV (animated dashboard with agent stats + ticker), arcade machine, floor lamps, area rugs
|
|
161
|
+
- Real-time terminal screens on each desk showing agent status and recent messages
|
|
162
|
+
|
|
163
|
+
**Characters:**
|
|
164
|
+
- 11 hair styles (short, spiky, long, ponytail, bob, curly, afro, bun, braids, mohawk, wavy)
|
|
165
|
+
- 10 eye styles (dots, anime, glasses, sleepy, surprised, angry, happy, wink, confident, tired)
|
|
166
|
+
- 8 mouth styles (smile, neutral, open, grin, frown, smirk, tongue, whistle)
|
|
167
|
+
- 6 outfit types (hoodie, suit, dress, lab coat, vest, jacket)
|
|
168
|
+
- 3 body types (default, stocky, slim)
|
|
169
|
+
- Accessories: glasses, headwear, neckwear with color customization
|
|
170
|
+
|
|
171
|
+
**Interactions:**
|
|
172
|
+
- Click any agent → command menu (Dressing Room, Go Rest, Back to Work, Edit Profile)
|
|
173
|
+
- Character designer: 5-tab panel with live 3D preview, color pickers, randomize
|
|
174
|
+
- Free-fly spectator camera: WASD + mouse, Q/E up/down, Shift for speed, scroll to dolly, speed slider in toolbar
|
|
175
|
+
|
|
176
|
+
**Animations:** walk, sit, type, raise hand, sleep (ZZZ), wave, think, point, celebrate, stretch, idle gestures. Agents turn toward speakers during conversations.
|
|
177
|
+
|
|
178
|
+
## MCP Tools (32)
|
|
152
179
|
|
|
153
180
|
<details>
|
|
154
181
|
<summary><strong>Messaging (13 tools)</strong></summary>
|
|
@@ -208,6 +235,20 @@ Launch with `npx let-them-talk dashboard` — opens at `http://localhost:3000`.
|
|
|
208
235
|
|
|
209
236
|
</details>
|
|
210
237
|
|
|
238
|
+
<details>
|
|
239
|
+
<summary><strong>Conversation Modes (6 tools)</strong></summary>
|
|
240
|
+
|
|
241
|
+
| Tool | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `set_conversation_mode` | Switch between "direct", "group", or "managed" |
|
|
244
|
+
| `listen_group` | Batch receiver for group/managed mode with context + hints |
|
|
245
|
+
| `listen_codex` | Codex CLI compatible listen — returns after 90s with retry flag |
|
|
246
|
+
| `claim_manager` | Claim the manager role in managed mode |
|
|
247
|
+
| `yield_floor` | Manager-only: give an agent permission to speak |
|
|
248
|
+
| `set_phase` | Manager-only: set team phase (discussion/planning/execution/review) |
|
|
249
|
+
|
|
250
|
+
</details>
|
|
251
|
+
|
|
211
252
|
## CLI Reference
|
|
212
253
|
|
|
213
254
|
```bash
|
package/cli.js
CHANGED
|
@@ -9,7 +9,7 @@ const command = process.argv[2];
|
|
|
9
9
|
|
|
10
10
|
function printUsage() {
|
|
11
11
|
console.log(`
|
|
12
|
-
Let Them Talk — Agent Bridge v3.
|
|
12
|
+
Let Them Talk — Agent Bridge v3.6.1
|
|
13
13
|
MCP message broker for inter-agent communication
|
|
14
14
|
Supports: Claude Code, Gemini CLI, Codex CLI, Ollama
|
|
15
15
|
|
|
@@ -88,6 +88,7 @@ function setupClaude(serverPath, cwd) {
|
|
|
88
88
|
mcpConfig.mcpServers['agent-bridge'] = {
|
|
89
89
|
command: 'node',
|
|
90
90
|
args: [serverPath],
|
|
91
|
+
timeout: 300,
|
|
91
92
|
env: { AGENT_BRIDGE_DATA_DIR: dataDir(cwd) },
|
|
92
93
|
};
|
|
93
94
|
|
|
@@ -120,6 +121,8 @@ function setupGemini(serverPath, cwd) {
|
|
|
120
121
|
settings.mcpServers['agent-bridge'] = {
|
|
121
122
|
command: 'node',
|
|
122
123
|
args: [serverPath],
|
|
124
|
+
timeout: 300,
|
|
125
|
+
trust: true,
|
|
123
126
|
env: { AGENT_BRIDGE_DATA_DIR: dataDir(cwd) },
|
|
124
127
|
};
|
|
125
128
|
|
|
@@ -148,6 +151,7 @@ function setupCodex(serverPath, cwd) {
|
|
|
148
151
|
[mcp_servers.agent-bridge]
|
|
149
152
|
command = "node"
|
|
150
153
|
args = [${JSON.stringify(serverPath)}]
|
|
154
|
+
timeout = 300
|
|
151
155
|
|
|
152
156
|
[mcp_servers.agent-bridge.env]
|
|
153
157
|
AGENT_BRIDGE_DATA_DIR = ${JSON.stringify(dataDir(cwd))}
|
|
@@ -339,18 +343,21 @@ function init() {
|
|
|
339
343
|
}
|
|
340
344
|
}
|
|
341
345
|
|
|
342
|
-
// Add .agent-bridge/ to .gitignore
|
|
346
|
+
// Add .agent-bridge/ and MCP config files to .gitignore
|
|
347
|
+
const gitignoreEntries = ['.agent-bridge/', '.mcp.json', '.codex/', '.gemini/'];
|
|
343
348
|
if (fs.existsSync(gitignorePath)) {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
349
|
+
let content = fs.readFileSync(gitignorePath, 'utf8');
|
|
350
|
+
const missing = gitignoreEntries.filter(e => !content.includes(e));
|
|
351
|
+
if (missing.length) {
|
|
352
|
+
content += '\n# Agent Bridge (auto-added by let-them-talk init)\n' + missing.join('\n') + '\n';
|
|
353
|
+
fs.writeFileSync(gitignorePath, content);
|
|
354
|
+
console.log(' [ok] Added to .gitignore: ' + missing.join(', '));
|
|
348
355
|
} else {
|
|
349
|
-
console.log(' [ok] .
|
|
356
|
+
console.log(' [ok] .gitignore already configured');
|
|
350
357
|
}
|
|
351
358
|
} else {
|
|
352
|
-
fs.writeFileSync(gitignorePath, '# Agent Bridge
|
|
353
|
-
console.log(' [ok] .gitignore created
|
|
359
|
+
fs.writeFileSync(gitignorePath, '# Agent Bridge (auto-added by let-them-talk init)\n' + gitignoreEntries.join('\n') + '\n');
|
|
360
|
+
console.log(' [ok] .gitignore created');
|
|
354
361
|
}
|
|
355
362
|
|
|
356
363
|
console.log('');
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "managed-team",
|
|
3
|
+
"name": "Managed Team",
|
|
4
|
+
"description": "Structured team with a Manager who controls who speaks. Prevents chaos with 3+ agents using floor control and phases.",
|
|
5
|
+
"agents": [
|
|
6
|
+
{ "name": "Manager", "role": "Team Lead", "prompt": "You are the Manager. After registering: 1) set_conversation_mode('managed'), 2) claim_manager(), 3) use yield_floor() to let agents speak one at a time, 4) use set_phase() to move through discussion → planning → execution → review." },
|
|
7
|
+
{ "name": "Designer", "role": "Architect", "prompt": "You are the Designer. Register, then call listen(). Only speak when given the floor by the Manager. Focus on architecture and design." },
|
|
8
|
+
{ "name": "Coder", "role": "Developer", "prompt": "You are the Coder. Register, then call listen(). Only speak when given the floor by the Manager. Focus on implementation." },
|
|
9
|
+
{ "name": "Tester", "role": "QA Engineer", "prompt": "You are the Tester. Register, then call listen(). Only speak when given the floor by the Manager. Focus on testing and quality." }
|
|
10
|
+
],
|
|
11
|
+
"workflow": { "name": "Managed Development", "steps": ["Discussion", "Planning", "Execution", "Review"] }
|
|
12
|
+
}
|