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,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WinHelm Canonical Tool Registry
|
|
3
|
+
* Single Source of Truth for all registered MCP Tool and Resource names.
|
|
4
|
+
*/
|
|
5
|
+
export declare const TOOL_NAMES: {
|
|
6
|
+
readonly TERMINAL_RUN: "terminal_run";
|
|
7
|
+
readonly TERMINAL_TASK_START: "terminal_task_start";
|
|
8
|
+
readonly TERMINAL_TASK_LIST: "terminal_task_list";
|
|
9
|
+
readonly TERMINAL_TASK_LOGS: "terminal_task_logs";
|
|
10
|
+
readonly TERMINAL_TASK_SEND: "terminal_task_send";
|
|
11
|
+
readonly TERMINAL_TASK_KILL: "terminal_task_kill";
|
|
12
|
+
readonly FILE_READ: "file_read";
|
|
13
|
+
readonly FILE_WRITE: "file_write";
|
|
14
|
+
readonly FILE_EDIT: "file_edit";
|
|
15
|
+
readonly FILE_LIST: "file_list";
|
|
16
|
+
readonly FILE_SEARCH: "file_search";
|
|
17
|
+
readonly FILE_DELETE_SAFE: "file_delete_safe";
|
|
18
|
+
readonly FILE_MOVE: "file_move";
|
|
19
|
+
readonly FILE_COPY: "file_copy";
|
|
20
|
+
readonly ARCHIVE_ZIP: "archive_zip";
|
|
21
|
+
readonly ARCHIVE_UNZIP: "archive_unzip";
|
|
22
|
+
readonly FILE_TAIL: "file_tail";
|
|
23
|
+
readonly FILE_HASH: "file_hash";
|
|
24
|
+
readonly FILE_SEARCH_RIPGREP: "file_search_ripgrep";
|
|
25
|
+
readonly PDF_GENERATE: "pdf_generate";
|
|
26
|
+
readonly FILE_PREVIEW: "file_preview";
|
|
27
|
+
readonly CLIPBOARD_GET: "clipboard_get";
|
|
28
|
+
readonly CLIPBOARD_SET: "clipboard_set";
|
|
29
|
+
readonly SCREEN_CAPTURE: "screen_capture";
|
|
30
|
+
readonly SYSTEM_OPEN: "system_open";
|
|
31
|
+
readonly NOTIFICATION_SEND: "notification_send";
|
|
32
|
+
readonly SYSTEM_INFO: "system_info";
|
|
33
|
+
readonly GPU_INFO: "gpu_info";
|
|
34
|
+
readonly PROCESS_LIST: "process_list";
|
|
35
|
+
readonly PROCESS_KILL: "process_kill";
|
|
36
|
+
readonly PORT_CHECK: "port_check";
|
|
37
|
+
readonly EVENTLOG_QUERY: "eventlog_query";
|
|
38
|
+
readonly SERVICE_LIST: "service_list";
|
|
39
|
+
readonly SERVICE_STATUS: "service_status";
|
|
40
|
+
readonly SERVICE_CONTROL: "service_control";
|
|
41
|
+
readonly HTTP_PING: "http_ping";
|
|
42
|
+
readonly HTTP_REQUEST: "http_request";
|
|
43
|
+
readonly NETWORK_INFO: "network_info";
|
|
44
|
+
};
|
|
45
|
+
export declare const RESOURCE_NAMES: {
|
|
46
|
+
readonly PREVIEW_FILE: "preview://file";
|
|
47
|
+
};
|
|
48
|
+
export type ToolName = (typeof TOOL_NAMES)[keyof typeof TOOL_NAMES];
|
|
49
|
+
export declare const ALL_TOOL_NAMES: ToolName[];
|
|
50
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU;aAErB,YAAY,EAAE,cAAc;aAC5B,mBAAmB,EAAE,qBAAqB;aAC1C,kBAAkB,EAAE,oBAAoB;aACxC,kBAAkB,EAAE,oBAAoB;aACxC,kBAAkB,EAAE,oBAAoB;aACxC,kBAAkB,EAAE,oBAAoB;aAGxC,SAAS,EAAE,WAAW;aACtB,UAAU,EAAE,YAAY;aACxB,SAAS,EAAE,WAAW;aACtB,SAAS,EAAE,WAAW;aACtB,WAAW,EAAE,aAAa;aAC1B,gBAAgB,EAAE,kBAAkB;aACpC,SAAS,EAAE,WAAW;aACtB,SAAS,EAAE,WAAW;aACtB,WAAW,EAAE,aAAa;aAC1B,aAAa,EAAE,eAAe;aAC9B,SAAS,EAAE,WAAW;aACtB,SAAS,EAAE,WAAW;aACtB,mBAAmB,EAAE,qBAAqB;aAC1C,YAAY,EAAE,cAAc;aAC5B,YAAY,EAAE,cAAc;aAG5B,aAAa,EAAE,eAAe;aAC9B,aAAa,EAAE,eAAe;aAC9B,cAAc,EAAE,gBAAgB;aAChC,WAAW,EAAE,aAAa;aAC1B,iBAAiB,EAAE,mBAAmB;aAGtC,WAAW,EAAE,aAAa;aAC1B,QAAQ,EAAE,UAAU;aACpB,YAAY,EAAE,cAAc;aAC5B,YAAY,EAAE,cAAc;aAC5B,UAAU,EAAE,YAAY;aACxB,cAAc,EAAE,gBAAgB;aAChC,YAAY,EAAE,cAAc;aAC5B,cAAc,EAAE,gBAAgB;aAChC,eAAe,EAAE,iBAAiB;aAGlC,SAAS,EAAE,WAAW;aACtB,YAAY,EAAE,cAAc;aAC5B,YAAY,EAAE,cAAc;CACpB,CAAC;AAEX,eAAO,MAAM,cAAc;aACzB,YAAY,EAAE,gBAAgB;CACtB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE,eAAO,MAAM,cAAc,EAAE,QAAQ,EAA8B,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WinHelm Canonical Tool Registry
|
|
3
|
+
* Single Source of Truth for all registered MCP Tool and Resource names.
|
|
4
|
+
*/
|
|
5
|
+
export const TOOL_NAMES = {
|
|
6
|
+
// 1. Terminal & Background Tasks (6)
|
|
7
|
+
TERMINAL_RUN: "terminal_run",
|
|
8
|
+
TERMINAL_TASK_START: "terminal_task_start",
|
|
9
|
+
TERMINAL_TASK_LIST: "terminal_task_list",
|
|
10
|
+
TERMINAL_TASK_LOGS: "terminal_task_logs",
|
|
11
|
+
TERMINAL_TASK_SEND: "terminal_task_send",
|
|
12
|
+
TERMINAL_TASK_KILL: "terminal_task_kill",
|
|
13
|
+
// 2. Filesystem, Safe Delete & Archives (15)
|
|
14
|
+
FILE_READ: "file_read",
|
|
15
|
+
FILE_WRITE: "file_write",
|
|
16
|
+
FILE_EDIT: "file_edit",
|
|
17
|
+
FILE_LIST: "file_list",
|
|
18
|
+
FILE_SEARCH: "file_search",
|
|
19
|
+
FILE_DELETE_SAFE: "file_delete_safe",
|
|
20
|
+
FILE_MOVE: "file_move",
|
|
21
|
+
FILE_COPY: "file_copy",
|
|
22
|
+
ARCHIVE_ZIP: "archive_zip",
|
|
23
|
+
ARCHIVE_UNZIP: "archive_unzip",
|
|
24
|
+
FILE_TAIL: "file_tail",
|
|
25
|
+
FILE_HASH: "file_hash",
|
|
26
|
+
FILE_SEARCH_RIPGREP: "file_search_ripgrep",
|
|
27
|
+
PDF_GENERATE: "pdf_generate",
|
|
28
|
+
FILE_PREVIEW: "file_preview",
|
|
29
|
+
// 3. Desktop, Clipboard & Toast (5)
|
|
30
|
+
CLIPBOARD_GET: "clipboard_get",
|
|
31
|
+
CLIPBOARD_SET: "clipboard_set",
|
|
32
|
+
SCREEN_CAPTURE: "screen_capture",
|
|
33
|
+
SYSTEM_OPEN: "system_open",
|
|
34
|
+
NOTIFICATION_SEND: "notification_send",
|
|
35
|
+
// 4. System, Processes & Windows Services (9)
|
|
36
|
+
SYSTEM_INFO: "system_info",
|
|
37
|
+
GPU_INFO: "gpu_info",
|
|
38
|
+
PROCESS_LIST: "process_list",
|
|
39
|
+
PROCESS_KILL: "process_kill",
|
|
40
|
+
PORT_CHECK: "port_check",
|
|
41
|
+
EVENTLOG_QUERY: "eventlog_query",
|
|
42
|
+
SERVICE_LIST: "service_list",
|
|
43
|
+
SERVICE_STATUS: "service_status",
|
|
44
|
+
SERVICE_CONTROL: "service_control",
|
|
45
|
+
// 5. Network & Connectivity Probe (3)
|
|
46
|
+
HTTP_PING: "http_ping",
|
|
47
|
+
HTTP_REQUEST: "http_request",
|
|
48
|
+
NETWORK_INFO: "network_info",
|
|
49
|
+
};
|
|
50
|
+
export const RESOURCE_NAMES = {
|
|
51
|
+
PREVIEW_FILE: "preview://file",
|
|
52
|
+
};
|
|
53
|
+
export const ALL_TOOL_NAMES = Object.values(TOOL_NAMES);
|
|
54
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qCAAqC;IACrC,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IAExC,6CAA6C;IAC7C,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAE5B,oCAAoC;IACpC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IAEtC,8CAA8C;IAC9C,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAElC,sCAAsC;IACtC,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,gBAAgB;CACtB,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAe,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-tools.d.ts","sourceRoot":"","sources":["../../src/tools/terminal-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2K7D"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runPowerShell } from "../engine/powershell-runner.js";
|
|
3
|
+
import { taskManager } from "../engine/task-manager.js";
|
|
4
|
+
import { ConfigManager } from "../config/config-manager.js";
|
|
5
|
+
import { registerTracedTool } from "./tool-wrapper.js";
|
|
6
|
+
export function registerTerminalTools(server) {
|
|
7
|
+
// 1. Synchronous PowerShell Execution
|
|
8
|
+
registerTracedTool(server, "terminal_run", {
|
|
9
|
+
command: z.string().describe("PowerShell command to execute"),
|
|
10
|
+
cwd: z.string().optional().describe("Working directory for command execution"),
|
|
11
|
+
timeout_ms: z
|
|
12
|
+
.number()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Maximum execution time in milliseconds (default: 60000)"),
|
|
15
|
+
}, async ({ command, cwd, timeout_ms }) => {
|
|
16
|
+
if (ConfigManager.getInstance().isReadOnly()) {
|
|
17
|
+
return {
|
|
18
|
+
content: [{ type: "text", text: "Execution blocked: Server is operating in read-only mode." }],
|
|
19
|
+
isError: true,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const res = await runPowerShell(command, { cwd, timeoutMs: timeout_ms });
|
|
24
|
+
let output = "";
|
|
25
|
+
if (res.timedOut) {
|
|
26
|
+
output += `[Command timed out after ${timeout_ms || 60000}ms]\n`;
|
|
27
|
+
}
|
|
28
|
+
if (res.stdout)
|
|
29
|
+
output += res.stdout;
|
|
30
|
+
if (res.stderr)
|
|
31
|
+
output += (output ? "\n[STDERR]\n" : "") + res.stderr;
|
|
32
|
+
if (!output)
|
|
33
|
+
output = `(Command finished with exit code ${res.exitCode} and no output)`;
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: "text", text: output }],
|
|
36
|
+
isError: res.exitCode !== 0,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: `Execution failed: ${err.message}` }],
|
|
42
|
+
isError: true,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// 2. Start Long-Running Background Task
|
|
47
|
+
registerTracedTool(server, "terminal_task_start", {
|
|
48
|
+
command: z.string().describe("Command to run in background (e.g. dev servers, watcher, long builds)"),
|
|
49
|
+
cwd: z.string().optional().describe("Working directory for task execution"),
|
|
50
|
+
}, async ({ command, cwd }) => {
|
|
51
|
+
if (ConfigManager.getInstance().isReadOnly()) {
|
|
52
|
+
return {
|
|
53
|
+
content: [{ type: "text", text: "Task execution blocked: Server is operating in read-only mode." }],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const task = taskManager.startTask(command, cwd);
|
|
59
|
+
return {
|
|
60
|
+
content: [
|
|
61
|
+
{
|
|
62
|
+
type: "text",
|
|
63
|
+
text: JSON.stringify({
|
|
64
|
+
message: `Background task started successfully with ID: ${task.id}`,
|
|
65
|
+
task,
|
|
66
|
+
}, null, 2),
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return {
|
|
73
|
+
content: [{ type: "text", text: `Failed to start background task: ${err.message}` }],
|
|
74
|
+
isError: true,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// 3. List All Background Tasks
|
|
79
|
+
registerTracedTool(server, "terminal_task_list", {}, async () => {
|
|
80
|
+
try {
|
|
81
|
+
const tasks = taskManager.listTasks();
|
|
82
|
+
return {
|
|
83
|
+
content: [{ type: "text", text: JSON.stringify(tasks, null, 2) }],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
return {
|
|
88
|
+
content: [{ type: "text", text: `Failed to list tasks: ${err.message}` }],
|
|
89
|
+
isError: true,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
// 4. View Background Task Output Logs
|
|
94
|
+
registerTracedTool(server, "terminal_task_logs", {
|
|
95
|
+
task_id: z.string().describe("Task ID returned from terminal_task_start"),
|
|
96
|
+
tail_lines: z.number().optional().describe("Number of trailing lines to view (default: 100)"),
|
|
97
|
+
}, async ({ task_id, tail_lines = 100 }) => {
|
|
98
|
+
try {
|
|
99
|
+
const res = taskManager.getTaskLogs(task_id, tail_lines);
|
|
100
|
+
return {
|
|
101
|
+
content: [
|
|
102
|
+
{
|
|
103
|
+
type: "text",
|
|
104
|
+
text: `=== Background Task Logs [${task_id}] (Status: ${res.task.status}) ===\n${res.logs || "(No output produced yet)"}`,
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return {
|
|
111
|
+
content: [{ type: "text", text: `Failed to get task logs: ${err.message}` }],
|
|
112
|
+
isError: true,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
// 5. Send Input to Background Task
|
|
117
|
+
registerTracedTool(server, "terminal_task_send", {
|
|
118
|
+
task_id: z.string().describe("Task ID of running background process"),
|
|
119
|
+
input: z.string().describe("Text input to send to stdin"),
|
|
120
|
+
}, async ({ task_id, input }) => {
|
|
121
|
+
try {
|
|
122
|
+
taskManager.sendInput(task_id, input);
|
|
123
|
+
return {
|
|
124
|
+
content: [{ type: "text", text: `Input successfully sent to task ${task_id}` }],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
return {
|
|
129
|
+
content: [{ type: "text", text: `Failed to send input: ${err.message}` }],
|
|
130
|
+
isError: true,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
// 6. Kill Background Task
|
|
135
|
+
registerTracedTool(server, "terminal_task_kill", {
|
|
136
|
+
task_id: z.string().describe("Task ID to terminate"),
|
|
137
|
+
}, async ({ task_id }) => {
|
|
138
|
+
try {
|
|
139
|
+
taskManager.killTask(task_id);
|
|
140
|
+
return {
|
|
141
|
+
content: [{ type: "text", text: `Background task ${task_id} terminated.` }],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
return {
|
|
146
|
+
content: [{ type: "text", text: `Failed to kill task: ${err.message}` }],
|
|
147
|
+
isError: true,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=terminal-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-tools.js","sourceRoot":"","sources":["../../src/tools/terminal-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a tool execution with performance timing, ANSI terminal logging, and memory telemetry.
|
|
4
|
+
* Automatically filters out tools not included in the active profile to save LLM context tokens.
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerTracedTool(server: McpServer, name: string, schema: any, handler: (args: any, extra: any) => Promise<any>): void;
|
|
7
|
+
//# sourceMappingURL=tool-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-wrapper.d.ts","sourceRoot":"","sources":["../../src/tools/tool-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAC/C,IAAI,CAqCN"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { logger } from "../utils/logger.js";
|
|
2
|
+
import { ConfigManager } from "../config/config-manager.js";
|
|
3
|
+
import { isToolInProfile } from "../config/profiles.js";
|
|
4
|
+
/**
|
|
5
|
+
* Wraps a tool execution with performance timing, ANSI terminal logging, and memory telemetry.
|
|
6
|
+
* Automatically filters out tools not included in the active profile to save LLM context tokens.
|
|
7
|
+
*/
|
|
8
|
+
export function registerTracedTool(server, name, schema, handler) {
|
|
9
|
+
const config = ConfigManager.getInstance().getConfig();
|
|
10
|
+
const profile = config.profile || "full";
|
|
11
|
+
if (!isToolInProfile(name, profile, config.customTools)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const wrappedHandler = async (args, extra) => {
|
|
15
|
+
const startTime = Date.now();
|
|
16
|
+
logger.toolStart(name, args);
|
|
17
|
+
try {
|
|
18
|
+
const res = await handler(args, extra);
|
|
19
|
+
const durationMs = Date.now() - startTime;
|
|
20
|
+
if (res && res.isError) {
|
|
21
|
+
const errorText = res.content?.[0]?.text || "Tool reported error";
|
|
22
|
+
logger.toolFail(name, durationMs, errorText);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
let summary;
|
|
26
|
+
if (res && Array.isArray(res.content) && res.content[0]) {
|
|
27
|
+
const first = res.content[0];
|
|
28
|
+
if (first.type === "image") {
|
|
29
|
+
summary = `[Image Binary: ${first.mimeType || "image/png"}]`;
|
|
30
|
+
}
|
|
31
|
+
else if (first.text) {
|
|
32
|
+
summary = first.text.replace(/\r?\n/g, " ").trim();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
logger.toolDone(name, durationMs, summary);
|
|
36
|
+
}
|
|
37
|
+
return res;
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
const durationMs = Date.now() - startTime;
|
|
41
|
+
logger.toolFail(name, durationMs, err.message || String(err));
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
server.registerTool(name, { inputSchema: schema }, wrappedHandler);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=tool-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-wrapper.js","sourceRoot":"","sources":["../../src/tools/tool-wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,IAAY,EACZ,MAAW,EACX,OAAgD;IAEhD,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;IACzC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO;IACT,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,EAAE,IAAS,EAAE,KAAU,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE1C,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,qBAAqB,CAAC;gBAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,OAA2B,CAAC;gBAChC,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC3B,OAAO,GAAG,kBAAkB,KAAK,CAAC,QAAQ,IAAI,WAAW,GAAG,CAAC;oBAC/D,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACtB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
export interface ExecutionResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
timedOut: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface FileReadResult {
|
|
8
|
+
content: string;
|
|
9
|
+
totalLines: number;
|
|
10
|
+
startLine: number;
|
|
11
|
+
endLine: number;
|
|
12
|
+
filePath: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FileWriteResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
filePath: string;
|
|
17
|
+
bytesWritten: number;
|
|
18
|
+
}
|
|
19
|
+
export interface FileEditResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
filePath: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DirectoryEntry {
|
|
24
|
+
name: string;
|
|
25
|
+
path: string;
|
|
26
|
+
type: "file" | "directory";
|
|
27
|
+
sizeBytes: number | null;
|
|
28
|
+
modifiedAt: string | null;
|
|
29
|
+
}
|
|
30
|
+
export interface SearchMatch {
|
|
31
|
+
file: string;
|
|
32
|
+
line: number;
|
|
33
|
+
text: string;
|
|
34
|
+
}
|
|
35
|
+
export interface DriveInfo {
|
|
36
|
+
Name: string;
|
|
37
|
+
FreeGB: number;
|
|
38
|
+
UsedGB: number;
|
|
39
|
+
TotalGB: number;
|
|
40
|
+
}
|
|
41
|
+
export interface SystemInfo {
|
|
42
|
+
ComputerName?: string;
|
|
43
|
+
OS?: string;
|
|
44
|
+
TotalRamGB?: number;
|
|
45
|
+
FreeRamGB?: number;
|
|
46
|
+
UsedRamGB?: number;
|
|
47
|
+
CpuLoadPercentage?: number;
|
|
48
|
+
Drives?: DriveInfo[];
|
|
49
|
+
raw?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface PortCheckResult {
|
|
52
|
+
port: number;
|
|
53
|
+
inUse: boolean;
|
|
54
|
+
pid?: number;
|
|
55
|
+
processName?: string;
|
|
56
|
+
state?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface KillResult {
|
|
59
|
+
success: boolean;
|
|
60
|
+
details: string;
|
|
61
|
+
}
|
|
62
|
+
export type { ToolProfile } from "../config/profiles.js";
|
|
63
|
+
export interface ServerConfig {
|
|
64
|
+
blockedCommands: string[];
|
|
65
|
+
blockedCommandPatterns?: string[];
|
|
66
|
+
allowedDirectories: string[];
|
|
67
|
+
allowSystemExecution?: boolean;
|
|
68
|
+
fileReadLineLimit: number;
|
|
69
|
+
defaultTimeoutMs: number;
|
|
70
|
+
telemetryEnabled: boolean;
|
|
71
|
+
authToken?: string | null;
|
|
72
|
+
readOnly?: boolean;
|
|
73
|
+
rateLimitPerMinute?: number;
|
|
74
|
+
profile?: import("../config/profiles.js").ToolProfile;
|
|
75
|
+
customTools?: string[];
|
|
76
|
+
corsOrigins?: string[] | boolean | string;
|
|
77
|
+
allowedHosts?: string[];
|
|
78
|
+
searchExcludeDirs?: string[];
|
|
79
|
+
preferPwsh?: boolean;
|
|
80
|
+
sessionIdleTimeoutMs?: number;
|
|
81
|
+
maxConcurrentSessions?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface FileDeleteResult {
|
|
84
|
+
success: boolean;
|
|
85
|
+
path: string;
|
|
86
|
+
movedToRecycleBin: boolean;
|
|
87
|
+
}
|
|
88
|
+
export interface FileMoveResult {
|
|
89
|
+
success: boolean;
|
|
90
|
+
from: string;
|
|
91
|
+
to: string;
|
|
92
|
+
}
|
|
93
|
+
export interface FileCopyResult {
|
|
94
|
+
success: boolean;
|
|
95
|
+
from: string;
|
|
96
|
+
to: string;
|
|
97
|
+
}
|
|
98
|
+
export interface ArchiveResult {
|
|
99
|
+
success: boolean;
|
|
100
|
+
zipPath: string;
|
|
101
|
+
targetPath: string;
|
|
102
|
+
action: "create" | "extract";
|
|
103
|
+
}
|
|
104
|
+
export interface GpuDetails {
|
|
105
|
+
index: number;
|
|
106
|
+
name: string;
|
|
107
|
+
driverVersion?: string;
|
|
108
|
+
memoryTotalMB?: number;
|
|
109
|
+
memoryUsedMB?: number;
|
|
110
|
+
memoryFreeMB?: number;
|
|
111
|
+
temperatureC?: number;
|
|
112
|
+
utilizationGpuPct?: number;
|
|
113
|
+
}
|
|
114
|
+
export interface GpuInfoResult {
|
|
115
|
+
hasNvidia: boolean;
|
|
116
|
+
gpus: GpuDetails[];
|
|
117
|
+
raw?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface HttpPingResult {
|
|
120
|
+
ok: boolean;
|
|
121
|
+
status: number;
|
|
122
|
+
statusText: string;
|
|
123
|
+
latencyMs: number;
|
|
124
|
+
url: string;
|
|
125
|
+
}
|
|
126
|
+
export interface HttpRequestOptions {
|
|
127
|
+
url: string;
|
|
128
|
+
method?: string;
|
|
129
|
+
headers?: Record<string, string>;
|
|
130
|
+
body?: string;
|
|
131
|
+
timeoutMs?: number;
|
|
132
|
+
}
|
|
133
|
+
export interface HttpRequestResult {
|
|
134
|
+
status: number;
|
|
135
|
+
statusText: string;
|
|
136
|
+
durationMs: number;
|
|
137
|
+
headers: Record<string, string>;
|
|
138
|
+
body: string;
|
|
139
|
+
isJson: boolean;
|
|
140
|
+
json?: any;
|
|
141
|
+
}
|
|
142
|
+
export interface ServiceSummary {
|
|
143
|
+
name: string;
|
|
144
|
+
displayName: string;
|
|
145
|
+
status: string;
|
|
146
|
+
startType: string;
|
|
147
|
+
}
|
|
148
|
+
export interface ServiceDetail extends ServiceSummary {
|
|
149
|
+
canStop?: boolean;
|
|
150
|
+
canPauseAndContinue?: boolean;
|
|
151
|
+
}
|
|
152
|
+
export interface ServiceControlResult {
|
|
153
|
+
success: boolean;
|
|
154
|
+
serviceName: string;
|
|
155
|
+
action: string;
|
|
156
|
+
currentStatus: string;
|
|
157
|
+
}
|
|
158
|
+
export interface RipgrepMatch {
|
|
159
|
+
file: string;
|
|
160
|
+
line: number;
|
|
161
|
+
column: number;
|
|
162
|
+
text: string;
|
|
163
|
+
}
|
|
164
|
+
export interface RipgrepSearchResult {
|
|
165
|
+
query: string;
|
|
166
|
+
engine: "ripgrep" | "fallback";
|
|
167
|
+
totalMatches: number;
|
|
168
|
+
page: number;
|
|
169
|
+
pageSize: number;
|
|
170
|
+
hasMore: boolean;
|
|
171
|
+
matches: RipgrepMatch[];
|
|
172
|
+
}
|
|
173
|
+
export interface PdfGenerateOptions {
|
|
174
|
+
sourcePath: string;
|
|
175
|
+
pdfPath: string;
|
|
176
|
+
landscape?: boolean;
|
|
177
|
+
title?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface PdfGenerateResult {
|
|
180
|
+
success: boolean;
|
|
181
|
+
pdfPath: string;
|
|
182
|
+
sourcePath: string;
|
|
183
|
+
sizeBytes: number;
|
|
184
|
+
browserUsed: string;
|
|
185
|
+
}
|
|
186
|
+
export interface FilePreviewResult {
|
|
187
|
+
path: string;
|
|
188
|
+
fileName: string;
|
|
189
|
+
extension: string;
|
|
190
|
+
sizeBytes: number;
|
|
191
|
+
lineCount?: number;
|
|
192
|
+
previewUrl: string;
|
|
193
|
+
snippet?: string;
|
|
194
|
+
isBinary: boolean;
|
|
195
|
+
}
|
|
196
|
+
export interface ProcessItem {
|
|
197
|
+
pid: number;
|
|
198
|
+
name: string;
|
|
199
|
+
workingSetMB: number;
|
|
200
|
+
cpuSeconds: number;
|
|
201
|
+
path?: string;
|
|
202
|
+
description?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface ProcessListOptions {
|
|
205
|
+
limit?: number;
|
|
206
|
+
sortBy?: "cpu" | "memory" | "name" | "pid";
|
|
207
|
+
filter?: string;
|
|
208
|
+
}
|
|
209
|
+
export interface FileTailResult {
|
|
210
|
+
filePath: string;
|
|
211
|
+
totalLines: number;
|
|
212
|
+
linesReturned: number;
|
|
213
|
+
content: string;
|
|
214
|
+
}
|
|
215
|
+
export interface FileHashResult {
|
|
216
|
+
filePath: string;
|
|
217
|
+
algorithm: "sha256" | "md5" | "sha1";
|
|
218
|
+
hash: string;
|
|
219
|
+
sizeBytes: number;
|
|
220
|
+
sizeFormatted: string;
|
|
221
|
+
}
|
|
222
|
+
export interface EventLogItem {
|
|
223
|
+
timeCreated: string;
|
|
224
|
+
id: number;
|
|
225
|
+
level: string;
|
|
226
|
+
providerName: string;
|
|
227
|
+
message: string;
|
|
228
|
+
}
|
|
229
|
+
export interface EventLogQueryOptions {
|
|
230
|
+
logName?: string;
|
|
231
|
+
level?: "Critical" | "Error" | "Warning" | "Information" | "All";
|
|
232
|
+
limit?: number;
|
|
233
|
+
source?: string;
|
|
234
|
+
hours?: number;
|
|
235
|
+
}
|
|
236
|
+
export interface NetworkAdapterInfo {
|
|
237
|
+
name: string;
|
|
238
|
+
ipv4?: string[];
|
|
239
|
+
ipv6?: string[];
|
|
240
|
+
mac?: string;
|
|
241
|
+
isInternal: boolean;
|
|
242
|
+
}
|
|
243
|
+
export interface NetworkInfoResult {
|
|
244
|
+
hostname: string;
|
|
245
|
+
adapters: NetworkAdapterInfo[];
|
|
246
|
+
defaultGateway?: string;
|
|
247
|
+
dnsServers?: string[];
|
|
248
|
+
tailscaleIp?: string;
|
|
249
|
+
listeningPorts?: {
|
|
250
|
+
port: number;
|
|
251
|
+
processName?: string;
|
|
252
|
+
pid?: number;
|
|
253
|
+
}[];
|
|
254
|
+
}
|
|
255
|
+
export interface NotificationResult {
|
|
256
|
+
success: boolean;
|
|
257
|
+
title: string;
|
|
258
|
+
message: string;
|
|
259
|
+
timestamp: string;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { LogEntry } from "./logger.js";
|
|
2
|
+
export declare class FileLogger {
|
|
3
|
+
private static instance;
|
|
4
|
+
private logDir;
|
|
5
|
+
private maxRetentionDays;
|
|
6
|
+
private writeQueue;
|
|
7
|
+
private constructor();
|
|
8
|
+
static getInstance(): FileLogger;
|
|
9
|
+
private getTodayLogFileName;
|
|
10
|
+
/**
|
|
11
|
+
* Append log entry to persistent log file asynchronously
|
|
12
|
+
*/
|
|
13
|
+
log(entry: LogEntry): void;
|
|
14
|
+
/**
|
|
15
|
+
* Remove log files older than maxRetentionDays
|
|
16
|
+
*/
|
|
17
|
+
cleanOldLogs(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Export audit logs in JSON or CSV format
|
|
20
|
+
*/
|
|
21
|
+
exportLogs(format?: "json" | "csv"): Promise<string>;
|
|
22
|
+
}
|
|
23
|
+
export declare const fileLogger: FileLogger;
|
|
24
|
+
//# sourceMappingURL=file-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../src/utils/file-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAAoC;IAEtD,OAAO,eAEN;IAED,OAAc,WAAW,IAAI,UAAU,CAKtC;IAED,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CA+BhC;IAED;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBzC;IAED;;OAEG;IACU,UAAU,CAAC,MAAM,GAAE,MAAM,GAAG,KAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCxE;CACF;AAED,eAAO,MAAM,UAAU,YAA2B,CAAC"}
|