winhelm-mcp 1.1.0
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 +96 -0
- package/LICENSE +21 -0
- package/README.md +646 -0
- package/dist/config/config-manager.d.ts +50 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +300 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/default-config.d.ts +4 -0
- package/dist/config/default-config.d.ts.map +1 -0
- package/dist/config/default-config.js +48 -0
- package/dist/config/default-config.js.map +1 -0
- package/dist/config/profiles.d.ts +16 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +208 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/engine/filesystem.d.ts +52 -0
- package/dist/engine/filesystem.d.ts.map +1 -0
- package/dist/engine/filesystem.js +499 -0
- package/dist/engine/filesystem.js.map +1 -0
- package/dist/engine/http-client.d.ts +10 -0
- package/dist/engine/http-client.d.ts.map +1 -0
- package/dist/engine/http-client.js +93 -0
- package/dist/engine/http-client.js.map +1 -0
- package/dist/engine/pdf-generator.d.ts +15 -0
- package/dist/engine/pdf-generator.d.ts.map +1 -0
- package/dist/engine/pdf-generator.js +325 -0
- package/dist/engine/pdf-generator.js.map +1 -0
- package/dist/engine/powershell-runner.d.ts +23 -0
- package/dist/engine/powershell-runner.d.ts.map +1 -0
- package/dist/engine/powershell-runner.js +148 -0
- package/dist/engine/powershell-runner.js.map +1 -0
- package/dist/engine/ripgrep.d.ts +20 -0
- package/dist/engine/ripgrep.d.ts.map +1 -0
- package/dist/engine/ripgrep.js +173 -0
- package/dist/engine/ripgrep.js.map +1 -0
- package/dist/engine/system.d.ts +67 -0
- package/dist/engine/system.d.ts.map +1 -0
- package/dist/engine/system.js +558 -0
- package/dist/engine/system.js.map +1 -0
- package/dist/engine/task-manager.d.ts +66 -0
- package/dist/engine/task-manager.d.ts.map +1 -0
- package/dist/engine/task-manager.js +203 -0
- package/dist/engine/task-manager.js.map +1 -0
- package/dist/gateway/dashboard-html.d.ts +7 -0
- package/dist/gateway/dashboard-html.d.ts.map +1 -0
- package/dist/gateway/dashboard-html.js +624 -0
- package/dist/gateway/dashboard-html.js.map +1 -0
- package/dist/gateway/preview-html.d.ts +5 -0
- package/dist/gateway/preview-html.d.ts.map +1 -0
- package/dist/gateway/preview-html.js +351 -0
- package/dist/gateway/preview-html.js.map +1 -0
- package/dist/gateway/rate-limiter.d.ts +8 -0
- package/dist/gateway/rate-limiter.d.ts.map +1 -0
- package/dist/gateway/rate-limiter.js +51 -0
- package/dist/gateway/rate-limiter.js.map +1 -0
- package/dist/gateway/server.d.ts +18 -0
- package/dist/gateway/server.d.ts.map +1 -0
- package/dist/gateway/server.js +337 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/gateway/sse-gateway.d.ts +43 -0
- package/dist/gateway/sse-gateway.d.ts.map +1 -0
- package/dist/gateway/sse-gateway.js +161 -0
- package/dist/gateway/sse-gateway.js.map +1 -0
- package/dist/gateway/streamable-gateway.d.ts +39 -0
- package/dist/gateway/streamable-gateway.d.ts.map +1 -0
- package/dist/gateway/streamable-gateway.js +176 -0
- package/dist/gateway/streamable-gateway.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +164 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/desktop-tools.d.ts +3 -0
- package/dist/tools/desktop-tools.d.ts.map +1 -0
- package/dist/tools/desktop-tools.js +280 -0
- package/dist/tools/desktop-tools.js.map +1 -0
- package/dist/tools/file-tools.d.ts +3 -0
- package/dist/tools/file-tools.d.ts.map +1 -0
- package/dist/tools/file-tools.js +433 -0
- package/dist/tools/file-tools.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/network-tools.d.ts +3 -0
- package/dist/tools/network-tools.d.ts.map +1 -0
- package/dist/tools/network-tools.js +108 -0
- package/dist/tools/network-tools.js.map +1 -0
- package/dist/tools/registry.d.ts +50 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +54 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/terminal-tools.d.ts +3 -0
- package/dist/tools/terminal-tools.d.ts.map +1 -0
- package/dist/tools/terminal-tools.js +152 -0
- package/dist/tools/terminal-tools.js.map +1 -0
- package/dist/tools/tool-wrapper.d.ts +7 -0
- package/dist/tools/tool-wrapper.d.ts.map +1 -0
- package/dist/tools/tool-wrapper.js +47 -0
- package/dist/tools/tool-wrapper.js.map +1 -0
- package/dist/types/index.d.ts +261 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/file-logger.d.ts +24 -0
- package/dist/utils/file-logger.d.ts.map +1 -0
- package/dist/utils/file-logger.js +117 -0
- package/dist/utils/file-logger.js.map +1 -0
- package/dist/utils/logger.d.ts +51 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +189 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/sanitizer.d.ts +13 -0
- package/dist/utils/sanitizer.d.ts.map +1 -0
- package/dist/utils/sanitizer.js +60 -0
- package/dist/utils/sanitizer.js.map +1 -0
- package/docs/EXAMPLES.md +171 -0
- package/docs/PROFILES.md +423 -0
- package/docs/SECURITY.md +190 -0
- package/docs/TOOLS.md +366 -0
- package/manifest.json +74 -0
- package/package.json +89 -0
- package/scripts/build-exe.ps1 +37 -0
- package/scripts/manage-service.ps1 +112 -0
- package/server.json +23 -0
- package/winhelm.config.example.json +30 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { execFile, execSync } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import { ConfigManager } from "../config/config-manager.js";
|
|
7
|
+
import { searchInFiles } from "./filesystem.js";
|
|
8
|
+
const execFileAsync = promisify(execFile);
|
|
9
|
+
let cachedRgPath = null;
|
|
10
|
+
/**
|
|
11
|
+
* Locate ripgrep executable (rg.exe) with multi-path resolution
|
|
12
|
+
*/
|
|
13
|
+
export function findRipgrepPath() {
|
|
14
|
+
if (cachedRgPath && existsSync(cachedRgPath)) {
|
|
15
|
+
return cachedRgPath;
|
|
16
|
+
}
|
|
17
|
+
// Strategy 1: System PATH via where.exe
|
|
18
|
+
try {
|
|
19
|
+
const whereOut = execSync("where.exe rg.exe", {
|
|
20
|
+
encoding: "utf-8",
|
|
21
|
+
stdio: ["pipe", "pipe", "ignore"],
|
|
22
|
+
}).trim().split(/\r?\n/)[0];
|
|
23
|
+
if (whereOut && existsSync(whereOut)) {
|
|
24
|
+
cachedRgPath = whereOut;
|
|
25
|
+
return whereOut;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Not found in PATH
|
|
30
|
+
}
|
|
31
|
+
// Strategy 2: Common Windows installation paths (WinGet, Scoop, Cargo, Program Files)
|
|
32
|
+
const home = os.homedir();
|
|
33
|
+
const commonPaths = [
|
|
34
|
+
path.join(home, "scoop", "apps", "ripgrep", "current", "rg.exe"),
|
|
35
|
+
path.join(home, ".cargo", "bin", "rg.exe"),
|
|
36
|
+
"C:\\Program Files\\Ripgrep\\rg.exe",
|
|
37
|
+
"C:\\Program Files (x86)\\Ripgrep\\rg.exe",
|
|
38
|
+
];
|
|
39
|
+
for (const candidate of commonPaths) {
|
|
40
|
+
if (existsSync(candidate)) {
|
|
41
|
+
cachedRgPath = candidate;
|
|
42
|
+
return candidate;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Execute paginated high-speed codebase search using ripgrep with fallback
|
|
49
|
+
*/
|
|
50
|
+
export async function searchCodebase(options) {
|
|
51
|
+
const configManager = ConfigManager.getInstance();
|
|
52
|
+
const targetPath = options.searchPath ? path.resolve(options.searchPath) : process.cwd();
|
|
53
|
+
const pathCheck = configManager.isPathAllowed(targetPath);
|
|
54
|
+
if (!pathCheck.allowed) {
|
|
55
|
+
throw new Error(pathCheck.reason);
|
|
56
|
+
}
|
|
57
|
+
const page = Math.max(1, options.page || 1);
|
|
58
|
+
const pageSize = Math.max(1, Math.min(200, options.pageSize || 50));
|
|
59
|
+
const rgPath = findRipgrepPath();
|
|
60
|
+
if (!rgPath) {
|
|
61
|
+
// Fallback to internal Node.js filesystem search
|
|
62
|
+
const fallbackResults = await searchInFiles(options.query, targetPath, options.filePattern);
|
|
63
|
+
const matches = fallbackResults.map((m) => ({
|
|
64
|
+
file: m.file,
|
|
65
|
+
line: m.line,
|
|
66
|
+
column: 1,
|
|
67
|
+
text: m.text,
|
|
68
|
+
}));
|
|
69
|
+
const startIndex = (page - 1) * pageSize;
|
|
70
|
+
const paginatedMatches = matches.slice(startIndex, startIndex + pageSize);
|
|
71
|
+
return {
|
|
72
|
+
query: options.query,
|
|
73
|
+
engine: "fallback",
|
|
74
|
+
totalMatches: matches.length,
|
|
75
|
+
page,
|
|
76
|
+
pageSize,
|
|
77
|
+
hasMore: startIndex + pageSize < matches.length,
|
|
78
|
+
matches: paginatedMatches,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// Build ripgrep arguments
|
|
82
|
+
const args = [
|
|
83
|
+
"--line-number",
|
|
84
|
+
"--column",
|
|
85
|
+
"--no-heading",
|
|
86
|
+
"--color=never",
|
|
87
|
+
"--max-columns=300",
|
|
88
|
+
];
|
|
89
|
+
if (options.caseSensitive) {
|
|
90
|
+
args.push("-s");
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
args.push("-i");
|
|
94
|
+
}
|
|
95
|
+
if (!options.isRegex) {
|
|
96
|
+
args.push("-F"); // Fixed string literal mode
|
|
97
|
+
}
|
|
98
|
+
if (options.filePattern) {
|
|
99
|
+
args.push("-g", options.filePattern);
|
|
100
|
+
}
|
|
101
|
+
if (options.contextLines && options.contextLines > 0) {
|
|
102
|
+
args.push("-C", String(options.contextLines));
|
|
103
|
+
}
|
|
104
|
+
args.push("--", options.query, targetPath);
|
|
105
|
+
try {
|
|
106
|
+
const { stdout } = await execFileAsync(rgPath, args, {
|
|
107
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB
|
|
108
|
+
encoding: "utf-8",
|
|
109
|
+
windowsHide: true,
|
|
110
|
+
});
|
|
111
|
+
const lines = stdout.split(/\r?\n/).filter(Boolean);
|
|
112
|
+
const allMatches = [];
|
|
113
|
+
for (const line of lines) {
|
|
114
|
+
// Format: <filepath>:<line>:<column>:<text>
|
|
115
|
+
// Note: Windows file paths begin with drive letter like D:\path\...
|
|
116
|
+
// Regex matches: Drive:\... or relative path, followed by :line:column:
|
|
117
|
+
const match = line.match(/^([a-zA-Z]:[^\:]+|\.?[^:]+):(\d+):(\d+):(.*)$/);
|
|
118
|
+
if (match) {
|
|
119
|
+
allMatches.push({
|
|
120
|
+
file: match[1],
|
|
121
|
+
line: parseInt(match[2], 10),
|
|
122
|
+
column: parseInt(match[3], 10),
|
|
123
|
+
text: match[4].trim(),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// Fallback split for unconventional paths
|
|
128
|
+
const parts = line.split(":");
|
|
129
|
+
if (parts.length >= 4) {
|
|
130
|
+
const filePart = parts.slice(0, parts.length - 3).join(":");
|
|
131
|
+
const lineNum = parseInt(parts[parts.length - 3], 10);
|
|
132
|
+
const colNum = parseInt(parts[parts.length - 2], 10);
|
|
133
|
+
const textPart = parts[parts.length - 1];
|
|
134
|
+
if (!isNaN(lineNum) && !isNaN(colNum)) {
|
|
135
|
+
allMatches.push({
|
|
136
|
+
file: filePart,
|
|
137
|
+
line: lineNum,
|
|
138
|
+
column: colNum,
|
|
139
|
+
text: textPart.trim(),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const startIndex = (page - 1) * pageSize;
|
|
146
|
+
const paginatedMatches = allMatches.slice(startIndex, startIndex + pageSize);
|
|
147
|
+
return {
|
|
148
|
+
query: options.query,
|
|
149
|
+
engine: "ripgrep",
|
|
150
|
+
totalMatches: allMatches.length,
|
|
151
|
+
page,
|
|
152
|
+
pageSize,
|
|
153
|
+
hasMore: startIndex + pageSize < allMatches.length,
|
|
154
|
+
matches: paginatedMatches,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
// ripgrep exits with code 1 when no matches are found
|
|
159
|
+
if (err.code === 1) {
|
|
160
|
+
return {
|
|
161
|
+
query: options.query,
|
|
162
|
+
engine: "ripgrep",
|
|
163
|
+
totalMatches: 0,
|
|
164
|
+
page,
|
|
165
|
+
pageSize,
|
|
166
|
+
hasMore: false,
|
|
167
|
+
matches: [],
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
throw new Error(`Ripgrep search failed: ${err.message || err}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=ripgrep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripgrep.js","sourceRoot":"","sources":["../../src/engine/ripgrep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { EventLogItem, EventLogQueryOptions, GpuInfoResult, KillResult, NetworkInfoResult, NotificationResult, PortCheckResult, ProcessItem, ProcessListOptions, ServiceControlResult, ServiceDetail, ServiceSummary, SystemInfo } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read text from Windows Clipboard
|
|
4
|
+
*/
|
|
5
|
+
export declare function getClipboard(): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Set text to Windows Clipboard safely using Base64 decoding
|
|
8
|
+
*/
|
|
9
|
+
export declare function setClipboard(text: string): Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Take desktop screenshot using .NET System.Drawing and return as base64 PNG string
|
|
14
|
+
*/
|
|
15
|
+
export declare function captureScreen(): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Open URL, file, or folder in Windows default application
|
|
18
|
+
*/
|
|
19
|
+
export declare function openTarget(target: string): Promise<{
|
|
20
|
+
success: boolean;
|
|
21
|
+
target: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Get Windows system status (RAM, CPU, Drives)
|
|
25
|
+
*/
|
|
26
|
+
export declare function getSystemInfo(): Promise<SystemInfo>;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a TCP port is in use and find owning PID
|
|
29
|
+
*/
|
|
30
|
+
export declare function checkPort(port: number): Promise<PortCheckResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Kill process by PID or Name
|
|
33
|
+
*/
|
|
34
|
+
export declare function killProcess(pid?: number, name?: string): Promise<KillResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Get GPU and CUDA statistics (NVIDIA nvidia-smi with WMI fallback)
|
|
37
|
+
*/
|
|
38
|
+
export declare function getGpuInfo(): Promise<GpuInfoResult>;
|
|
39
|
+
/**
|
|
40
|
+
* List Windows Services with optional substring filter
|
|
41
|
+
*/
|
|
42
|
+
export declare function listServices(filter?: string): Promise<ServiceSummary[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Get detailed status of a specific Windows Service
|
|
45
|
+
*/
|
|
46
|
+
export declare function getServiceStatus(serviceName: string): Promise<ServiceDetail>;
|
|
47
|
+
/**
|
|
48
|
+
* Control a Windows Service (start, stop, restart)
|
|
49
|
+
*/
|
|
50
|
+
export declare function controlService(serviceName: string, action: "start" | "stop" | "restart"): Promise<ServiceControlResult>;
|
|
51
|
+
/**
|
|
52
|
+
* List running Windows processes with sorting and optional filtering
|
|
53
|
+
*/
|
|
54
|
+
export declare function listProcesses(options?: ProcessListOptions): Promise<ProcessItem[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Query Windows Event Log for errors, warnings, or crashes
|
|
57
|
+
*/
|
|
58
|
+
export declare function queryEventLog(options?: EventLogQueryOptions): Promise<EventLogItem[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Inspect network adapters, local IP, gateway, DNS, and Tailscale connection
|
|
61
|
+
*/
|
|
62
|
+
export declare function getNetworkInfo(includeListeningPorts?: boolean): Promise<NetworkInfoResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Send native Windows Toast Notification
|
|
65
|
+
*/
|
|
66
|
+
export declare function sendNotification(title: string, message: string, sound?: boolean): Promise<NotificationResult>;
|
|
67
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/engine/system.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAEpB,aAAa,EACb,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,UAAU,EACX,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAGpD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAqBrD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAc9F;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAsCzD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyBtE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBlF;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CA8CzD;AA0CD;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAoB7E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBlF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GACnC,OAAO,CAAC,oBAAoB,CAAC,CAgC/B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAwCxF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4C3F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,qBAAqB,UAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgG9F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,UAAO,GACX,OAAO,CAAC,kBAAkB,CAAC,CAkC7B"}
|