agentmesh-ai 0.5.7 → 0.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 ADDED
@@ -0,0 +1,66 @@
1
+ # Changelog
2
+
3
+ ## [0.6.1] — 2026-04-12
4
+
5
+ Architecture overhaul for stability. MCP process now isolates Realtime/notifications
6
+ into a worker thread, keeping the main JSON-RPC loop stateless and Figma-level stable.
7
+
8
+ ### Changed
9
+ - **MCP main thread is now stateless.** Every tool call talks to the database
10
+ directly via REST. No long-lived WebSocket state in the main thread.
11
+ - **`discuss` tool uses adaptive DB polling** (100ms / 500ms / 2s based on how
12
+ long you've been waiting) instead of Realtime push. Latency ≤500ms in the
13
+ common case, with no connection-state bugs.
14
+ - **Realtime + desktop notifications run in a Node.js worker thread** (see
15
+ `docs/spec/worker-rules.md`). If the worker crashes, the main MCP keeps
16
+ serving tool calls, and the worker auto-restarts. Worker also auto-restarts
17
+ every hour to recycle memory.
18
+ - **macOS notifications fixed.** Now uses `display notification` (goes to
19
+ Notification Center, with sound), via `execFile` to avoid all shell escaping
20
+ bugs. Previously notifications could silently fail for any username/topic
21
+ containing an apostrophe. First use on macOS requires Automation permission
22
+ for your AI tool (Cursor / Claude Code) — check System Settings → Privacy &
23
+ Security → Automation.
24
+ - **Linux notifications** also switched to `execFile` for the same safety.
25
+ - **Version string** in the MCP `ServerInfo` is now `AgentMesh 0.6.0` (was
26
+ `AgentHub 0.3.0`).
27
+
28
+ ### Removed
29
+ - `src/cloud/cloud-conversation.ts` (CloudConversationClient, ~600 lines).
30
+ Its responsibilities are now split between the worker thread (Realtime +
31
+ notifications) and DB polling in tools.
32
+ - `CloudConversationClient` exports from `src/cloud/index.ts`.
33
+ - 30-second background polling `setInterval` in the MCP main thread.
34
+ - `ensureCloudConnected()` / `ensureWsConnected()` glue code in the MCP entry.
35
+
36
+ ### Added
37
+ - `src/mcp/worker.ts` — worker thread entry point.
38
+ - `docs/spec/worker-rules.md` — 8 strict coding rules for any code that runs in
39
+ the worker thread. Required reading before editing worker code.
40
+ - `WorkerManager` in `src/mcp/index.ts` with crash circuit breaker (3 crashes
41
+ in 30s → 5-minute cooldown), heartbeat watchdog (60s timeout → kill & restart),
42
+ and hourly restart for memory hygiene.
43
+ - `AGENTHUB_NOTIFY=false` environment variable to opt out of desktop
44
+ notifications.
45
+
46
+ ### Migration Notes
47
+ - **No user action required.** Existing `.agenthub/hub.yaml` configs work
48
+ unchanged.
49
+ - **macOS users:** the first time a notification fires, macOS may ask your AI
50
+ tool for Automation permission. Approve it once in System Settings.
51
+ - The legacy local-WebSocket mode (`npx agentmesh-ai serve` + `join ws://...`)
52
+ is still present in the codebase but is not the recommended path. Use
53
+ cloud-based teams via `init` / `join <team-id>`.
54
+
55
+ ---
56
+
57
+ ## Earlier versions
58
+
59
+ Versions before 0.6.0 had two critical stability issues that this release
60
+ addresses:
61
+ 1. MCP process would disconnect every few minutes because Realtime + polling +
62
+ notifications all ran on the main event loop.
63
+ 2. macOS users rarely received desktop notifications due to shell-escape bugs
64
+ and use of `display alert` (modal dialog) instead of `display notification`.
65
+
66
+ See commit history for pre-0.6.0 changes.
package/GUIDE-EN.md CHANGED
@@ -200,6 +200,19 @@ You said one sentence. The AIs handled the rest.
200
200
 
201
201
  Messages are saved in the cloud. Next time they use their AI, `read_memory` will show "there are unread discussions waiting for your input".
202
202
 
203
+ ### macOS Notification Permission (First-Time Setup)
204
+
205
+ The first time a notification fires on macOS, the system prompts: **"Cursor/Claude Code wants to control System Events"** — click **Allow**.
206
+
207
+ If you dismissed it or still don't see notifications:
208
+
209
+ 1. Open **System Settings → Privacy & Security → Automation**
210
+ 2. Find your AI tool (Cursor, Claude Code, Windsurf)
211
+ 3. Enable **"System Events"**
212
+ 4. Restart your AI tool
213
+
214
+ You only need to approve this once per AI tool. Notifications appear in Notification Center with a Glass sound.
215
+
203
216
  ### Disable Notifications
204
217
 
205
218
  Set the environment variable `AGENTHUB_NOTIFY=false` to turn off desktop notifications.
@@ -254,61 +267,62 @@ Tell your AI: "Record the frontend routing plan, it depends on our Auth Strategy
254
267
 
255
268
  The AI will include `references: ["Auth Strategy"]` in the write. If someone later updates "Auth Strategy", the system warns: "1 entry depends on this topic".
256
269
 
257
- ### Event System & Timeline
270
+ ### Document Sharing
258
271
 
259
- All memory changes, discussions, and decisions generate events. You can review what happened:
272
+ Want to share a full document with your teammate's AI? Use discuss in fire-and-forget mode:
260
273
 
261
274
  ```
262
- Tell your AI: "Show me what happened this week" → calls memory_timeline
263
- Tell your AI: "What memory changes happened recently" → calls list_events
275
+ Tell your AI: "Share this API design doc with the team" → calls discuss(wait_seconds=0), sends full content
264
276
  ```
265
277
 
266
- ### Webhooks
278
+ Your teammate's AI receives the complete text, no file upload needed.
279
+
280
+ ### Meeting Mode
267
281
 
268
- Push events to external systems (Slack, Discord, CI/CD, etc.):
282
+ For discussions that need everyone:
269
283
 
270
284
  ```
271
- Tell your AI: "Register a webhook to notify https://my-server.com/hook whenever a decision passes"
285
+ Tell your AI: "Gather everyone to discuss the database choice" → calls discuss(require_all=true)
272
286
  ```
273
287
 
274
- Webhooks are signed with HMAC-SHA256 for verification.
288
+ ### Automated Features
275
289
 
276
- ### Memory Quality Scoring
290
+ These features run automatically — no manual invocation needed:
277
291
 
278
- AI can score all entries and recommend which to protect (high value) or archive (low value):
292
+ - **Capability declaration** on MCP startup, reads your role from hub.yaml and registers it
293
+ - **Memory health check** — after each write, auto-detects duplicates and conflicts
294
+ - **Event logging** — all memory changes, discussions, and decisions generate events automatically
279
295
 
280
- ```
281
- Tell your AI: "Analyze memory quality" → calls memory_quality
282
- ```
296
+ ### SDK Advanced Features
283
297
 
284
- Scoring factors: reference count, decision impact, freshness, discussion activity, author diversity.
298
+ These features are available through the SDK (for power users and automation):
285
299
 
286
- ### Agent Capabilities
300
+ ```typescript
301
+ import { AgentMeshSDK } from 'agentmesh-ai/sdk';
302
+ const sdk = new AgentMeshSDK({ teamId, agentId });
287
303
 
288
- AI agents can declare their expertise. The system suggests the best agent for discussions:
304
+ // Events and timeline
305
+ await sdk.getEvents({ type: 'memory_created', since: '2024-01-01' });
306
+ await sdk.getTimeline();
289
307
 
290
- ```
291
- Tell your AI: "Declare that I'm an expert in React and the payment module"
292
- Later: "Find who knows the most about database optimization"
293
- ```
294
-
295
- ### Conflict Auto-Mediation
296
-
297
- During health checks, if two AIs have contradictory records on the same topic, the system can auto-start a discussion:
308
+ // Memory quality scoring
309
+ await sdk.getQualityScores();
298
310
 
299
- ```
300
- Tell your AI: "Check memory health and auto-mediate any conflicts"
311
+ // Expert finder
312
+ await sdk.findExperts('database optimization');
301
313
  ```
302
314
 
303
315
  ### Cross-Team Federation
304
316
 
305
- Two teams can share specific types of knowledge without merging:
317
+ Manage cross-team knowledge sharing via CLI:
306
318
 
307
- ```
308
- Tell your AI: "Federate with backend team team-xyz, share only API knowledge"
319
+ ```bash
320
+ npx agentmesh-ai federation create <other-team-id> --categories api,convention
321
+ npx agentmesh-ai federation accept <link-id>
322
+ npx agentmesh-ai federation list
309
323
  ```
310
324
 
311
- After the other team accepts, both teams' `read_memory` will show federated entries.
325
+ Once federated, both teams' `read_memory` will show shared entries.
312
326
 
313
327
  ### Team Templates
314
328
 
package/GUIDE.md CHANGED
@@ -202,6 +202,19 @@ npx agentmesh-ai join team-a1b2c3d4
202
202
 
203
203
  消息会保存在云端。队友下次用 AI 时,`read_memory` 会提示"有未读的讨论等待你参与"。
204
204
 
205
+ ### macOS 通知权限(首次使用必看)
206
+
207
+ macOS 第一次收到 AgentMesh 桌面通知时,系统会弹出:"**Cursor/Claude Code wants to control System Events**",点**允许**。
208
+
209
+ 如果误点了"不允许"或没收到通知:
210
+
211
+ 1. 打开**系统设置 → 隐私与安全性 → 自动化**
212
+ 2. 找到你的 AI 工具(Cursor、Claude Code、Windsurf)
213
+ 3. 勾选 **"系统事件"**(System Events)
214
+ 4. 重启 AI 工具
215
+
216
+ 每个 AI 工具只需授权一次。通知会进 macOS 通知中心并带 Glass 音效。
217
+
205
218
  ### 关闭通知
206
219
 
207
220
  如果通知太频繁,可以设置环境变量 `AGENTHUB_NOTIFY=false` 关闭桌面通知。
@@ -270,71 +283,62 @@ npx agentmesh-ai memory -s "数据库"
270
283
 
271
284
  AI 调用 write_memory 时会带上 `references: ["Auth Strategy"]`。以后如果有人更新了 "Auth Strategy",write_memory 会提示:"有 1 个条目依赖于这个 topic"。
272
285
 
273
- ### 事件系统和时间线
286
+ ### 文档共享
274
287
 
275
- 所有记忆变更、讨论、决策都会产生事件记录。你可以回溯发生了什么:
288
+ 想把一份文档发给队友的 AI?用 discuss 工具的快发模式:
276
289
 
277
290
  ```
278
- 对 AI 说:"看看这周团队发生了什么" → AI 调用 memory_timeline
279
- 对 AI 说:"最近有哪些记忆变更" → AI 调用 list_events
291
+ 对 AI 说:"把这份 API 设计文档分享给团队" → AI 调用 discuss(wait_seconds=0),完整内容直接发送
280
292
  ```
281
293
 
282
- ### Webhook 通知
294
+ 队友的 AI 会收到完整文本,不需要文件上传。
295
+
296
+ ### 会议模式
283
297
 
284
- 可以把事件推送到外部系统(Slack、飞书、CI/CD 等):
298
+ 需要所有人都参与的讨论:
285
299
 
286
300
  ```
287
- 对 AI 说:"注册一个 webhook,每次有新决策通过时通知 https://my-server.com/hook"
301
+ 对 AI 说:"召集所有人讨论数据库选型" → AI 调用 discuss(require_all=true),等所有在线 Agent 回复
288
302
  ```
289
303
 
290
- Webhook 使用 HMAC-SHA256 签名,接收方可以验证请求真实性。
304
+ ### 自动化功能
291
305
 
292
- ### 记忆质量评分
306
+ 以下功能已自动化,不需要手动调用:
293
307
 
294
- AI 可以给所有记忆条目打分,推荐哪些应该保护(高价值)、哪些可以归档(低价值):
308
+ - **能力声明** — MCP 启动时自动从 hub.yaml 读取角色并注册
309
+ - **记忆健康检查** — 每次写入记忆后自动检测重复和冲突
310
+ - **事件记录** — 所有记忆变更、讨论、决策自动生成事件
295
311
 
296
- ```
297
- 对 AI 说:"分析一下记忆质量" → AI 调用 memory_quality
298
- ```
299
-
300
- 评分维度:被引用次数、决策影响力、新鲜度、讨论活跃度、作者多样性。
312
+ ### SDK 高级功能
301
313
 
302
- ### Agent 能力声明
314
+ 以下功能通过 SDK 访问(适合高级用户和自动化场景):
303
315
 
304
- AI 可以声明自己擅长什么。讨论时系统会推荐最合适的人选:
316
+ ```typescript
317
+ import { AgentMeshSDK } from 'agentmesh-ai/sdk';
318
+ const sdk = new AgentMeshSDK({ teamId, agentId });
305
319
 
306
- ```
307
- AI 说:"声明我擅长 React 和支付模块" → AI 调用 declare_capabilities
308
- AI 说:"找谁最懂数据库优化" → AI 调用 find_expert
309
- ```
320
+ // 事件和时间线
321
+ await sdk.getEvents({ type: 'memory_created', since: '2024-01-01' });
322
+ await sdk.getTimeline();
310
323
 
311
- ### 冲突自动调解
324
+ // 记忆质量评分
325
+ await sdk.getQualityScores();
312
326
 
313
- 运行健康检查时,如果发现两个 AI 对同一个 topic 有矛盾的记录,可以自动发起讨论:
314
-
315
- ```
316
- 对 AI 说:"检查记忆健康,有冲突的自动调解" → AI 调用 consolidate_memory(auto_mediate: true)
327
+ // 专家查找
328
+ await sdk.findExperts('database optimization');
317
329
  ```
318
330
 
319
- 系统会在对话频道插入一条调解消息,邀请冲突双方讨论。
320
-
321
331
  ### 跨团队联邦
322
332
 
323
- 两个团队可以共享特定类型的知识,而不需要合并成一个团队:
333
+ 通过 CLI 操作跨团队知识共享:
324
334
 
325
- ```
326
- AI 说:"和后端团队 team-xyz 建立联邦,只共享 API 类的知识"
335
+ ```bash
336
+ npx agentmesh-ai federation create <other-team-id> --categories api,convention
337
+ npx agentmesh-ai federation accept <link-id>
338
+ npx agentmesh-ai federation list
327
339
  ```
328
340
 
329
- 对方团队接受后,双方的 `read_memory` 会自动显示联邦知识。
330
-
331
- ### 团队模板
332
-
333
- 团队积累的最佳实践可以导出为模板,新项目初始化时直接导入:
334
-
335
- ```
336
- 对 AI 说:"把我们团队的知识导出为模板,名字叫 NextJS 全栈最佳实践"
337
- ```
341
+ 建立联邦后,双方的 `read_memory` 会自动显示联邦知识。
338
342
 
339
343
  ---
340
344
 
package/README.md CHANGED
@@ -236,36 +236,21 @@ See [SDK Guide](docs/guides/sdk.md) for full documentation.
236
236
 
237
237
  ## MCP Tools (used by AI automatically)
238
238
 
239
- ### Memory (12 tools)
239
+ ### Memory (3 tools)
240
240
 
241
241
  | Tool | What It Does |
242
242
  |------|-------------|
243
- | `read_memory` | Read shared knowledge (index or full details) |
243
+ | `read_memory` | Read shared knowledge, active discussions, and pending votes |
244
244
  | `write_memory` | Record knowledge with categories, references, protection |
245
245
  | `search_memory` | Search by keyword with relevance scoring |
246
- | `consolidate_memory` | Health check: find duplicates, stale entries, conflicts |
247
- | `list_events` | See recent activity (who changed what, when) |
248
- | `memory_timeline` | Chronological view of how knowledge evolved |
249
- | `memory_quality` | Score entries by value — recommend protect or archive |
250
- | `declare_capabilities` | Declare what this agent is good at |
251
- | `find_expert` | Find who knows the most about a topic |
252
- | `federate_team` | Share knowledge with another team |
253
- | `accept_federation` | Accept a cross-team sharing link |
254
- | `list_federations` | Show all cross-team links |
255
-
256
- ### Conversation (9 tools)
246
+
247
+ ### Conversation (3 tools)
257
248
 
258
249
  | Tool | What It Does |
259
250
  |------|-------------|
260
- | `discuss` | Multi-round team discussion (up to 30 min) |
261
- | `send_message` | Send a single message |
262
- | `get_messages` | Read messages on a topic |
263
- | `start_meeting` | Check attendance before discussion |
264
- | `list_conversations` | See who's online, what's being discussed |
265
- | `save_to_memory` | Save discussion conclusion |
251
+ | `discuss` | Multi-round team discussion, document sharing (wait_seconds=0), meeting mode (require_all=true) |
266
252
  | `escalate_to_human` | Team-wide vote on important decisions |
267
- | `vote_on_decision` | Cast vote on pending decision |
268
- | `list_pending_decisions` | See what needs voting |
253
+ | `vote` | Cast vote on pending decision |
269
254
 
270
255
  ---
271
256
 
@@ -177,7 +177,7 @@ export async function joinCommand(teamId) {
177
177
  if (!configured) {
178
178
  console.log(chalk.yellow(' ⚠️ Could not auto-configure MCP.'));
179
179
  console.log(chalk.dim(' For Claude Code, run manually:'));
180
- console.log(chalk.dim(` claude mcp add agentmesh -e AGENTHUB_AGENT_ID=${agentId} -e AGENTHUB_TEAM_ID=${teamId} -- npx -y agentmesh-ai mcp`));
180
+ console.log(chalk.dim(` claude mcp add agentmesh -- npx -y agentmesh-ai mcp`));
181
181
  return;
182
182
  }
183
183
  // Inject rules into tool-native config files
@@ -231,71 +231,45 @@ async function configureMcp(cwd, agentId, teamId) {
231
231
  execSync('claude mcp remove agentmesh', { stdio: 'pipe' });
232
232
  }
233
233
  catch { /* ok */ }
234
- execSync(`claude mcp add agentmesh -e AGENTHUB_AGENT_ID=${agentId} -e AGENTHUB_TEAM_ID=${teamId} -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
234
+ execSync(`claude mcp add agentmesh -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
235
235
  console.log(chalk.green(' ✅ MCP configured (Claude Code)'));
236
236
  return true;
237
237
  }
238
238
  catch {
239
239
  // Claude Code CLI not available
240
240
  }
241
- // Try Cursor
242
- const cursorDir = join(cwd, '.cursor');
243
- try {
244
- if (!existsSync(cursorDir))
245
- await mkdir(cursorDir, { recursive: true });
246
- const configPath = join(cursorDir, 'mcp.json');
247
- let existing = {};
248
- if (existsSync(configPath)) {
249
- try {
250
- existing = JSON.parse(await readFile(configPath, 'utf-8'));
251
- }
252
- catch { /* ok */ }
253
- }
254
- const merged = {
255
- ...existing,
256
- mcpServers: {
257
- ...existing.mcpServers,
258
- agentmesh: {
259
- command: 'npx',
260
- args: ['-y', 'agentmesh-ai', 'mcp'],
261
- env: { AGENTHUB_AGENT_ID: agentId, AGENTHUB_TEAM_ID: teamId },
262
- },
263
- },
264
- };
265
- await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
266
- console.log(chalk.green(` ✅ MCP configured (Cursor): ${configPath}`));
267
- return true;
268
- }
269
- catch { /* Failed */ }
270
- // Try Windsurf
271
- const windsurfDir = join(cwd, '.windsurf');
272
- if (existsSync(windsurfDir)) {
241
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
242
+ // MCP config — no env vars, auto-detects from hub.yaml at runtime
243
+ const serverConfig = {
244
+ command: 'npx',
245
+ args: ['-y', 'agentmesh-ai', 'mcp'],
246
+ };
247
+ // Write to global config so it survives restarts
248
+ let configured = false;
249
+ for (const tool of ['cursor', 'windsurf']) {
250
+ const globalDir = join(homeDir, `.${tool}`);
251
+ const globalPath = join(globalDir, 'mcp.json');
273
252
  try {
274
- const configPath = join(windsurfDir, 'mcp.json');
253
+ if (!existsSync(globalDir))
254
+ await mkdir(globalDir, { recursive: true });
275
255
  let existing = {};
276
- if (existsSync(configPath)) {
256
+ if (existsSync(globalPath)) {
277
257
  try {
278
- existing = JSON.parse(await readFile(configPath, 'utf-8'));
258
+ existing = JSON.parse(await readFile(globalPath, 'utf-8'));
279
259
  }
280
260
  catch { /* ok */ }
281
261
  }
282
262
  const merged = {
283
263
  ...existing,
284
- mcpServers: {
285
- ...existing.mcpServers,
286
- agentmesh: {
287
- command: 'npx',
288
- args: ['-y', 'agentmesh-ai', 'mcp'],
289
- env: { AGENTHUB_AGENT_ID: agentId, AGENTHUB_TEAM_ID: teamId },
290
- },
291
- },
264
+ mcpServers: { ...existing.mcpServers, agentmesh: serverConfig },
292
265
  };
293
- await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
294
- console.log(chalk.green(` ✅ MCP configured (Windsurf): ${configPath}`));
295
- return true;
266
+ await writeFile(globalPath, JSON.stringify(merged, null, 2), 'utf-8');
267
+ const toolName = tool === 'cursor' ? 'Cursor' : 'Windsurf';
268
+ console.log(chalk.green(` ✅ MCP configured (${toolName}): ${globalPath}`));
269
+ configured = true;
296
270
  }
297
271
  catch { /* ok */ }
298
272
  }
299
- return false;
273
+ return configured;
300
274
  }
301
275
  //# sourceMappingURL=join.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"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"}
@@ -105,62 +105,55 @@ async function setupClaudeCode(agentId, teamId) {
105
105
  catch {
106
106
  // Didn't exist, that's fine
107
107
  }
108
- // Build env flags
109
- let envFlags = `-e AGENTHUB_AGENT_ID=${agentId}`;
110
- if (teamId)
111
- envFlags += ` -e AGENTHUB_TEAM_ID=${teamId}`;
112
- // Add MCP server via claude CLI
113
- execSync(`claude mcp add agentmesh ${envFlags} -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
108
+ // No env vars needed — MCP auto-detects from hub.yaml at runtime
109
+ execSync(`claude mcp add agentmesh -- npx -y agentmesh-ai mcp`, { stdio: 'pipe' });
114
110
  console.log(chalk.green(' ✅ Claude Code: configured via `claude mcp add`'));
115
111
  }
116
112
  catch (err) {
117
113
  console.log(chalk.yellow(' ⚠️ Claude Code: could not run `claude mcp add`.'));
118
114
  console.log(chalk.dim(' Run this manually:'));
119
115
  console.log('');
120
- console.log(chalk.cyan(` claude mcp add agentmesh \\`));
121
- console.log(chalk.cyan(` -e AGENTHUB_AGENT_ID=${agentId} \\`));
122
- if (teamId)
123
- console.log(chalk.cyan(` -e AGENTHUB_TEAM_ID=${teamId} \\`));
124
- console.log(chalk.cyan(` -- npx -y agentmesh-ai mcp`));
116
+ console.log(chalk.cyan(` claude mcp add agentmesh -- npx -y agentmesh-ai mcp`));
125
117
  console.log('');
126
118
  }
127
119
  }
128
120
  async function setupConfigFile(cwd, toolSlug, agentId, teamId) {
129
- const configDir = join(cwd, `.${toolSlug}`);
130
- const configPath = join(configDir, 'mcp.json');
131
- const env = { AGENTHUB_AGENT_ID: agentId };
132
- if (teamId)
133
- env.AGENTHUB_TEAM_ID = teamId;
134
- const mcpConfig = {
135
- mcpServers: {
136
- agentmesh: {
137
- command: 'npx',
138
- args: ['-y', 'agentmesh-ai', 'mcp'],
139
- env,
140
- },
141
- },
121
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
122
+ // MCP server config — no env vars needed, auto-detects from hub.yaml at runtime
123
+ const serverConfig = {
124
+ command: 'npx',
125
+ args: ['-y', 'agentmesh-ai', 'mcp'],
142
126
  };
143
- if (!existsSync(configDir)) {
144
- await mkdir(configDir, { recursive: true });
145
- }
146
- let existing = {};
147
- if (existsSync(configPath)) {
148
- try {
149
- existing = JSON.parse(await readFile(configPath, 'utf-8'));
127
+ const toolName = toolSlug === 'cursor' ? 'Cursor' : toolSlug === 'windsurf' ? 'Windsurf' : toolSlug;
128
+ // Write to global config (~/.cursor/mcp.json) so it survives Cursor restarts
129
+ // MCP auto-reads team_id and agent_id from the project's .agenthub/hub.yaml
130
+ const globalDir = join(homeDir, `.${toolSlug}`);
131
+ const globalPath = join(globalDir, 'mcp.json');
132
+ try {
133
+ if (!existsSync(globalDir)) {
134
+ await mkdir(globalDir, { recursive: true });
150
135
  }
151
- catch {
152
- existing = {};
136
+ let existing = {};
137
+ if (existsSync(globalPath)) {
138
+ try {
139
+ existing = JSON.parse(await readFile(globalPath, 'utf-8'));
140
+ }
141
+ catch {
142
+ existing = {};
143
+ }
153
144
  }
145
+ const merged = {
146
+ ...existing,
147
+ mcpServers: {
148
+ ...existing.mcpServers,
149
+ agentmesh: serverConfig,
150
+ },
151
+ };
152
+ await writeFile(globalPath, JSON.stringify(merged, null, 2), 'utf-8');
153
+ console.log(chalk.green(` ✅ ${toolName}: ${globalPath} (global — works in all projects)`));
154
+ }
155
+ catch (err) {
156
+ console.log(chalk.yellow(` ⚠️ ${toolName}: could not write global config: ${err.message}`));
154
157
  }
155
- const merged = {
156
- ...existing,
157
- mcpServers: {
158
- ...existing.mcpServers,
159
- ...mcpConfig.mcpServers,
160
- },
161
- };
162
- await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
163
- const toolName = toolSlug === 'cursor' ? 'Cursor' : toolSlug === 'windsurf' ? 'Windsurf' : toolSlug;
164
- console.log(chalk.green(` ✅ ${toolName}: ${configPath}`));
165
158
  }
166
159
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}