agentmesh-ai 0.1.5 → 0.2.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/GUIDE.md +27 -33
- package/README.md +17 -12
- package/dist/cli/commands/join.d.ts +6 -0
- package/dist/cli/commands/join.d.ts.map +1 -0
- package/dist/cli/commands/join.js +237 -0
- package/dist/cli/commands/join.js.map +1 -0
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +107 -19
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/index.js +7 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/mcp/conversation-tools.d.ts +1 -1
- package/dist/mcp/conversation-tools.d.ts.map +1 -1
- package/dist/mcp/conversation-tools.js +10 -10
- package/dist/mcp/conversation-tools.js.map +1 -1
- package/dist/mcp/index.js +59 -36
- package/dist/mcp/index.js.map +1 -1
- package/package.json +1 -1
package/GUIDE.md
CHANGED
|
@@ -245,49 +245,38 @@ npx agentmesh-ai serve
|
|
|
245
245
|
会显示:
|
|
246
246
|
|
|
247
247
|
```
|
|
248
|
-
🚀
|
|
248
|
+
🚀 Conversation space is running
|
|
249
249
|
|
|
250
|
-
|
|
251
|
-
Network: ws://192.168.1.100:4800
|
|
250
|
+
Address: ws://192.168.31.66:4800
|
|
252
251
|
Key: abc123
|
|
253
252
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
Send this to your teammates:
|
|
254
|
+
|
|
255
|
+
npx agentmesh-ai join ws://192.168.31.66:4800 --key abc123
|
|
256
|
+
|
|
257
|
+
Restart your AI tool to connect.
|
|
257
258
|
```
|
|
258
259
|
|
|
259
|
-
|
|
260
|
+
serve 会自动:
|
|
261
|
+
- 检测你的局域网 IP(过滤掉虚拟网卡)
|
|
262
|
+
- 配好你自己的 MCP(加上对话空间地址)
|
|
263
|
+
- Windows 上自动尝试开放防火墙端口
|
|
260
264
|
|
|
261
|
-
|
|
265
|
+
### 同事加入(一行命令)
|
|
262
266
|
|
|
263
|
-
|
|
267
|
+
把 serve 输出的那行命令发给同事,同事粘贴运行:
|
|
264
268
|
|
|
265
269
|
```bash
|
|
266
|
-
|
|
267
|
-
claude mcp add agentmesh -e AGENTHUB_AGENT_ID=你的agent-id -e AGENTHUB_SERVER_URL=ws://192.168.1.100:4800 -e AGENTHUB_SERVER_KEY=abc123 -- npx -y agentmesh-ai mcp
|
|
270
|
+
npx agentmesh-ai join ws://192.168.31.66:4800 --key abc123
|
|
268
271
|
```
|
|
269
272
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
{
|
|
276
|
-
"mcpServers": {
|
|
277
|
-
"agentmesh": {
|
|
278
|
-
"command": "npx",
|
|
279
|
-
"args": ["-y", "agentmesh-ai", "mcp"],
|
|
280
|
-
"env": {
|
|
281
|
-
"AGENTHUB_AGENT_ID": "你的agent-id",
|
|
282
|
-
"AGENTHUB_SERVER_URL": "ws://192.168.1.100:4800",
|
|
283
|
-
"AGENTHUB_SERVER_KEY": "abc123"
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
```
|
|
273
|
+
这个命令会自动完成所有事情:
|
|
274
|
+
- 如果没有 .agenthub/,自动初始化
|
|
275
|
+
- 测试网络连接是否通
|
|
276
|
+
- 自动检测 AI 工具(Claude Code / Cursor / Windsurf)
|
|
277
|
+
- 自动配好 MCP(包含对话空间地址)
|
|
289
278
|
|
|
290
|
-
|
|
279
|
+
同事只需要在命令完成后**重启 AI 工具**即可。
|
|
291
280
|
|
|
292
281
|
**注意:** 所有人必须在同一个局域网内(同一个 WiFi 或公司网络)。如果是远程协作,启动 serve 的人需要用 ngrok 等工具做内网穿透。
|
|
293
282
|
|
|
@@ -418,10 +407,15 @@ Cursor 自动读取共享记忆,知道:
|
|
|
418
407
|
|
|
419
408
|
```bash
|
|
420
409
|
npx agentmesh-ai serve
|
|
421
|
-
#
|
|
410
|
+
# 输出一行命令,小明把它发给小红
|
|
422
411
|
```
|
|
423
412
|
|
|
424
|
-
|
|
413
|
+
小红运行小明发来的命令:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
npx agentmesh-ai join ws://192.168.31.66:4800 --key abc123
|
|
417
|
+
# 自动配好一切,重启 Cursor
|
|
418
|
+
```
|
|
425
419
|
|
|
426
420
|
小红对 Cursor 说:"帮我和团队讨论一下 UI 用什么组件库和颜色"
|
|
427
421
|
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
You use Claude Code. Your teammate uses Cursor. Another uses Copilot. Your AIs have no idea what each other is doing. AgentHub fixes that.
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
npx
|
|
8
|
+
npx agentmesh-ai init && npx agentmesh-ai setup
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
That's it. Your AI now shares knowledge with every other AI on the team.
|
|
@@ -27,7 +27,7 @@ That's it. Your AI now shares knowledge with every other AI on the team.
|
|
|
27
27
|
### 1. Initialize (30 seconds)
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
npx
|
|
30
|
+
npx agentmesh-ai init
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Answers a few questions, creates `.agenthub/` in your project.
|
|
@@ -35,7 +35,7 @@ Answers a few questions, creates `.agenthub/` in your project.
|
|
|
35
35
|
### 2. Configure your AI tool (1 minute)
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
npx
|
|
38
|
+
npx agentmesh-ai setup
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Auto-detects Claude Code, Cursor, Windsurf and writes their MCP config.
|
|
@@ -43,7 +43,7 @@ Auto-detects Claude Code, Cursor, Windsurf and writes their MCP config.
|
|
|
43
43
|
### 3. Invite teammates
|
|
44
44
|
|
|
45
45
|
```
|
|
46
|
-
"Clone the repo and run: npx
|
|
46
|
+
"Clone the repo and run: npx agentmesh-ai setup"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
No accounts, no servers, no extra software.
|
|
@@ -106,8 +106,12 @@ shadcn/ui, Indigo primary, 8px radius, 4px spacing
|
|
|
106
106
|
When your AI needs to discuss something with the team:
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
#
|
|
110
|
-
npx
|
|
109
|
+
# You start the conversation space
|
|
110
|
+
npx agentmesh-ai serve
|
|
111
|
+
|
|
112
|
+
# It outputs a command — send it to your teammates
|
|
113
|
+
# Teammates run it to join:
|
|
114
|
+
npx agentmesh-ai join ws://192.168.31.66:4800 --key abc123
|
|
111
115
|
```
|
|
112
116
|
|
|
113
117
|
Then any team member can say: *"Discuss database selection with the team"*
|
|
@@ -184,12 +188,13 @@ High-risk content is **blocked**. Medium-risk gets a **warning**.
|
|
|
184
188
|
|
|
185
189
|
| Command | Description |
|
|
186
190
|
|---------|-------------|
|
|
187
|
-
| `npx
|
|
188
|
-
| `npx
|
|
189
|
-
| `npx
|
|
190
|
-
| `npx
|
|
191
|
-
| `npx
|
|
192
|
-
| `npx
|
|
191
|
+
| `npx agentmesh-ai init` | Create .agenthub/ directory |
|
|
192
|
+
| `npx agentmesh-ai setup` | Auto-configure MCP for your AI tools |
|
|
193
|
+
| `npx agentmesh-ai serve` | Start conversation space (auto-configures your MCP) |
|
|
194
|
+
| `npx agentmesh-ai join <url> --key <key>` | Join a teammate's space (one command does everything) |
|
|
195
|
+
| `npx agentmesh-ai status` | Show project memory status |
|
|
196
|
+
| `npx agentmesh-ai memory` | View/search shared memory |
|
|
197
|
+
| `npx agentmesh-ai memory -s "database"` | Search for specific info |
|
|
193
198
|
|
|
194
199
|
---
|
|
195
200
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"AAiBA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBAmHxE"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentmesh join — One command to join a teammate's conversation space.
|
|
3
|
+
* Handles init, MCP config, and connection test automatically.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
10
|
+
import inquirer from 'inquirer';
|
|
11
|
+
import WebSocket from 'ws';
|
|
12
|
+
import { findAgentHubDir } from '../../utils/git.js';
|
|
13
|
+
import { readHubConfig } from '../../memory/reader.js';
|
|
14
|
+
import { writeYaml } from '../../utils/yaml.js';
|
|
15
|
+
import { generateAgentId } from '../../utils/id.js';
|
|
16
|
+
export async function joinCommand(serverUrl, options) {
|
|
17
|
+
const cwd = process.cwd();
|
|
18
|
+
const key = options.key;
|
|
19
|
+
if (!serverUrl) {
|
|
20
|
+
console.log(chalk.red('❌ Usage: npx agentmesh-ai join ws://IP:PORT --key KEY'));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
console.log('');
|
|
24
|
+
// Step 1: Test connection
|
|
25
|
+
console.log(chalk.dim(' Testing connection...'));
|
|
26
|
+
const connected = await testConnection(serverUrl, key);
|
|
27
|
+
if (!connected) {
|
|
28
|
+
console.log(chalk.red(' ❌ Cannot connect to conversation space.'));
|
|
29
|
+
console.log(chalk.dim(' Check: Is the address correct? Is the host\'s firewall open?'));
|
|
30
|
+
console.log(chalk.dim(' Ask the host to run: netsh advfirewall firewall add rule name="AgentMesh" dir=in action=allow protocol=TCP localport=4800'));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
console.log(chalk.green(' ✅ Connection OK'));
|
|
34
|
+
console.log('');
|
|
35
|
+
// Step 2: Init if needed
|
|
36
|
+
let agentHubDir = findAgentHubDir(cwd);
|
|
37
|
+
let agentId;
|
|
38
|
+
if (!agentHubDir) {
|
|
39
|
+
console.log(chalk.dim(' No .agenthub/ found. Setting up...'));
|
|
40
|
+
console.log('');
|
|
41
|
+
const answers = await inquirer.prompt([
|
|
42
|
+
{ type: 'input', name: 'displayName', message: 'Your name?' },
|
|
43
|
+
{
|
|
44
|
+
type: 'list',
|
|
45
|
+
name: 'role',
|
|
46
|
+
message: 'Your role?',
|
|
47
|
+
choices: ['Backend Developer', 'Frontend Developer', 'Full Stack Developer', 'Mobile Developer', 'Designer', 'Other'],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'list',
|
|
51
|
+
name: 'tool',
|
|
52
|
+
message: 'Your AI coding tool?',
|
|
53
|
+
choices: [
|
|
54
|
+
{ name: 'Claude Code', value: 'claude-code' },
|
|
55
|
+
{ name: 'Cursor', value: 'cursor' },
|
|
56
|
+
{ name: 'Windsurf', value: 'windsurf' },
|
|
57
|
+
{ name: 'GitHub Copilot', value: 'copilot' },
|
|
58
|
+
{ name: 'Other', value: 'other' },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
agentId = generateAgentId(answers.displayName, answers.tool);
|
|
63
|
+
agentHubDir = join(cwd, '.agenthub');
|
|
64
|
+
await mkdir(join(agentHubDir, 'memory'), { recursive: true });
|
|
65
|
+
await mkdir(join(agentHubDir, 'conversations'), { recursive: true });
|
|
66
|
+
const now = new Date().toISOString();
|
|
67
|
+
const hub = {
|
|
68
|
+
project: cwd.split(/[\\/]/).pop() || 'my-project',
|
|
69
|
+
created: now,
|
|
70
|
+
version: '1.0',
|
|
71
|
+
agents: [{ id: agentId, display_name: answers.displayName, role: answers.role, tool: answers.tool }],
|
|
72
|
+
};
|
|
73
|
+
await writeYaml(join(agentHubDir, 'hub.yaml'), hub);
|
|
74
|
+
const memoryFile = {
|
|
75
|
+
agent: agentId,
|
|
76
|
+
role: answers.role,
|
|
77
|
+
tool: answers.tool,
|
|
78
|
+
last_active: now,
|
|
79
|
+
entries: [],
|
|
80
|
+
};
|
|
81
|
+
await writeYaml(join(agentHubDir, 'memory', `${agentId}.yaml`), memoryFile);
|
|
82
|
+
console.log(chalk.green(` ✅ Initialized .agenthub/ (Agent ID: ${agentId})`));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const hub = await readHubConfig(agentHubDir);
|
|
86
|
+
if (hub?.agents.length === 1) {
|
|
87
|
+
agentId = hub.agents[0].id;
|
|
88
|
+
}
|
|
89
|
+
else if (hub && hub.agents.length > 1) {
|
|
90
|
+
const { selected } = await inquirer.prompt([{
|
|
91
|
+
type: 'list',
|
|
92
|
+
name: 'selected',
|
|
93
|
+
message: 'Which agent are you?',
|
|
94
|
+
choices: hub.agents.map(a => ({ name: `${a.display_name} (${a.role})`, value: a.id })),
|
|
95
|
+
}]);
|
|
96
|
+
agentId = selected;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
agentId = 'default-agent';
|
|
100
|
+
}
|
|
101
|
+
console.log(chalk.dim(` Agent ID: ${agentId}`));
|
|
102
|
+
}
|
|
103
|
+
// Step 3: Detect AI tool and configure MCP
|
|
104
|
+
console.log('');
|
|
105
|
+
const configured = await configureMcp(cwd, agentId, serverUrl, key);
|
|
106
|
+
if (!configured) {
|
|
107
|
+
console.log(chalk.yellow(' ⚠️ Could not auto-configure MCP.'));
|
|
108
|
+
console.log(chalk.dim(' For Claude Code, run manually:'));
|
|
109
|
+
console.log(chalk.dim(` claude mcp add agentmesh -e AGENTHUB_AGENT_ID=${agentId} -e AGENTHUB_SERVER_URL=${serverUrl}${key ? ` -e AGENTHUB_SERVER_KEY=${key}` : ''} -- npx -y agentmesh-ai mcp`));
|
|
110
|
+
console.log('');
|
|
111
|
+
console.log(chalk.dim(' For Cursor, create .cursor/mcp.json with the correct config.'));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Step 4: Done
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log(chalk.green(' ✅ All set!'));
|
|
117
|
+
console.log('');
|
|
118
|
+
console.log(chalk.bold(' Now restart your AI tool and start collaborating.'));
|
|
119
|
+
console.log('');
|
|
120
|
+
}
|
|
121
|
+
async function testConnection(url, key) {
|
|
122
|
+
return new Promise((resolve) => {
|
|
123
|
+
const timeout = setTimeout(() => {
|
|
124
|
+
ws.close();
|
|
125
|
+
resolve(false);
|
|
126
|
+
}, 5000);
|
|
127
|
+
const ws = new WebSocket(url);
|
|
128
|
+
ws.on('open', () => {
|
|
129
|
+
// Send a JOIN to verify key works
|
|
130
|
+
ws.send(JSON.stringify({
|
|
131
|
+
type: 'JOIN',
|
|
132
|
+
agent: { id: '__test__', displayName: 'test', role: 'test', tool: 'test' },
|
|
133
|
+
key,
|
|
134
|
+
}));
|
|
135
|
+
});
|
|
136
|
+
ws.on('message', (data) => {
|
|
137
|
+
clearTimeout(timeout);
|
|
138
|
+
const msg = JSON.parse(data.toString());
|
|
139
|
+
if (msg.type === 'WELCOME') {
|
|
140
|
+
ws.send(JSON.stringify({ type: 'LEAVE' }));
|
|
141
|
+
ws.close();
|
|
142
|
+
resolve(true);
|
|
143
|
+
}
|
|
144
|
+
else if (msg.type === 'ERROR') {
|
|
145
|
+
ws.close();
|
|
146
|
+
resolve(false);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
ws.on('error', () => {
|
|
150
|
+
clearTimeout(timeout);
|
|
151
|
+
resolve(false);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async function configureMcp(cwd, agentId, serverUrl, key) {
|
|
156
|
+
const envParts = [`AGENTHUB_AGENT_ID=${agentId}`, `AGENTHUB_SERVER_URL=${serverUrl}`];
|
|
157
|
+
if (key)
|
|
158
|
+
envParts.push(`AGENTHUB_SERVER_KEY=${key}`);
|
|
159
|
+
// Try Claude Code
|
|
160
|
+
try {
|
|
161
|
+
try {
|
|
162
|
+
execSync('claude mcp remove agentmesh', { stdio: 'pipe' });
|
|
163
|
+
}
|
|
164
|
+
catch { /* ok */ }
|
|
165
|
+
const envFlags = envParts.map(e => `-e ${e}`).join(' ');
|
|
166
|
+
execSync(`claude mcp add agentmesh ${envFlags} -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
|
|
167
|
+
console.log(chalk.green(' ✅ MCP configured (Claude Code)'));
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// Claude Code CLI not available
|
|
172
|
+
}
|
|
173
|
+
// Try Cursor
|
|
174
|
+
const cursorDir = join(cwd, '.cursor');
|
|
175
|
+
try {
|
|
176
|
+
if (!existsSync(cursorDir))
|
|
177
|
+
await mkdir(cursorDir, { recursive: true });
|
|
178
|
+
const configPath = join(cursorDir, 'mcp.json');
|
|
179
|
+
let existing = {};
|
|
180
|
+
if (existsSync(configPath)) {
|
|
181
|
+
try {
|
|
182
|
+
existing = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
183
|
+
}
|
|
184
|
+
catch { /* ok */ }
|
|
185
|
+
}
|
|
186
|
+
const env = { AGENTHUB_AGENT_ID: agentId, AGENTHUB_SERVER_URL: serverUrl };
|
|
187
|
+
if (key)
|
|
188
|
+
env.AGENTHUB_SERVER_KEY = key;
|
|
189
|
+
const merged = {
|
|
190
|
+
...existing,
|
|
191
|
+
mcpServers: {
|
|
192
|
+
...existing.mcpServers,
|
|
193
|
+
agentmesh: {
|
|
194
|
+
command: 'npx',
|
|
195
|
+
args: ['-y', 'agentmesh-ai', 'mcp'],
|
|
196
|
+
env,
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
|
|
201
|
+
console.log(chalk.green(` ✅ MCP configured (Cursor): ${configPath}`));
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
// Failed
|
|
206
|
+
}
|
|
207
|
+
// Try Windsurf
|
|
208
|
+
const windsurfDir = join(cwd, '.windsurf');
|
|
209
|
+
if (existsSync(windsurfDir)) {
|
|
210
|
+
try {
|
|
211
|
+
const configPath = join(windsurfDir, 'mcp.json');
|
|
212
|
+
let existing = {};
|
|
213
|
+
if (existsSync(configPath)) {
|
|
214
|
+
try {
|
|
215
|
+
existing = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
216
|
+
}
|
|
217
|
+
catch { /* ok */ }
|
|
218
|
+
}
|
|
219
|
+
const env = { AGENTHUB_AGENT_ID: agentId, AGENTHUB_SERVER_URL: serverUrl };
|
|
220
|
+
if (key)
|
|
221
|
+
env.AGENTHUB_SERVER_KEY = key;
|
|
222
|
+
const merged = {
|
|
223
|
+
...existing,
|
|
224
|
+
mcpServers: {
|
|
225
|
+
...existing.mcpServers,
|
|
226
|
+
agentmesh: { command: 'npx', args: ['-y', 'agentmesh-ai', 'mcp'], env },
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
|
|
230
|
+
console.log(chalk.green(` ✅ MCP configured (Windsurf): ${configPath}`));
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
catch { /* ok */ }
|
|
234
|
+
}
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAcA,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAyGvD"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* agentmesh serve — Start the conversation space server.
|
|
3
|
+
* Auto-configures MCP, shows correct LAN IP, outputs join command for teammates.
|
|
3
4
|
*/
|
|
4
5
|
import chalk from 'chalk';
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { networkInterfaces } from 'node:os';
|
|
5
10
|
import { ConversationServer } from '../../conversation/server.js';
|
|
6
11
|
import { saveConversation } from '../../conversation/recorder.js';
|
|
7
12
|
import { findAgentHubDir } from '../../utils/git.js';
|
|
8
|
-
import {
|
|
13
|
+
import { readHubConfig } from '../../memory/reader.js';
|
|
9
14
|
export async function serveCommand(options) {
|
|
10
15
|
const cwd = process.cwd();
|
|
11
|
-
|
|
16
|
+
let agentHubDir = findAgentHubDir(cwd);
|
|
17
|
+
// Auto-init if no .agenthub/ exists
|
|
12
18
|
if (!agentHubDir) {
|
|
13
|
-
console.log(chalk.
|
|
19
|
+
console.log(chalk.yellow(' No .agenthub/ found. Run "npx agentmesh-ai init" first.'));
|
|
14
20
|
return;
|
|
15
21
|
}
|
|
16
22
|
const port = parseInt(options.port ?? '4800', 10);
|
|
@@ -29,6 +35,17 @@ export async function serveCommand(options) {
|
|
|
29
35
|
server.onConclusion = (conclusion) => {
|
|
30
36
|
console.log(chalk.cyan(` 📋 Conclusion on "${conclusion.topic}": ${conclusion.summary.slice(0, 80)}...`));
|
|
31
37
|
};
|
|
38
|
+
// Try to open firewall on Windows
|
|
39
|
+
if (process.platform === 'win32') {
|
|
40
|
+
try {
|
|
41
|
+
execSync(`netsh advfirewall firewall add rule name="AgentMesh" dir=in action=allow protocol=TCP localport=${port}`, { stdio: 'pipe' });
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
console.log(chalk.yellow(` ⚠️ Could not auto-open firewall port ${port}.`));
|
|
45
|
+
console.log(chalk.dim(` Run as admin: netsh advfirewall firewall add rule name="AgentMesh" dir=in action=allow protocol=TCP localport=${port}`));
|
|
46
|
+
console.log('');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
32
49
|
try {
|
|
33
50
|
await server.start();
|
|
34
51
|
}
|
|
@@ -37,27 +54,32 @@ export async function serveCommand(options) {
|
|
|
37
54
|
return;
|
|
38
55
|
}
|
|
39
56
|
const lanIp = getLanIp();
|
|
57
|
+
const serverUrl = `ws://${lanIp ?? 'localhost'}:${port}`;
|
|
58
|
+
const serverKey = server.key;
|
|
59
|
+
// Auto-configure own MCP with SERVER_URL
|
|
60
|
+
const hub = await readHubConfig(agentHubDir);
|
|
61
|
+
const myAgentId = hub?.agents[0]?.id;
|
|
62
|
+
if (myAgentId) {
|
|
63
|
+
await autoConfigureMcp(cwd, myAgentId, serverUrl, serverKey);
|
|
64
|
+
}
|
|
65
|
+
// Display info
|
|
40
66
|
console.log('');
|
|
41
67
|
console.log(chalk.green(' 🚀 Conversation space is running'));
|
|
42
68
|
console.log('');
|
|
43
|
-
console.log(`
|
|
44
|
-
|
|
45
|
-
console.log(` Network: ${chalk.cyan(`ws://${lanIp}:${port}`)}`);
|
|
46
|
-
}
|
|
47
|
-
console.log(` Key: ${chalk.cyan(server.key)}`);
|
|
69
|
+
console.log(` Address: ${chalk.cyan(serverUrl)}`);
|
|
70
|
+
console.log(` Key: ${chalk.cyan(serverKey)}`);
|
|
48
71
|
console.log('');
|
|
49
|
-
console.log(chalk.
|
|
50
|
-
console.log(chalk.dim(` Set these env vars in their MCP config:`));
|
|
51
|
-
console.log(chalk.dim(` AGENTHUB_SERVER_URL=ws://${lanIp ?? 'localhost'}:${port}`));
|
|
52
|
-
console.log(chalk.dim(` AGENTHUB_SERVER_KEY=${server.key}`));
|
|
72
|
+
console.log(chalk.bold(' Send this to your teammates:'));
|
|
53
73
|
console.log('');
|
|
54
|
-
console.log(chalk.
|
|
74
|
+
console.log(` ${chalk.cyan(`npx agentmesh-ai join ${serverUrl} --key ${serverKey}`)}`);
|
|
75
|
+
console.log('');
|
|
76
|
+
console.log(chalk.dim(' Restart your AI tool to connect.'));
|
|
77
|
+
console.log(chalk.dim(' Press Ctrl+C to stop.'));
|
|
55
78
|
console.log('');
|
|
56
79
|
// Handle graceful shutdown
|
|
57
80
|
const shutdown = async () => {
|
|
58
81
|
console.log('');
|
|
59
82
|
console.log(chalk.dim(' Shutting down...'));
|
|
60
|
-
// Save conversation logs
|
|
61
83
|
const messages = server.allMessages;
|
|
62
84
|
const conclusions = server.allConclusions;
|
|
63
85
|
if (messages.length > 0) {
|
|
@@ -76,15 +98,81 @@ export async function serveCommand(options) {
|
|
|
76
98
|
process.on('SIGINT', shutdown);
|
|
77
99
|
process.on('SIGTERM', shutdown);
|
|
78
100
|
}
|
|
101
|
+
/** Auto-configure MCP for the serve host */
|
|
102
|
+
async function autoConfigureMcp(cwd, agentId, serverUrl, serverKey) {
|
|
103
|
+
// Try Claude Code first
|
|
104
|
+
try {
|
|
105
|
+
try {
|
|
106
|
+
execSync('claude mcp remove agentmesh', { stdio: 'pipe' });
|
|
107
|
+
}
|
|
108
|
+
catch { /* ok */ }
|
|
109
|
+
execSync(`claude mcp add agentmesh -e AGENTHUB_AGENT_ID=${agentId} -e AGENTHUB_SERVER_URL=${serverUrl} -e AGENTHUB_SERVER_KEY=${serverKey} -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
|
|
110
|
+
console.log(chalk.green(' ✅ Your MCP configured (Claude Code)'));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// Claude Code CLI not available
|
|
115
|
+
}
|
|
116
|
+
// Try Cursor config file
|
|
117
|
+
const cursorConfig = join(cwd, '.cursor', 'mcp.json');
|
|
118
|
+
if (existsSync(join(cwd, '.cursor'))) {
|
|
119
|
+
try {
|
|
120
|
+
const { readFile, writeFile } = await import('node:fs/promises');
|
|
121
|
+
let existing = {};
|
|
122
|
+
if (existsSync(cursorConfig)) {
|
|
123
|
+
try {
|
|
124
|
+
existing = JSON.parse(await readFile(cursorConfig, 'utf-8'));
|
|
125
|
+
}
|
|
126
|
+
catch { /* ok */ }
|
|
127
|
+
}
|
|
128
|
+
const merged = {
|
|
129
|
+
...existing,
|
|
130
|
+
mcpServers: {
|
|
131
|
+
...existing.mcpServers,
|
|
132
|
+
agentmesh: {
|
|
133
|
+
command: 'npx',
|
|
134
|
+
args: ['-y', 'agentmesh-ai', 'mcp'],
|
|
135
|
+
env: {
|
|
136
|
+
AGENTHUB_AGENT_ID: agentId,
|
|
137
|
+
AGENTHUB_SERVER_URL: serverUrl,
|
|
138
|
+
AGENTHUB_SERVER_KEY: serverKey,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
await writeFile(cursorConfig, JSON.stringify(merged, null, 2), 'utf-8');
|
|
144
|
+
console.log(chalk.green(' ✅ Your MCP configured (Cursor)'));
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Failed to write
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** Get the real LAN IP, filtering out virtual adapters */
|
|
79
152
|
function getLanIp() {
|
|
80
153
|
const interfaces = networkInterfaces();
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
154
|
+
// Virtual adapter name patterns to skip
|
|
155
|
+
const virtualPatterns = /meta|wsl|vethernet|vmware|virtualbox|docker|hyper-v|loopback/i;
|
|
156
|
+
// Virtual IP ranges to skip
|
|
157
|
+
const virtualIpPatterns = /^198\.18\.|^172\.(1[6-9]|2[0-9]|3[01])\./;
|
|
158
|
+
let fallback = null;
|
|
159
|
+
for (const [name, addrs] of Object.entries(interfaces)) {
|
|
160
|
+
if (virtualPatterns.test(name))
|
|
161
|
+
continue;
|
|
162
|
+
for (const iface of addrs ?? []) {
|
|
163
|
+
if (iface.family !== 'IPv4' || iface.internal)
|
|
164
|
+
continue;
|
|
165
|
+
if (virtualIpPatterns.test(iface.address))
|
|
166
|
+
continue;
|
|
167
|
+
// Prefer 192.168.x.x or 10.x.x.x
|
|
168
|
+
if (iface.address.startsWith('192.168.') || iface.address.startsWith('10.')) {
|
|
84
169
|
return iface.address;
|
|
85
170
|
}
|
|
171
|
+
// Keep as fallback
|
|
172
|
+
if (!fallback)
|
|
173
|
+
fallback = iface.address;
|
|
86
174
|
}
|
|
87
175
|
}
|
|
88
|
-
return
|
|
176
|
+
return fallback;
|
|
89
177
|
}
|
|
90
178
|
//# sourceMappingURL=serve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -8,9 +8,10 @@ import { setupCommand } from './commands/setup.js';
|
|
|
8
8
|
import { statusCommand } from './commands/status.js';
|
|
9
9
|
import { memoryCommand } from './commands/memory.js';
|
|
10
10
|
import { serveCommand } from './commands/serve.js';
|
|
11
|
+
import { joinCommand } from './commands/join.js';
|
|
11
12
|
const program = new Command();
|
|
12
13
|
program
|
|
13
|
-
.name('
|
|
14
|
+
.name('agentmesh')
|
|
14
15
|
.description('Shared memory & conversation protocol for AI coding agents')
|
|
15
16
|
.version('0.1.0');
|
|
16
17
|
program
|
|
@@ -39,6 +40,11 @@ program
|
|
|
39
40
|
.option('--host <host>', 'Host to bind to', '0.0.0.0')
|
|
40
41
|
.option('-k, --key <key>', 'Room key (auto-generated if not provided)')
|
|
41
42
|
.action(serveCommand);
|
|
43
|
+
program
|
|
44
|
+
.command('join <serverUrl>')
|
|
45
|
+
.description('Join a teammate\'s conversation space (one command does everything)')
|
|
46
|
+
.option('-k, --key <key>', 'Room key')
|
|
47
|
+
.action(joinCommand);
|
|
42
48
|
program
|
|
43
49
|
.command('mcp')
|
|
44
50
|
.description('Start the MCP server (used by AI tools, not humans)')
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC7C,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;KAC/D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,SAAS,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;KACtE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;KACrC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,uEAAuE;IACvE,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ConversationClient } from '../conversation/client.js';
|
|
2
2
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
-
export declare function registerConversationTools(server: McpServer, getAgentHubDir: () => string, getAgentId: () => string,
|
|
3
|
+
export declare function registerConversationTools(server: McpServer, getAgentHubDir: () => string, getAgentId: () => string, getOrConnectClient: () => Promise<ConversationClient | null>): void;
|
|
4
4
|
//# sourceMappingURL=conversation-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/conversation-tools.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,MAAM,EAC5B,UAAU,EAAE,MAAM,MAAM,EACxB,
|
|
1
|
+
{"version":3,"file":"conversation-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/conversation-tools.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,MAAM,EAC5B,UAAU,EAAE,MAAM,MAAM,EACxB,kBAAkB,EAAE,MAAM,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAioB7D"}
|
|
@@ -5,7 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
6
|
import { writeMemoryEntry } from '../memory/writer.js';
|
|
7
7
|
import { readHubConfig } from '../memory/reader.js';
|
|
8
|
-
export function registerConversationTools(server, getAgentHubDir, getAgentId,
|
|
8
|
+
export function registerConversationTools(server, getAgentHubDir, getAgentId, getOrConnectClient) {
|
|
9
9
|
server.tool('start_meeting', `Start a meeting — check that all required team members are online before discussing.
|
|
10
10
|
|
|
11
11
|
Use this BEFORE using discuss when you need a team decision. It ensures everyone
|
|
@@ -16,7 +16,7 @@ to come online. You can call start_meeting again to check if they've joined.`, {
|
|
|
16
16
|
topic: z.string().describe('Meeting topic (e.g. "Database selection", "Architecture review")'),
|
|
17
17
|
requiredAgents: z.array(z.string()).optional().describe('Agent IDs that must attend. If omitted, all agents from hub.yaml are required.'),
|
|
18
18
|
}, async ({ topic, requiredAgents }) => {
|
|
19
|
-
const client =
|
|
19
|
+
const client = await getOrConnectClient();
|
|
20
20
|
if (!client?.isConnected) {
|
|
21
21
|
return {
|
|
22
22
|
content: [{
|
|
@@ -66,7 +66,7 @@ to come online. You can call start_meeting again to check if they've joined.`, {
|
|
|
66
66
|
server.tool('list_conversations', `List active conversation topics and connected agents in the conversation space.
|
|
67
67
|
Returns the list of online agents and what topics are being discussed.
|
|
68
68
|
If no conversation space is running, tells you so.`, {}, async () => {
|
|
69
|
-
const client =
|
|
69
|
+
const client = await getOrConnectClient();
|
|
70
70
|
if (!client?.isConnected) {
|
|
71
71
|
return {
|
|
72
72
|
content: [{
|
|
@@ -108,7 +108,7 @@ Your message will be seen by all connected agents.`, {
|
|
|
108
108
|
message: z.string().describe('Your message to the other agents'),
|
|
109
109
|
related_to: z.string().optional().describe('Memory topic or file path this relates to'),
|
|
110
110
|
}, async ({ topic, message, related_to }) => {
|
|
111
|
-
const client =
|
|
111
|
+
const client = await getOrConnectClient();
|
|
112
112
|
if (!client?.isConnected) {
|
|
113
113
|
return {
|
|
114
114
|
content: [{
|
|
@@ -141,7 +141,7 @@ Use this to check if other agents have replied to your earlier message.`, {
|
|
|
141
141
|
topic: z.string().describe('The topic to get messages from'),
|
|
142
142
|
since: z.string().optional().describe('Only get messages after this ISO timestamp'),
|
|
143
143
|
}, async ({ topic, since }) => {
|
|
144
|
-
const client =
|
|
144
|
+
const client = await getOrConnectClient();
|
|
145
145
|
if (!client?.isConnected) {
|
|
146
146
|
return {
|
|
147
147
|
content: [{
|
|
@@ -202,7 +202,7 @@ you can discuss asynchronously through shared memory:
|
|
|
202
202
|
wait_seconds: z.number().optional().describe('How long to wait for replies (default: 30, max: 120)'),
|
|
203
203
|
related_to: z.string().optional().describe('Memory topic or file path this discussion relates to'),
|
|
204
204
|
}, async ({ topic, message, wait_seconds, related_to }) => {
|
|
205
|
-
const client =
|
|
205
|
+
const client = await getOrConnectClient();
|
|
206
206
|
if (!client?.isConnected) {
|
|
207
207
|
return {
|
|
208
208
|
content: [{
|
|
@@ -281,7 +281,7 @@ This records the conclusion permanently so all agents (including offline ones) w
|
|
|
281
281
|
// Write to memory
|
|
282
282
|
await writeMemoryEntry(dir, agentId, agentInfo?.role ?? 'developer', agentInfo?.tool ?? 'unknown', { topic, content, tags, decided_with });
|
|
283
283
|
// Also send CONCLUDE to conversation space
|
|
284
|
-
const client =
|
|
284
|
+
const client = await getOrConnectClient();
|
|
285
285
|
if (client?.isConnected) {
|
|
286
286
|
client.conclude(topic, content, tags);
|
|
287
287
|
}
|
|
@@ -316,7 +316,7 @@ Flow:
|
|
|
316
316
|
})).describe('The options to choose from (2-5 options)'),
|
|
317
317
|
recommendation: z.string().optional().describe('Your recommended option and why, if you have one'),
|
|
318
318
|
}, async ({ title, description: desc, options, recommendation }) => {
|
|
319
|
-
const client =
|
|
319
|
+
const client = await getOrConnectClient();
|
|
320
320
|
const optionLabels = options.map(o => o.label);
|
|
321
321
|
const message = [
|
|
322
322
|
desc,
|
|
@@ -447,7 +447,7 @@ Flow:
|
|
|
447
447
|
}
|
|
448
448
|
});
|
|
449
449
|
server.tool('list_pending_decisions', `List all pending decisions that need votes from team members.`, {}, async () => {
|
|
450
|
-
const client =
|
|
450
|
+
const client = await getOrConnectClient();
|
|
451
451
|
if (!client?.isConnected) {
|
|
452
452
|
return { content: [{ type: 'text', text: 'No conversation space running.' }] };
|
|
453
453
|
}
|
|
@@ -479,7 +479,7 @@ A decision is only finalized when ALL humans have voted.`, {
|
|
|
479
479
|
})).describe('The options to vote on'),
|
|
480
480
|
recommendation: z.string().optional().describe('The proposer\'s recommendation'),
|
|
481
481
|
}, async ({ decisionId, topic, options, recommendation }) => {
|
|
482
|
-
const client =
|
|
482
|
+
const client = await getOrConnectClient();
|
|
483
483
|
const optionLabels = options.map(o => o.label);
|
|
484
484
|
const message = [
|
|
485
485
|
`Team decision requested: ${topic}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-tools.js","sourceRoot":"","sources":["../../src/mcp/conversation-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-tools.js","sourceRoot":"","sources":["../../src/mcp/conversation-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* AgentHub MCP Server entry point.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Uses lazy connection to conversation space — connects when a tool
|
|
6
|
+
* needs it, not on startup. This fixes the issue where MCP starts
|
|
7
|
+
* before the conversation server is ready.
|
|
7
8
|
*/
|
|
8
9
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
10
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -12,20 +13,19 @@ import { registerConversationTools } from './conversation-tools.js';
|
|
|
12
13
|
import { registerResources } from './resources.js';
|
|
13
14
|
import { findAgentHubDir } from '../utils/git.js';
|
|
14
15
|
import { ConversationClient } from '../conversation/client.js';
|
|
15
|
-
import { readHubConfig } from '../memory/reader.js';
|
|
16
|
+
import { readHubConfig, readAgentMemory } from '../memory/reader.js';
|
|
17
|
+
import { join } from 'node:path';
|
|
16
18
|
async function main() {
|
|
17
19
|
const server = new McpServer({
|
|
18
20
|
name: 'AgentHub',
|
|
19
21
|
version: '0.1.0',
|
|
20
22
|
});
|
|
21
|
-
// Resolve .agenthub directory from current working directory
|
|
22
23
|
const cwd = process.cwd();
|
|
23
24
|
let agentHubDir = findAgentHubDir(cwd);
|
|
24
|
-
// Read agent identity from environment variables (set during setup)
|
|
25
25
|
const agentId = process.env.AGENTHUB_AGENT_ID ?? 'default-agent';
|
|
26
|
+
const serverUrl = process.env.AGENTHUB_SERVER_URL;
|
|
26
27
|
const getDir = () => {
|
|
27
28
|
if (!agentHubDir) {
|
|
28
|
-
// Try again in case it was created after MCP started
|
|
29
29
|
agentHubDir = findAgentHubDir(cwd);
|
|
30
30
|
if (!agentHubDir) {
|
|
31
31
|
throw new Error('No .agenthub/ directory found. Run "npx agentmesh-ai init" first.');
|
|
@@ -34,47 +34,70 @@ async function main() {
|
|
|
34
34
|
return agentHubDir;
|
|
35
35
|
};
|
|
36
36
|
const getAgentId = () => agentId;
|
|
37
|
-
//
|
|
37
|
+
// Lazy conversation client — connects on demand
|
|
38
38
|
let conversationClient = null;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
conversationClient
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
key: process.env.AGENTHUB_SERVER_KEY,
|
|
53
|
-
});
|
|
54
|
-
await conversationClient.connect();
|
|
55
|
-
// Auto-sync local memory to conversation space
|
|
39
|
+
let connectPromise = null;
|
|
40
|
+
async function ensureConnected() {
|
|
41
|
+
if (!serverUrl)
|
|
42
|
+
return null;
|
|
43
|
+
if (conversationClient?.isConnected)
|
|
44
|
+
return conversationClient;
|
|
45
|
+
// If already connecting, wait for it
|
|
46
|
+
if (connectPromise) {
|
|
47
|
+
await connectPromise;
|
|
48
|
+
return conversationClient;
|
|
49
|
+
}
|
|
50
|
+
// Start new connection
|
|
51
|
+
connectPromise = (async () => {
|
|
56
52
|
try {
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
const hub = await readHubConfig(getDir());
|
|
54
|
+
const agentInfo = hub?.agents.find(a => a.id === agentId);
|
|
55
|
+
const client = new ConversationClient({
|
|
56
|
+
url: serverUrl,
|
|
57
|
+
agent: {
|
|
58
|
+
id: agentId,
|
|
59
|
+
displayName: agentInfo?.display_name ?? agentId,
|
|
60
|
+
role: agentInfo?.role ?? 'developer',
|
|
61
|
+
tool: agentInfo?.tool ?? 'unknown',
|
|
62
|
+
},
|
|
63
|
+
key: process.env.AGENTHUB_SERVER_KEY,
|
|
64
|
+
});
|
|
65
|
+
await client.connect();
|
|
66
|
+
conversationClient = client;
|
|
67
|
+
// Auto-sync local memory
|
|
68
|
+
try {
|
|
69
|
+
const myMemory = await readAgentMemory(join(getDir(), 'memory', `${agentId}.yaml`));
|
|
70
|
+
if (myMemory && myMemory.entries.length > 0) {
|
|
71
|
+
client.syncMemory(myMemory.entries);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Best-effort
|
|
62
76
|
}
|
|
63
77
|
}
|
|
64
78
|
catch {
|
|
65
|
-
|
|
79
|
+
conversationClient = null;
|
|
66
80
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
finally {
|
|
82
|
+
connectPromise = null;
|
|
83
|
+
}
|
|
84
|
+
})();
|
|
85
|
+
await connectPromise;
|
|
86
|
+
return conversationClient;
|
|
72
87
|
}
|
|
88
|
+
// getClient returns current client (may be null if not yet connected)
|
|
89
|
+
// Tools that need conversation should call ensureConnected() first
|
|
73
90
|
const getClient = () => conversationClient;
|
|
91
|
+
// Expose ensureConnected for tools to use
|
|
92
|
+
const getOrConnectClient = () => ensureConnected();
|
|
74
93
|
// Register tools and resources
|
|
75
94
|
registerMemoryTools(server, getDir, getAgentId, getClient);
|
|
76
|
-
registerConversationTools(server, getDir, getAgentId,
|
|
95
|
+
registerConversationTools(server, getDir, getAgentId, getOrConnectClient);
|
|
77
96
|
registerResources(server, getDir);
|
|
97
|
+
// Try connecting eagerly in background (don't block startup)
|
|
98
|
+
if (serverUrl) {
|
|
99
|
+
ensureConnected().catch(() => { });
|
|
100
|
+
}
|
|
78
101
|
// Connect via stdio
|
|
79
102
|
const transport = new StdioServerTransport();
|
|
80
103
|
await server.connect(transport);
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|