let-them-talk 3.3.0 → 3.3.2

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 ADDED
@@ -0,0 +1,131 @@
1
+ # Changelog
2
+
3
+ ## [3.3.1] - 2026-03-14
4
+
5
+ ### Changed
6
+ - License changed from MIT to Business Source License 1.1 (BSL)
7
+ - Added SECURITY.md with vulnerability disclosure policy
8
+ - Added CHANGELOG.md to published npm package
9
+ - Added .npmignore for cleaner package distribution
10
+ - Version synced across all files (server, CLI, dashboard)
11
+
12
+ ## [3.0.0] - 2026-03-14
13
+
14
+ ### Added — Agent Profiles
15
+ - New tool: `update_profile` (display_name, avatar, bio, role)
16
+ - 12 built-in SVG robot avatar icons with hash-based defaults
17
+ - Profiles auto-created on register, persist across restarts
18
+ - Profile data shown in dashboard (avatars, role badges, profile popup)
19
+
20
+ ### Added — Agent Workspaces
21
+ - 3 new tools: `workspace_write`, `workspace_read`, `workspace_list`
22
+ - Per-agent key-value storage (50 keys max, 100KB per value)
23
+ - Agents can read anyone's workspace, write only their own
24
+ - Dashboard "Workspaces" tab with collapsible accordion UI
25
+
26
+ ### Added — Workflow Automation
27
+ - 3 new tools: `create_workflow`, `advance_workflow`, `workflow_status`
28
+ - Multi-step pipelines with auto-handoff to step assignees
29
+ - Dashboard "Workflows" tab with horizontal pipeline visualization
30
+ - Dashboard can advance/skip workflow steps
31
+
32
+ ### Added — Conversation Branching
33
+ - 3 new tools: `fork_conversation`, `switch_branch`, `list_branches`
34
+ - Fork at any message point with isolated branch history
35
+ - All message tools branch-aware (backward compatible — main branch uses existing files)
36
+ - Branch tabs in dashboard
37
+
38
+ ### Added — Plugin System
39
+ - Dynamic tool loading from `plugins/*.js` files
40
+ - Sandboxed execution with 30s timeout
41
+ - CLI: `npx let-them-talk plugin add/list/remove/enable/disable`
42
+ - Dashboard plugin cards with enable/disable toggles
43
+
44
+ ### Changed
45
+ - MCP tools: 17 → 27 + dynamic plugins
46
+ - Dashboard tabs: 2 → 4 (Messages, Tasks, Workspaces, Workflows)
47
+ - Branch-aware history API (`?branch=` query param)
48
+ - Version bump across all files (server, dashboard, CLI, package.json)
49
+
50
+ ## [2.5.0] - 2026-03-14
51
+
52
+ ### Added
53
+ - Task management system: `create_task`, `update_task`, `list_tasks` tools
54
+ - Kanban board in dashboard (Messages/Tasks toggle)
55
+ - Agent stats panel (sent/received/avg response time per agent)
56
+ - Shareable HTML export (/api/export endpoint)
57
+ - Export dropdown (HTML + Markdown formats)
58
+ - Conversation bookmarks (star messages, localStorage)
59
+ - Sound notification toggle (Web Audio API)
60
+ - Typing indicator for processing agents
61
+ - Connection quality display (SSE latency)
62
+ - Date separators between message groups
63
+ - Message grouping for consecutive same-sender messages
64
+ - Project auto-discover (scan nearby folders)
65
+ - Copy-to-clipboard prompts in onboarding
66
+ - Dynamic tab title with message count
67
+ - Dashboard footer with version
68
+
69
+ ### Security
70
+ - Path traversal fix in `share_file` (restricted to project dir)
71
+ - Path traversal fix in `?project=` param (validate against registered projects)
72
+ - 1MB message size limit on send/broadcast/handoff
73
+ - 1MB request body limit on dashboard POST endpoints
74
+ - XSS fix in HTML export (escape agent names)
75
+ - CORS restricted to localhost only (was wildcard)
76
+ - Dashboard binds to 127.0.0.1 only (was 0.0.0.0)
77
+ - Registration guard on `reset` tool
78
+ - Removed absolute file paths from share_file responses
79
+
80
+ ## [2.3.0] - 2026-03-14
81
+
82
+ ### Added
83
+ - `handoff` tool for structured work delegation
84
+ - `share_file` tool for sending file contents between agents
85
+ - `broadcast` tool for messaging all agents at once
86
+ - `get_summary` tool for conversation recaps
87
+ - Server-Sent Events for real-time dashboard updates
88
+ - `fs.watch()` on data directory with debounced SSE push
89
+ - Graceful SSE fallback to polling
90
+ - Handoff message rendering (purple banner)
91
+ - File share message rendering (file icon + size)
92
+
93
+ ## [2.1.0] - 2026-03-14
94
+
95
+ ### Added
96
+ - Multi-agent support (any name, not just A/B)
97
+ - `list_agents` tool with alive/dead status
98
+ - `listen` tool (blocks indefinitely, never times out)
99
+ - Conversation threading (`reply_to` + auto `thread_id`)
100
+ - Message acknowledgments (`ack_message` tool)
101
+ - Heartbeat system (10s interval, `last_activity` tracking)
102
+ - Agent status: active/sleeping/dead with idle time
103
+ - Listening status tracking (`listening_since`)
104
+ - Auto-compact messages.jsonl when >500 lines
105
+ - Auto-archive conversations before reset
106
+ - Context hints when conversation exceeds 50 messages
107
+ - Dead recipient warnings in `send_message`
108
+ - Message sequence numbers for ordering
109
+ - `pending_count` and `agents_online` in delivery responses
110
+ - 4 agent templates: pair, team, review, debate
111
+ - CLI: `npx let-them-talk templates` command
112
+ - CLI: `--template` flag for guided setup
113
+ - Multi-CLI support: Claude Code, Gemini CLI, Codex CLI
114
+ - `AGENT_BRIDGE_DATA_DIR` env var in MCP config
115
+
116
+ ### Fixed
117
+ - Heartbeat timer `.unref()` to prevent zombie processes
118
+ - Process exit cleanup (deregister agent on exit)
119
+ - Re-registration cleanup (old name removed)
120
+ - Stale byte offset recovery on file truncation
121
+
122
+ ## [2.0.0] - 2026-03-14
123
+
124
+ ### Added
125
+ - Initial release
126
+ - MCP server with stdio transport
127
+ - 6 tools: register, send_message, wait_for_reply, check_messages, get_history, reset
128
+ - Web dashboard with real-time monitoring
129
+ - Message injection from dashboard
130
+ - Dark theme UI with markdown rendering
131
+ - `.mcp.json` project-level configuration
package/LICENSE CHANGED
@@ -1,21 +1,75 @@
1
- MIT License
2
-
3
- Copyright (c) 2024-2026 Dekelelz
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.
1
+ Business Source License 1.1
2
+
3
+ License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
4
+ "Business Source License" is a trademark of MariaDB Corporation Ab.
5
+
6
+ Parameters
7
+
8
+ Licensor: Dekelelz
9
+ Licensed Work: Let Them Talk v3.3.1
10
+ The Licensed Work is (c) 2024-2026 Dekelelz.
11
+ Additional Use Grant: You may make use of the Licensed Work, provided that
12
+ you may not use the Licensed Work for a Commercial
13
+ Hosted Service. A "Commercial Hosted Service" is a
14
+ service offered to third parties on a hosted or
15
+ managed basis that provides substantially the same
16
+ functionality as the Licensed Work, or any modified
17
+ version thereof, as a commercial offering.
18
+
19
+ For clarity, the following uses are always permitted:
20
+ - Self-hosting for personal or internal business use
21
+ - Using as a development tool in any project
22
+ - Integrating into non-competing products
23
+ - Academic and research use
24
+ - Non-commercial use of any kind
25
+
26
+ Change Date: 2028-03-14
27
+ Change License: Apache License, Version 2.0
28
+
29
+ For information about alternative licensing arrangements for the Licensed Work,
30
+ please contact: dekelelz@gmail.com
31
+
32
+ Notice
33
+
34
+ Business Source License 1.1
35
+
36
+ Terms
37
+
38
+ The Licensor hereby grants you the right to copy, modify, create derivative
39
+ works, redistribute, and make non-production use of the Licensed Work. The
40
+ Licensor may make an Additional Use Grant, above, permitting limited production
41
+ use.
42
+
43
+ Effective on the Change Date, or the fourth anniversary of the first publicly
44
+ available distribution of a specific version of the Licensed Work under this
45
+ License, whichever comes first, the Licensor hereby grants you rights under the
46
+ terms of the Change License, and the rights granted in the paragraph above
47
+ terminate.
48
+
49
+ If your use of the Licensed Work does not comply with the requirements currently
50
+ in effect as described in this License, you must purchase a commercial license
51
+ from the Licensor, its affiliated entities, or authorized resellers, or you must
52
+ refrain from using the Licensed Work.
53
+
54
+ All copies of the original and modified Licensed Work, and derivative works of
55
+ the Licensed Work, are subject to this License. This License applies separately
56
+ for each version of the Licensed Work and the Change Date may vary for each
57
+ version of the Licensed Work released by Licensor.
58
+
59
+ You must conspicuously display this License on each original or modified copy of
60
+ the Licensed Work. If you receive the Licensed Work in original or modified form
61
+ from a third party, the terms and conditions set forth in this License apply to
62
+ your use of that work.
63
+
64
+ Any use of the Licensed Work in violation of this License will automatically
65
+ terminate your rights under this License for the current and all other versions
66
+ of the Licensed Work.
67
+
68
+ This License does not grant you any right in any trademark or logo of Licensor
69
+ or its affiliates (provided that you may use a trademark or logo of Licensor as
70
+ expressly required by this License).
71
+
72
+ TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
73
+ "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
74
+ OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY,
75
+ FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Let Them Talk
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/let-them-talk.svg)](https://www.npmjs.com/package/let-them-talk)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
+ [![License: BSL 1.1](https://img.shields.io/badge/License-BSL%201.1-orange.svg)](https://github.com/Dekelelz/let-them-talk/blob/master/LICENSE)
5
+ [![Discord](https://img.shields.io/discord/1482478651000885359?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/6Y9YgkFNJP)
5
6
 
6
7
  **MCP server + web dashboard that lets AI CLI agents talk to each other.**
7
8
 
@@ -239,4 +240,4 @@ Plugins run with full Node.js access. Only install plugins you trust. This is th
239
240
 
240
241
  ## License
241
242
 
242
- MIT
243
+ [Business Source License 1.1](LICENSE) — Free to use, self-host, and modify. Cannot be offered as a competing commercial hosted service. Converts to Apache 2.0 on March 14, 2028.
package/SECURITY.md ADDED
@@ -0,0 +1,58 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ | ------- | ------------------ |
7
+ | 3.x.x | Yes |
8
+ | 2.x.x | No |
9
+ | < 2.0 | No |
10
+
11
+ ## Reporting a Vulnerability
12
+
13
+ If you discover a security vulnerability in Let Them Talk, please report it responsibly.
14
+
15
+ **Do NOT open a public GitHub issue for security vulnerabilities.**
16
+
17
+ Instead, please email **security@dos-technology.com** or use [GitHub's private vulnerability reporting](https://github.com/Dekelelz/let-them-talk/security/advisories/new).
18
+
19
+ ### What to include
20
+
21
+ - Description of the vulnerability
22
+ - Steps to reproduce
23
+ - Potential impact
24
+ - Suggested fix (if any)
25
+
26
+ ### Response timeline
27
+
28
+ - **Acknowledgment**: Within 48 hours
29
+ - **Initial assessment**: Within 1 week
30
+ - **Fix release**: As soon as possible, typically within 2 weeks
31
+
32
+ ## Security Model
33
+
34
+ Let Them Talk is a **local message broker** — it passes text messages between CLI terminals via shared files on your local machine.
35
+
36
+ ### What it does NOT do
37
+
38
+ - Does not give agents filesystem access (they already have it via their CLI)
39
+ - Does not expose anything to the internet (dashboard binds to `127.0.0.1` only)
40
+ - Does not store or transmit API keys
41
+ - Does not run any cloud services
42
+ - Does not execute remote code
43
+
44
+ ### Built-in protections
45
+
46
+ - **CORS restriction** — dashboard only accepts requests from localhost
47
+ - **XSS prevention** — all user inputs are escaped before rendering
48
+ - **Path traversal protection** — agents cannot read files outside the project directory
49
+ - **Symlink protection** — follows symlinks and validates the real path
50
+ - **Origin enforcement** — POST/DELETE requests require valid localhost origin
51
+ - **SSE connection limits** — prevents connection exhaustion
52
+ - **Input validation** — agent names, branch names, and file paths are validated
53
+ - **Message size limits** — 1MB max per message
54
+ - **Plugin sandboxing** — plugins run with a 30-second timeout
55
+
56
+ ### LAN mode
57
+
58
+ When using `--lan` mode, the dashboard is exposed to your local network only. It is never accessible from the internet.
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.2.0
11
+ Let Them Talk — Agent Bridge v3.3.1
12
12
  MCP message broker for inter-agent communication
13
13
  Supports: Claude Code, Gemini CLI, Codex CLI
14
14
 
package/dashboard.html CHANGED
@@ -2308,6 +2308,7 @@
2308
2308
  <button class="mobile-toggle" onclick="toggleSidebar()" aria-label="Menu">&#9776;</button>
2309
2309
  <img src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect rx='20' width='100' height='100' fill='%230d1117'/><path d='M20 30 Q20 20 30 20 H70 Q80 20 80 30 V55 Q80 65 70 65 H55 L40 80 V65 H30 Q20 65 20 55Z' fill='%2358a6ff'/><circle cx='38' cy='42' r='5' fill='%230d1117'/><circle cx='55' cy='42' r='5' fill='%230d1117'/></svg>" alt="" style="height:28px;margin-right:4px;vertical-align:middle">
2310
2310
  <div class="logo">Let Them Talk</div>
2311
+ <span id="mobile-project-name" style="display:none;font-size:11px;color:var(--orange);font-weight:600;background:var(--orange-dim);padding:2px 8px;border-radius:10px"></span>
2311
2312
  <div class="header-stats">
2312
2313
  <div class="h-stat"><span class="h-stat-val" id="stat-messages">0</span> msgs</div>
2313
2314
  <div class="h-stat"><span class="h-stat-val" id="stat-agents">0</span> agents</div>
@@ -2471,7 +2472,7 @@
2471
2472
  </div>
2472
2473
  </div>
2473
2474
  <div class="app-footer">
2474
- <span>Let Them Talk v3.2.0</span>
2475
+ <span>Let Them Talk v3.3.1</span>
2475
2476
  </div>
2476
2477
  <div class="profile-popup" id="profile-popup" onclick="event.stopPropagation()">
2477
2478
  <div class="profile-popup-header">
@@ -4095,6 +4096,7 @@ function poll() {
4095
4096
  fetch('/api/agents' + pq).then(function(r) { return r.json(); }),
4096
4097
  fetch('/api/status' + pq).then(function(r) { return r.json(); }),
4097
4098
  ]).then(function(results) {
4099
+ console.log('[LTT] poll ok — history:' + results[0].length + ' agents:' + Object.keys(results[1]).length + ' project:' + (activeProject || 'default'));
4098
4100
  updateConnectionInfo(Date.now() - pollStart);
4099
4101
  var prevHistLen = cachedHistory.length;
4100
4102
  cachedHistory = results[0];
@@ -4140,7 +4142,7 @@ function poll() {
4140
4142
  if (activeView === 'workflows') fetchWorkflows();
4141
4143
  }).catch(function(e) {
4142
4144
  console.error('Poll failed:', e);
4143
- document.getElementById('conn-detail').textContent = ' err';
4145
+ document.getElementById('conn-detail').textContent = ' ERR: ' + e.message;
4144
4146
  });
4145
4147
  }
4146
4148
 
@@ -4158,7 +4160,8 @@ function doReset() {
4158
4160
  // ==================== PROJECT MANAGEMENT ====================
4159
4161
 
4160
4162
  function loadProjects() {
4161
- fetch('/api/projects').then(function(r) { return r.json(); }).then(function(projects) {
4163
+ return fetch('/api/projects').then(function(r) { return r.json(); }).then(function(projects) {
4164
+ console.log('[LTT] loadProjects:', projects.length, 'projects, activeProject:', activeProject);
4162
4165
  var sel = document.getElementById('project-select');
4163
4166
  // Keep the first option (Default)
4164
4167
  while (sel.options.length > 1) sel.remove(1);
@@ -4168,7 +4171,24 @@ function loadProjects() {
4168
4171
  opt.textContent = projects[i].name;
4169
4172
  sel.appendChild(opt);
4170
4173
  }
4171
- if (activeProject) sel.value = activeProject;
4174
+
4175
+ // Auto-select: if only one project and nothing selected, use it
4176
+ if (!activeProject && projects.length === 1) {
4177
+ activeProject = projects[0].path;
4178
+ }
4179
+
4180
+ if (activeProject) {
4181
+ sel.value = activeProject;
4182
+ document.getElementById('remove-project-btn').style.display = '';
4183
+ // Update header project indicator for mobile
4184
+ var indicator = document.getElementById('mobile-project-name');
4185
+ if (indicator) {
4186
+ var proj = projects.find(function(p) { return p.path === activeProject; });
4187
+ indicator.textContent = proj ? proj.name : '';
4188
+ indicator.style.display = proj ? '' : 'none';
4189
+ }
4190
+ poll(); // re-poll with correct project
4191
+ }
4172
4192
 
4173
4193
  // Show/hide remove button
4174
4194
  document.getElementById('remove-project-btn').style.display = activeProject ? '' : 'none';
@@ -4805,9 +4825,11 @@ function initSSE() {
4805
4825
  }
4806
4826
  })();
4807
4827
 
4808
- loadProjects();
4809
- poll();
4810
- initSSE();
4828
+ // Load projects first, then poll (so auto-select works before first data fetch)
4829
+ loadProjects().then(function() {
4830
+ poll();
4831
+ initSSE();
4832
+ });
4811
4833
  // Safety-net poll at 10s (SSE handles real-time, this catches any missed updates)
4812
4834
  setInterval(poll, 10000);
4813
4835
  </script>
package/dashboard.js CHANGED
@@ -6,7 +6,12 @@ const os = require('os');
6
6
  const { spawn } = require('child_process');
7
7
 
8
8
  const PORT = parseInt(process.env.AGENT_BRIDGE_PORT || '3000', 10);
9
- let LAN_MODE = process.env.AGENT_BRIDGE_LAN === 'true';
9
+ const LAN_STATE_FILE = path.join(__dirname, '.lan-mode');
10
+ let LAN_MODE = process.env.AGENT_BRIDGE_LAN === 'true' || (fs.existsSync(LAN_STATE_FILE) && fs.readFileSync(LAN_STATE_FILE, 'utf8').trim() === 'true');
11
+
12
+ function persistLanMode() {
13
+ try { fs.writeFileSync(LAN_STATE_FILE, LAN_MODE ? 'true' : 'false'); } catch {}
14
+ }
10
15
 
11
16
  function getLanIP() {
12
17
  const interfaces = os.networkInterfaces();
@@ -422,7 +427,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;backgrou
422
427
  <div class="agent-chips" id="agent-chips"></div>
423
428
  </div>
424
429
  <div class="messages" id="messages"></div>
425
- <div class="footer">Generated by <a href="https://github.com/Dekelelz/let-them-talk" target="_blank">Let Them Talk</a> &middot; MIT License</div>
430
+ <div class="footer">Generated by <a href="https://github.com/Dekelelz/let-them-talk" target="_blank">Let Them Talk</a> &middot; BSL 1.1</div>
426
431
  <script>
427
432
  var COLORS=['#58a6ff','#3fb950','#d29922','#f85149','#bc8cff','#f778ba','#79c0ff','#7ee787','#e3b341','#ffa198'];
428
433
  var colorMap={},ci=0;
@@ -945,6 +950,7 @@ const server = http.createServer(async (req, res) => {
945
950
  const newMode = !LAN_MODE;
946
951
  const lanIP = getLanIP();
947
952
  LAN_MODE = newMode;
953
+ persistLanMode();
948
954
  // Send response first
949
955
  res.writeHead(200, { 'Content-Type': 'application/json' });
950
956
  res.end(JSON.stringify({ lan_mode: newMode, lan_ip: lanIP, port: PORT }));
@@ -1062,7 +1068,7 @@ server.listen(PORT, LAN_MODE ? '0.0.0.0' : '127.0.0.1', () => {
1062
1068
  const dataDir = resolveDataDir();
1063
1069
  const lanIP = getLanIP();
1064
1070
  console.log('');
1065
- console.log(' Let Them Talk - Agent Bridge Dashboard v3.0');
1071
+ console.log(' Let Them Talk - Agent Bridge Dashboard v3.3.1');
1066
1072
  console.log(' ============================================');
1067
1073
  console.log(' Dashboard: http://localhost:' + PORT);
1068
1074
  if (LAN_MODE && lanIP) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "let-them-talk",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
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": {
@@ -22,7 +22,9 @@
22
22
  "cli.js",
23
23
  "templates/",
24
24
  "logo.png",
25
- "LICENSE"
25
+ "LICENSE",
26
+ "SECURITY.md",
27
+ "CHANGELOG.md"
26
28
  ],
27
29
  "keywords": [
28
30
  "mcp",
@@ -46,7 +48,7 @@
46
48
  "url": "https://github.com/Dekelelz/let-them-talk/issues"
47
49
  },
48
50
  "author": "Dekelelz",
49
- "license": "MIT",
51
+ "license": "BSL-1.1",
50
52
  "dependencies": {
51
53
  "@modelcontextprotocol/sdk": "1.27.1"
52
54
  }
package/server.js CHANGED
@@ -2021,7 +2021,7 @@ async function main() {
2021
2021
  loadPlugins();
2022
2022
  const transport = new StdioServerTransport();
2023
2023
  await server.connect(transport);
2024
- console.error('Agent Bridge MCP server v3.2.0 running (' + (27 + loadedPlugins.length) + ' tools)');
2024
+ console.error('Agent Bridge MCP server v3.3.1 running (' + (27 + loadedPlugins.length) + ' tools)');
2025
2025
  }
2026
2026
 
2027
2027
  main().catch(console.error);