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 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 everything unfold, inject messages, and manage the conversation.
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
- - **29 MCP tools** — messaging, tasks, workflows, profiles, workspaces, branching, group chat
88
- - **Group conversation mode** — free multi-agent collaboration with auto-broadcast, stagger delays, and cooldown
89
- - **Premium dashboard** — glassmorphism UI, notifications panel, agent leaderboard, cross-project search
90
- - **Animated replay export** — export conversations as self-playing HTML with typing animations
91
- - **Ollama integration** — `npx let-them-talk init --ollama` for local AI models
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
- - **Multi-format export** — HTML, Markdown, JSON, and animated replay
100
- - **Secure by default** — CSRF, LAN auth tokens, CSP, permissions, registration locking
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 # A + B
109
- npx let-them-talk init --template team # Coordinator + Researcher + Coder
110
- npx let-them-talk init --template review # Author + Reviewer
111
- npx let-them-talk init --template debate # Pro + Con
112
- npx let-them-talk templates # List all available templates
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
- **6 main tabs:**
127
+ **8 tabs:**
127
128
 
128
- - **Messages** — live feed with full markdown, message grouping, search, bookmarks, pins, emoji reactions, conversation replay, compact view
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, 4 built-in conversation templates with copyable prompts
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
- ## MCP Tools (27)
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.5.1
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
- const content = fs.readFileSync(gitignorePath, 'utf8');
345
- if (!content.includes('.agent-bridge')) {
346
- fs.appendFileSync(gitignorePath, '\n# Agent Bridge conversation data\n.agent-bridge/\n');
347
- console.log(' [ok] .agent-bridge/ added to .gitignore');
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] .agent-bridge/ already in .gitignore');
356
+ console.log(' [ok] .gitignore already configured');
350
357
  }
351
358
  } else {
352
- fs.writeFileSync(gitignorePath, '# Agent Bridge conversation data\n.agent-bridge/\n');
353
- console.log(' [ok] .gitignore created with .agent-bridge/');
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
+ }