let-them-talk 3.4.3 → 3.4.4
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 +10 -0
- package/LICENSE +1 -1
- package/README.md +7 -38
- package/cli.js +12 -3
- package/dashboard.html +1 -1
- package/dashboard.js +2 -10
- package/package.json +1 -1
- package/server.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.4.4] - 2026-03-15
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Add project now accepts any existing directory (removed requirement for package.json or .git)
|
|
7
|
+
- Init safely backs up corrupted .mcp.json and settings.json before overwriting
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Removed plugin references from website and docs
|
|
11
|
+
- Website updated with security features (LAN auth token, CSRF, CSP)
|
|
12
|
+
|
|
3
13
|
## [3.4.3] - 2026-03-15
|
|
4
14
|
|
|
5
15
|
### Removed — Plugin System
|
package/LICENSE
CHANGED
|
@@ -6,7 +6,7 @@ License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
|
6
6
|
Parameters
|
|
7
7
|
|
|
8
8
|
Licensor: Dekelelz
|
|
9
|
-
Licensed Work: Let Them Talk v3.4.
|
|
9
|
+
Licensed Work: Let Them Talk v3.4.4
|
|
10
10
|
The Licensed Work is (c) 2024-2026 Dekelelz.
|
|
11
11
|
Additional Use Grant: You may make use of the Licensed Work, provided that
|
|
12
12
|
you may not use the Licensed Work for a Commercial
|
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ Run `npx let-them-talk init --all` to configure all three at once.
|
|
|
72
72
|
| | |
|
|
73
73
|
+----------- .agent-bridge/ directory ----------+
|
|
74
74
|
messages · agents · tasks
|
|
75
|
-
profiles · workflows ·
|
|
75
|
+
profiles · workflows · permissions
|
|
76
76
|
|
|
|
77
77
|
v
|
|
78
78
|
Web Dashboard :3000
|
|
@@ -84,7 +84,7 @@ Each terminal spawns its own MCP server process. All processes share a `.agent-b
|
|
|
84
84
|
|
|
85
85
|
## Highlights
|
|
86
86
|
|
|
87
|
-
- **27 MCP tools** — messaging, tasks, workflows, profiles, workspaces, branching
|
|
87
|
+
- **27 MCP tools** — messaging, tasks, workflows, profiles, workspaces, branching
|
|
88
88
|
- **Premium dashboard** — glassmorphism UI, Inter font, gradient accents, SSE real-time (~200ms)
|
|
89
89
|
- **Stats & analytics** — per-agent message counts, response times, hourly activity charts, velocity
|
|
90
90
|
- **Conversation templates** — 4 built-in multi-agent workflows (Code Review, Debug Squad, Feature Dev, Research & Write)
|
|
@@ -96,7 +96,7 @@ Each terminal spawns its own MCP server process. All processes share a `.agent-b
|
|
|
96
96
|
- **Compact view** — dense message toggle for power users, persists to localStorage
|
|
97
97
|
- **Multi-format export** — HTML, Markdown, and JSON export
|
|
98
98
|
- **CLI tools** — send messages and check status directly from the command line
|
|
99
|
-
- **
|
|
99
|
+
- **Secure by default** — CSRF protection, LAN auth tokens, Content Security Policy, agent permissions
|
|
100
100
|
- **Zero config** — one `npx` command, auto-detects your CLI, works immediately
|
|
101
101
|
|
|
102
102
|
## Agent Templates
|
|
@@ -147,7 +147,7 @@ Launch with `npx let-them-talk dashboard` — opens at `http://localhost:3000`.
|
|
|
147
147
|
- Browser notifications and sound alerts
|
|
148
148
|
- LAN mode for phone access
|
|
149
149
|
|
|
150
|
-
## MCP Tools (27
|
|
150
|
+
## MCP Tools (27)
|
|
151
151
|
|
|
152
152
|
<details>
|
|
153
153
|
<summary><strong>Messaging (13 tools)</strong></summary>
|
|
@@ -207,38 +207,6 @@ Launch with `npx let-them-talk dashboard` — opens at `http://localhost:3000`.
|
|
|
207
207
|
|
|
208
208
|
</details>
|
|
209
209
|
|
|
210
|
-
## Plugins
|
|
211
|
-
|
|
212
|
-
Extend Let Them Talk with custom tools. Drop a `.js` file in `.agent-bridge/plugins/`.
|
|
213
|
-
|
|
214
|
-
```javascript
|
|
215
|
-
module.exports = {
|
|
216
|
-
name: 'my-tool',
|
|
217
|
-
description: 'What this tool does',
|
|
218
|
-
inputSchema: {
|
|
219
|
-
type: 'object',
|
|
220
|
-
properties: {
|
|
221
|
-
query: { type: 'string', description: 'Input text' }
|
|
222
|
-
},
|
|
223
|
-
required: ['query']
|
|
224
|
-
},
|
|
225
|
-
handler(args, ctx) {
|
|
226
|
-
// ctx: sendMessage, getAgents, getHistory, readFile, registeredName, dataDir
|
|
227
|
-
return { result: 'done', query: args.query };
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
npx let-them-talk plugin add my-tool.js # install
|
|
234
|
-
npx let-them-talk plugin list # list installed
|
|
235
|
-
npx let-them-talk plugin remove my-tool # remove
|
|
236
|
-
npx let-them-talk plugin enable my-tool # enable
|
|
237
|
-
npx let-them-talk plugin disable my-tool # disable
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Plugins run sandboxed with a 30-second timeout. Manage via CLI or dashboard.
|
|
241
|
-
|
|
242
210
|
## CLI Reference
|
|
243
211
|
|
|
244
212
|
```bash
|
|
@@ -248,7 +216,8 @@ npx let-them-talk init --template <name> # use a team template
|
|
|
248
216
|
npx let-them-talk templates # list templates
|
|
249
217
|
npx let-them-talk dashboard # launch web dashboard
|
|
250
218
|
npx let-them-talk reset # clear conversation data
|
|
251
|
-
npx let-them-talk
|
|
219
|
+
npx let-them-talk msg <agent> <text> # send a message from CLI
|
|
220
|
+
npx let-them-talk status # show active agents
|
|
252
221
|
npx let-them-talk help # show help
|
|
253
222
|
```
|
|
254
223
|
|
|
@@ -268,7 +237,7 @@ Let Them Talk is a **local message broker**. It passes text messages between CLI
|
|
|
268
237
|
|
|
269
238
|
**Does not:** access the internet, store API keys, run cloud services, or grant new filesystem access.
|
|
270
239
|
|
|
271
|
-
**Built-in protections:** CORS restriction, XSS prevention, path traversal protection, symlink validation, origin enforcement, SSE connection limits, input validation, message size limits (1MB),
|
|
240
|
+
**Built-in protections:** CSRF custom header, LAN auth tokens, Content Security Policy, CORS restriction, XSS prevention, path traversal protection, symlink validation, origin enforcement, SSE connection limits, input validation, message size limits (1MB), agent permissions.
|
|
272
241
|
|
|
273
242
|
**LAN mode:** Optional phone access exposes the dashboard to your local WiFi only. Requires explicit activation.
|
|
274
243
|
|
package/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ const command = process.argv[2];
|
|
|
8
8
|
|
|
9
9
|
function printUsage() {
|
|
10
10
|
console.log(`
|
|
11
|
-
Let Them Talk — Agent Bridge v3.4.
|
|
11
|
+
Let Them Talk — Agent Bridge v3.4.4
|
|
12
12
|
MCP message broker for inter-agent communication
|
|
13
13
|
Supports: Claude Code, Gemini CLI, Codex CLI
|
|
14
14
|
|
|
@@ -65,7 +65,12 @@ function setupClaude(serverPath, cwd) {
|
|
|
65
65
|
try {
|
|
66
66
|
mcpConfig = JSON.parse(fs.readFileSync(mcpConfigPath, 'utf8'));
|
|
67
67
|
if (!mcpConfig.mcpServers) mcpConfig.mcpServers = {};
|
|
68
|
-
} catch {
|
|
68
|
+
} catch {
|
|
69
|
+
// Backup corrupted file before overwriting
|
|
70
|
+
const backup = mcpConfigPath + '.backup';
|
|
71
|
+
fs.copyFileSync(mcpConfigPath, backup);
|
|
72
|
+
console.log(' [warn] Existing .mcp.json was invalid — backed up to .mcp.json.backup');
|
|
73
|
+
}
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
mcpConfig.mcpServers['agent-bridge'] = {
|
|
@@ -93,7 +98,11 @@ function setupGemini(serverPath, cwd) {
|
|
|
93
98
|
try {
|
|
94
99
|
settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
|
|
95
100
|
if (!settings.mcpServers) settings.mcpServers = {};
|
|
96
|
-
} catch {
|
|
101
|
+
} catch {
|
|
102
|
+
const backup = settingsPath + '.backup';
|
|
103
|
+
fs.copyFileSync(settingsPath, backup);
|
|
104
|
+
console.log(' [warn] Existing settings.json was invalid — backed up to settings.json.backup');
|
|
105
|
+
}
|
|
97
106
|
}
|
|
98
107
|
|
|
99
108
|
settings.mcpServers['agent-bridge'] = {
|
package/dashboard.html
CHANGED
|
@@ -2778,7 +2778,7 @@
|
|
|
2778
2778
|
</div>
|
|
2779
2779
|
</div>
|
|
2780
2780
|
<div class="app-footer">
|
|
2781
|
-
<span>Let Them Talk v3.4.
|
|
2781
|
+
<span>Let Them Talk v3.4.4</span>
|
|
2782
2782
|
</div>
|
|
2783
2783
|
<div class="profile-popup" id="profile-popup" onclick="event.stopPropagation()">
|
|
2784
2784
|
<div class="profile-popup-header">
|
package/dashboard.js
CHANGED
|
@@ -412,15 +412,7 @@ function apiAddProject(body) {
|
|
|
412
412
|
const absPath = path.resolve(body.path);
|
|
413
413
|
if (!fs.existsSync(absPath)) return { error: `Path does not exist: ${absPath}` };
|
|
414
414
|
|
|
415
|
-
//
|
|
416
|
-
const cwd = path.resolve(process.cwd());
|
|
417
|
-
if (!absPath.startsWith(cwd + path.sep) && absPath !== cwd) {
|
|
418
|
-
const hasProject = fs.existsSync(path.join(absPath, 'package.json')) ||
|
|
419
|
-
fs.existsSync(path.join(absPath, '.git'));
|
|
420
|
-
if (!hasProject) {
|
|
421
|
-
return { error: 'Path must be a project directory (with package.json or .git)' };
|
|
422
|
-
}
|
|
423
|
-
}
|
|
415
|
+
// Any existing directory can be added as a project — user explicitly chose it
|
|
424
416
|
|
|
425
417
|
const projects = getProjects();
|
|
426
418
|
const name = body.name || path.basename(absPath);
|
|
@@ -1480,7 +1472,7 @@ server.listen(PORT, LAN_MODE ? '0.0.0.0' : '127.0.0.1', () => {
|
|
|
1480
1472
|
const dataDir = resolveDataDir();
|
|
1481
1473
|
const lanIP = getLanIP();
|
|
1482
1474
|
console.log('');
|
|
1483
|
-
console.log(' Let Them Talk - Agent Bridge Dashboard v3.4.
|
|
1475
|
+
console.log(' Let Them Talk - Agent Bridge Dashboard v3.4.4');
|
|
1484
1476
|
console.log(' ============================================');
|
|
1485
1477
|
console.log(' Dashboard: http://localhost:' + PORT);
|
|
1486
1478
|
if (LAN_MODE && lanIP) {
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -1480,7 +1480,7 @@ function toolListBranches() {
|
|
|
1480
1480
|
// --- MCP Server setup ---
|
|
1481
1481
|
|
|
1482
1482
|
const server = new Server(
|
|
1483
|
-
{ name: 'agent-bridge', version: '3.
|
|
1483
|
+
{ name: 'agent-bridge', version: '3.4.4' },
|
|
1484
1484
|
{ capabilities: { tools: {} } }
|
|
1485
1485
|
);
|
|
1486
1486
|
|
|
@@ -1994,7 +1994,7 @@ async function main() {
|
|
|
1994
1994
|
ensureDataDir();
|
|
1995
1995
|
const transport = new StdioServerTransport();
|
|
1996
1996
|
await server.connect(transport);
|
|
1997
|
-
console.error('Agent Bridge MCP server v3.4.
|
|
1997
|
+
console.error('Agent Bridge MCP server v3.4.4 running (27 tools)');
|
|
1998
1998
|
}
|
|
1999
1999
|
|
|
2000
2000
|
main().catch(console.error);
|