botmux 1.13.7 → 1.13.8
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/dist/server.d.ts.map +1 -1
- package/dist/server.js +31 -12
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCpE,wBAAgB,YAAY,IAAI,SAAS,CA8ExC"}
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { execSync } from 'node:child_process';
|
|
3
4
|
import { existsSync } from 'node:fs';
|
|
4
5
|
import { join } from 'node:path';
|
|
5
6
|
import { registerBot, loadBotConfigs } from './bot-registry.js';
|
|
@@ -7,19 +8,36 @@ import * as sessionStore from './services/session-store.js';
|
|
|
7
8
|
import { tools } from './tools/index.js';
|
|
8
9
|
import { logger } from './utils/logger.js';
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
-
* botmux worker.
|
|
12
|
-
*
|
|
13
|
-
* after spawning each CLI. The MCP server checks if its own ppid has a
|
|
14
|
-
* corresponding marker.
|
|
11
|
+
* Walk up the process tree and check whether any ancestor has a CLI PID
|
|
12
|
+
* marker written by the botmux worker. Walking (not just checking ppid)
|
|
13
|
+
* handles CLIs that fork internal subprocesses before spawning MCP servers.
|
|
15
14
|
*
|
|
16
|
-
* Cross-platform: uses
|
|
15
|
+
* Cross-platform: uses `ps -o ppid=` (works on macOS + Linux).
|
|
17
16
|
*/
|
|
18
|
-
function
|
|
17
|
+
function hasAncestorCliMarker() {
|
|
19
18
|
const dataDir = process.env.SESSION_DATA_DIR;
|
|
20
19
|
if (!dataDir)
|
|
21
20
|
return false;
|
|
22
|
-
|
|
21
|
+
const markersDir = join(dataDir, '.botmux-cli-pids');
|
|
22
|
+
let pid = process.ppid;
|
|
23
|
+
for (let depth = 0; depth < 8 && pid > 1; depth++) {
|
|
24
|
+
if (existsSync(join(markersDir, String(pid))))
|
|
25
|
+
return true;
|
|
26
|
+
try {
|
|
27
|
+
const output = execSync(`ps -o ppid= -p ${pid}`, {
|
|
28
|
+
encoding: 'utf-8',
|
|
29
|
+
timeout: 2000,
|
|
30
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
31
|
+
}).trim();
|
|
32
|
+
pid = parseInt(output, 10);
|
|
33
|
+
if (isNaN(pid))
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
23
41
|
}
|
|
24
42
|
export function createServer() {
|
|
25
43
|
// Register all bots so MCP tools can send messages as any bot.
|
|
@@ -47,10 +65,11 @@ export function createServer() {
|
|
|
47
65
|
// CLI MCP servers (the MCP SDK only passes config env + a 6-var
|
|
48
66
|
// whitelist to the server subprocess, NOT the full parent env).
|
|
49
67
|
//
|
|
50
|
-
// 2.
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
|
|
68
|
+
// 2. hasAncestorCliMarker() — walks the process tree (via `ps -o ppid=`)
|
|
69
|
+
// and checks if any ancestor PID has a marker file written by the
|
|
70
|
+
// botmux worker. Handles CLIs that fork internal subprocesses.
|
|
71
|
+
// Cross-platform: `ps -o ppid=` works on both macOS and Linux.
|
|
72
|
+
const isBotmuxSession = process.env.BOTMUX === '1' && hasAncestorCliMarker();
|
|
54
73
|
const instructions = isBotmuxSession
|
|
55
74
|
? [
|
|
56
75
|
'You are connected to a Lark (Feishu) topic group. The user reads Lark, not your terminal.',
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|