staff-mcp 1.0.23 → 1.0.24
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.
|
@@ -8,8 +8,14 @@ export declare function getPlatformCommand(cmd: string): string;
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function ensureTool(name: string, installCmd?: string): Promise<string>;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Resolves the path to the ripgrep (rg) binary.
|
|
12
|
+
*
|
|
13
|
+
* Look-up order:
|
|
14
|
+
* 1. System PATH — fastest, always correct platform
|
|
15
|
+
* 2. Bundled @vscode/ripgrep — from staff-mcp's own node_modules
|
|
16
|
+
* 3. .staff/tools/ install — container self-install / host fallback
|
|
17
|
+
*
|
|
18
|
+
* If none found, triggers an async background installation to .staff/tools/
|
|
19
|
+
* and returns null so the caller can fall back to JS search for this request.
|
|
14
20
|
*/
|
|
15
21
|
export declare function ensureRipgrep(): Promise<string | null>;
|
|
@@ -2,6 +2,7 @@ import * as path from "path";
|
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import { exec, spawn } from "child_process";
|
|
4
4
|
import { promisify } from "util";
|
|
5
|
+
import { createRequire } from "node:module";
|
|
5
6
|
import { STAFF_TOOLS_DIR, ensureStaffDirs } from "./paths.js";
|
|
6
7
|
const execAsync = promisify(exec);
|
|
7
8
|
/**
|
|
@@ -28,6 +29,81 @@ async function exists(p) {
|
|
|
28
29
|
return false;
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
// ============================================================
|
|
33
|
+
// ripgrep resolution helpers
|
|
34
|
+
// ============================================================
|
|
35
|
+
/** Run `which rg` / `where rg` — non-throwing, returns null if not found. */
|
|
36
|
+
function whichAsync(name) {
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
|
|
39
|
+
exec(cmd, (err, stdout) => {
|
|
40
|
+
if (err || !stdout.trim())
|
|
41
|
+
return resolve(null);
|
|
42
|
+
resolve(stdout.trim().split(/\r?\n/)[0] || null);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Try to load @vscode/ripgrep from staff-mcp's own bundled dependency.
|
|
48
|
+
* In cross-platform Docker (e.g. Windows host → Linux container) this will
|
|
49
|
+
* naturally fail: process.platform = "linux", but the mounted host node_modules
|
|
50
|
+
* only contain the Windows sub-package → MODULE_NOT_FOUND → caught → null.
|
|
51
|
+
*/
|
|
52
|
+
async function tryImportRgPath() {
|
|
53
|
+
try {
|
|
54
|
+
const pkg = await import("@vscode/ripgrep");
|
|
55
|
+
if (pkg.rgPath && fs.existsSync(pkg.rgPath)) {
|
|
56
|
+
return pkg.rgPath;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch { /* cross-platform Docker or not installed */ }
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Try to load @vscode/ripgrep from .staff/tools/node_modules/ (container
|
|
64
|
+
* self-install or host fallback install). Uses createRequire so resolution
|
|
65
|
+
* starts inside the tools directory, bypassing host-mounted node_modules.
|
|
66
|
+
*/
|
|
67
|
+
function tryImportRgPathFromTools() {
|
|
68
|
+
try {
|
|
69
|
+
const placeholder = path.join(STAFF_TOOLS_DIR, "node_modules", "_noop_.js");
|
|
70
|
+
const toolsRequire = createRequire(placeholder);
|
|
71
|
+
const { rgPath } = toolsRequire("@vscode/ripgrep");
|
|
72
|
+
if (rgPath && fs.existsSync(rgPath))
|
|
73
|
+
return rgPath;
|
|
74
|
+
}
|
|
75
|
+
catch { /* not installed yet */ }
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
// Prevent concurrent background installs
|
|
79
|
+
let _rgInstalling = false;
|
|
80
|
+
/**
|
|
81
|
+
* Fire-and-forget background installation of @vscode/ripgrep into .staff/tools/.
|
|
82
|
+
* Uses stdio:"pipe" to avoid polluting the MCP JSON-RPC channel on stdio transport.
|
|
83
|
+
*/
|
|
84
|
+
function installRgBackground() {
|
|
85
|
+
if (_rgInstalling)
|
|
86
|
+
return;
|
|
87
|
+
_rgInstalling = true;
|
|
88
|
+
console.log("[staff-mcp] ripgrep not found, installing to .staff/tools/ ...");
|
|
89
|
+
const npmCmd = getPlatformCommand("npm");
|
|
90
|
+
const child = spawn(npmCmd, ["install", "@vscode/ripgrep"], {
|
|
91
|
+
cwd: STAFF_TOOLS_DIR,
|
|
92
|
+
shell: true,
|
|
93
|
+
stdio: "pipe",
|
|
94
|
+
});
|
|
95
|
+
let stderr = "";
|
|
96
|
+
child.stderr?.on("data", (d) => { stderr += d.toString(); });
|
|
97
|
+
child.on("close", (code) => {
|
|
98
|
+
_rgInstalling = false;
|
|
99
|
+
if (code === 0) {
|
|
100
|
+
console.log("[staff-mcp] ripgrep installed to .staff/tools/");
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.error(`[staff-mcp] ripgrep install failed (exit ${code}):`, stderr.slice(-300));
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
31
107
|
/**
|
|
32
108
|
* Ensures a tool is available. If not found in .staff or system PATH,
|
|
33
109
|
* it attempts to install it into .staff/tools.
|
|
@@ -52,14 +128,7 @@ export async function ensureTool(name, installCmd) {
|
|
|
52
128
|
return resolvedPath;
|
|
53
129
|
}
|
|
54
130
|
catch { }
|
|
55
|
-
// 3.
|
|
56
|
-
if (name === "rg") {
|
|
57
|
-
// Special check for @vscode/ripgrep if installed in the tool directory
|
|
58
|
-
const rgInStaff = path.join(staffNodeModulesPath, "@vscode", "ripgrep", "bin", binaryName);
|
|
59
|
-
if (await exists(rgInStaff))
|
|
60
|
-
return rgInStaff;
|
|
61
|
-
}
|
|
62
|
-
// 4. Trigger Auto-Installation if missing
|
|
131
|
+
// 3. Trigger Auto-Installation if missing
|
|
63
132
|
if (installCmd) {
|
|
64
133
|
console.log(`Tool '${name}' not found. Installing into ${STAFF_TOOLS_DIR}...`);
|
|
65
134
|
// Ensure node_modules exists
|
|
@@ -96,37 +165,31 @@ export async function ensureTool(name, installCmd) {
|
|
|
96
165
|
throw new Error(`Tool '${name}' is not available and no install command was provided.`);
|
|
97
166
|
}
|
|
98
167
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
168
|
+
* Resolves the path to the ripgrep (rg) binary.
|
|
169
|
+
*
|
|
170
|
+
* Look-up order:
|
|
171
|
+
* 1. System PATH — fastest, always correct platform
|
|
172
|
+
* 2. Bundled @vscode/ripgrep — from staff-mcp's own node_modules
|
|
173
|
+
* 3. .staff/tools/ install — container self-install / host fallback
|
|
174
|
+
*
|
|
175
|
+
* If none found, triggers an async background installation to .staff/tools/
|
|
176
|
+
* and returns null so the caller can fall back to JS search for this request.
|
|
102
177
|
*/
|
|
103
178
|
export async function ensureRipgrep() {
|
|
104
|
-
// 1.
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
catch (e) {
|
|
121
|
-
// 3. Not found anywhere. Trigger a background installation.
|
|
122
|
-
// We do NOT await this promise, so the current search will return null instantly
|
|
123
|
-
// and fallback to JS, but next time it might be available.
|
|
124
|
-
console.log("[Background Task] Ripgrep not found. Initiating async background installation...");
|
|
125
|
-
ensureTool("rg", "npm install @vscode/ripgrep").catch(err => {
|
|
126
|
-
console.error("[Background Task] Failed to install ripgrep async:", err.message);
|
|
127
|
-
});
|
|
128
|
-
// Return null to signal fallback for THIS specific request.
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
179
|
+
// 1. System rg
|
|
180
|
+
const systemRg = await whichAsync("rg");
|
|
181
|
+
if (systemRg)
|
|
182
|
+
return systemRg;
|
|
183
|
+
// 2. Bundled dependency (skipped naturally in cross-platform Docker)
|
|
184
|
+
const bundledRg = await tryImportRgPath();
|
|
185
|
+
if (bundledRg)
|
|
186
|
+
return bundledRg;
|
|
187
|
+
// 3. .staff/tools/ self-install
|
|
188
|
+
const toolsRg = tryImportRgPathFromTools();
|
|
189
|
+
if (toolsRg)
|
|
190
|
+
return toolsRg;
|
|
191
|
+
// 4. None available — install in background, fall back to JS for this request
|
|
192
|
+
installRgBackground();
|
|
193
|
+
return null;
|
|
131
194
|
}
|
|
132
195
|
//# sourceMappingURL=tool-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../../../src/utils/tool-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QACpC,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,CAAS;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,UAAmB;IAChE,eAAe,EAAE,CAAC;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B;IAC9F,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAExE,4BAA4B;IAC5B,IAAI,MAAM,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IACpD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,MAAM,CAAC,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC;IAE1F,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAClF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,
|
|
1
|
+
{"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../../../src/utils/tool-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "staff-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/ChineseAStar/staff-mcp.git"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
29
|
-
"@vscode/ripgrep": "
|
|
29
|
+
"@vscode/ripgrep": "1.18.0",
|
|
30
30
|
"commander": "^12.1.0",
|
|
31
31
|
"cors": "^2.8.5",
|
|
32
32
|
"express": "^4.21.1",
|