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 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.3
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 · plugins
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, plugins
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
- - **Plugin system** — extend with custom tools, 30s sandboxed execution
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 + plugins)
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 plugin <subcommand> # manage plugins
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), plugin sandboxing (30s timeout).
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.3
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.3</span>
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
- // Restrict to paths under cwd or paths that look like project directories
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.3');
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "let-them-talk",
3
- "version": "3.4.3",
3
+ "version": "3.4.4",
4
4
  "description": "MCP message broker + web dashboard for inter-agent communication. Let AI CLI agents talk to each other.",
5
5
  "main": "server.js",
6
6
  "bin": {
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.0.0' },
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.3 running (27 tools)');
1997
+ console.error('Agent Bridge MCP server v3.4.4 running (27 tools)');
1998
1998
  }
1999
1999
 
2000
2000
  main().catch(console.error);