ssh-agent-workspace 1.0.4 → 1.0.6
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/README.md +471 -313
- package/dist/__tests__/SSHManager.test.js +59 -37
- package/dist/__tests__/SSHManager.test.js.map +1 -1
- package/dist/__tests__/SessionManager.test.js +53 -51
- package/dist/__tests__/SessionManager.test.js.map +1 -1
- package/dist/__tests__/StorageManager.test.js +74 -74
- package/dist/__tests__/StorageManager.test.js.map +1 -1
- package/dist/__tests__/ansi.test.js +33 -33
- package/dist/__tests__/ansi.test.js.map +1 -1
- package/dist/__tests__/security.test.js +54 -54
- package/dist/__tests__/security.test.js.map +1 -1
- package/dist/__tests__/validation.test.js +17 -17
- package/dist/__tests__/validation.test.js.map +1 -1
- package/dist/core/HostSecurityManager.d.ts.map +1 -1
- package/dist/core/HostSecurityManager.js +9 -9
- package/dist/core/HostSecurityManager.js.map +1 -1
- package/dist/core/SSHManager.d.ts +1 -1
- package/dist/core/SSHManager.d.ts.map +1 -1
- package/dist/core/SSHManager.js +31 -31
- package/dist/core/SSHManager.js.map +1 -1
- package/dist/core/SessionManager.d.ts +4 -4
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +14 -14
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StorageManager.d.ts.map +1 -1
- package/dist/core/StorageManager.js +11 -11
- package/dist/core/StorageManager.js.map +1 -1
- package/dist/core/TmuxManager.d.ts +3 -3
- package/dist/core/TmuxManager.d.ts.map +1 -1
- package/dist/core/TmuxManager.js +16 -16
- package/dist/core/TmuxManager.js.map +1 -1
- package/dist/core/ToolConfigManager.d.ts.map +1 -1
- package/dist/core/ToolConfigManager.js +10 -10
- package/dist/core/ToolConfigManager.js.map +1 -1
- package/dist/index.js +35 -35
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +4 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +41 -41
- package/dist/server.js.map +1 -1
- package/dist/tools/backup.d.ts +3 -3
- package/dist/tools/backup.d.ts.map +1 -1
- package/dist/tools/backup.js +86 -49
- package/dist/tools/backup.js.map +1 -1
- package/dist/tools/connect.d.ts +4 -4
- package/dist/tools/connect.d.ts.map +1 -1
- package/dist/tools/connect.js +54 -42
- package/dist/tools/connect.js.map +1 -1
- package/dist/tools/connection_status.d.ts +4 -4
- package/dist/tools/connection_status.d.ts.map +1 -1
- package/dist/tools/connection_status.js +23 -16
- package/dist/tools/connection_status.js.map +1 -1
- package/dist/tools/db_query.d.ts +3 -3
- package/dist/tools/db_query.d.ts.map +1 -1
- package/dist/tools/db_query.js +130 -78
- package/dist/tools/db_query.js.map +1 -1
- package/dist/tools/deploy.d.ts +3 -3
- package/dist/tools/deploy.d.ts.map +1 -1
- package/dist/tools/deploy.js +103 -53
- package/dist/tools/deploy.js.map +1 -1
- package/dist/tools/disconnect.d.ts +3 -3
- package/dist/tools/disconnect.d.ts.map +1 -1
- package/dist/tools/disconnect.js +16 -19
- package/dist/tools/disconnect.js.map +1 -1
- package/dist/tools/exec.d.ts +3 -3
- package/dist/tools/exec.d.ts.map +1 -1
- package/dist/tools/exec.js +40 -45
- package/dist/tools/exec.js.map +1 -1
- package/dist/tools/group_exec.d.ts +3 -3
- package/dist/tools/group_exec.d.ts.map +1 -1
- package/dist/tools/group_exec.js +60 -44
- package/dist/tools/group_exec.js.map +1 -1
- package/dist/tools/health_check.d.ts +3 -3
- package/dist/tools/health_check.d.ts.map +1 -1
- package/dist/tools/health_check.js +27 -23
- package/dist/tools/health_check.js.map +1 -1
- package/dist/tools/host_security.d.ts +1 -1
- package/dist/tools/host_security.d.ts.map +1 -1
- package/dist/tools/host_security.js +30 -36
- package/dist/tools/host_security.js.map +1 -1
- package/dist/tools/index.d.ts +23 -23
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +23 -23
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interrupt.d.ts +3 -3
- package/dist/tools/interrupt.d.ts.map +1 -1
- package/dist/tools/interrupt.js +18 -18
- package/dist/tools/interrupt.js.map +1 -1
- package/dist/tools/list_hosts.d.ts.map +1 -1
- package/dist/tools/list_hosts.js +5 -7
- package/dist/tools/list_hosts.js.map +1 -1
- package/dist/tools/list_sessions.d.ts +1 -1
- package/dist/tools/list_sessions.js +4 -4
- package/dist/tools/list_sessions.js.map +1 -1
- package/dist/tools/read_output.d.ts +3 -3
- package/dist/tools/read_output.d.ts.map +1 -1
- package/dist/tools/read_output.js +17 -17
- package/dist/tools/read_output.js.map +1 -1
- package/dist/tools/reconnect_to_tmux.d.ts +4 -4
- package/dist/tools/reconnect_to_tmux.d.ts.map +1 -1
- package/dist/tools/reconnect_to_tmux.js +44 -37
- package/dist/tools/reconnect_to_tmux.js.map +1 -1
- package/dist/tools/send_input.d.ts +3 -3
- package/dist/tools/send_input.d.ts.map +1 -1
- package/dist/tools/send_input.js +18 -18
- package/dist/tools/send_input.js.map +1 -1
- package/dist/tools/sftp_download.d.ts +3 -3
- package/dist/tools/sftp_download.d.ts.map +1 -1
- package/dist/tools/sftp_download.js +41 -27
- package/dist/tools/sftp_download.js.map +1 -1
- package/dist/tools/sftp_list.d.ts +3 -3
- package/dist/tools/sftp_list.d.ts.map +1 -1
- package/dist/tools/sftp_list.js +35 -26
- package/dist/tools/sftp_list.js.map +1 -1
- package/dist/tools/sftp_upload.d.ts +3 -3
- package/dist/tools/sftp_upload.d.ts.map +1 -1
- package/dist/tools/sftp_upload.js +43 -29
- package/dist/tools/sftp_upload.js.map +1 -1
- package/dist/tools/ssh_tunnel.d.ts +3 -3
- package/dist/tools/ssh_tunnel.d.ts.map +1 -1
- package/dist/tools/ssh_tunnel.js +130 -76
- package/dist/tools/ssh_tunnel.js.map +1 -1
- package/dist/tools/sync.d.ts +3 -3
- package/dist/tools/sync.d.ts.map +1 -1
- package/dist/tools/sync.js +103 -61
- package/dist/tools/sync.js.map +1 -1
- package/dist/tools/tail_log.d.ts +3 -3
- package/dist/tools/tail_log.d.ts.map +1 -1
- package/dist/tools/tail_log.js +38 -26
- package/dist/tools/tail_log.js.map +1 -1
- package/dist/tools/tools_config.d.ts +1 -1
- package/dist/tools/tools_config.d.ts.map +1 -1
- package/dist/tools/tools_config.js +25 -35
- package/dist/tools/tools_config.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/ansi.js +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/security.d.ts +1 -1
- package/dist/utils/security.js +3 -3
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/ssh.d.ts +2 -2
- package/dist/utils/ssh.js +5 -5
- package/dist/utils/ssh.js.map +1 -1
- package/dist/utils/sshConfig.d.ts +1 -1
- package/dist/utils/sshConfig.d.ts.map +1 -1
- package/dist/utils/sshConfig.js +21 -21
- package/dist/utils/sshConfig.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.js +3 -3
- package/dist/utils/validation.js.map +1 -1
- package/docs/SECURITY.md +213 -213
- package/docs/TOOLS.md +425 -425
- package/package.json +59 -48
- package/vitest.config.ts +10 -10
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { logger } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
3
|
export const healthCheckSchema = z.object({
|
|
4
4
|
session_id: z.string().min(1),
|
|
5
5
|
});
|
|
6
6
|
export const healthCheckTool = {
|
|
7
|
-
name:
|
|
8
|
-
description:
|
|
7
|
+
name: "health_check",
|
|
8
|
+
description: "Run a system health check on the remote host via an SSH exec channel (non-interactive). Returns structured CPU, RAM, disk, load, and uptime metrics.",
|
|
9
9
|
inputSchema: {
|
|
10
|
-
type:
|
|
10
|
+
type: "object",
|
|
11
11
|
properties: {
|
|
12
12
|
session_id: {
|
|
13
|
-
type:
|
|
14
|
-
description:
|
|
13
|
+
type: "string",
|
|
14
|
+
description: "Session ID returned by connect",
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
|
-
required: [
|
|
17
|
+
required: ["session_id"],
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
20
|
function parseMemory(line) {
|
|
21
21
|
const parts = line.trim().split(/\s+/);
|
|
22
|
-
if (parts.length >= 4 && parts[0] ===
|
|
22
|
+
if (parts.length >= 4 && parts[0] === "Mem:") {
|
|
23
23
|
return {
|
|
24
24
|
total_kb: parseInt(parts[1], 10) || 0,
|
|
25
25
|
used_kb: parseInt(parts[2], 10) || 0,
|
|
@@ -32,7 +32,7 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
32
32
|
const parsed = healthCheckSchema.safeParse(args);
|
|
33
33
|
if (!parsed.success) {
|
|
34
34
|
return {
|
|
35
|
-
content: [{ type:
|
|
35
|
+
content: [{ type: "text", text: `Invalid arguments: ${parsed.error.message}` }],
|
|
36
36
|
isError: true,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
@@ -40,13 +40,15 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
40
40
|
const session = sessionManager.get(session_id);
|
|
41
41
|
if (!session) {
|
|
42
42
|
return {
|
|
43
|
-
content: [
|
|
43
|
+
content: [
|
|
44
|
+
{ type: "text", text: `Error: Session '${session_id}' not found or has been disconnected` },
|
|
45
|
+
],
|
|
44
46
|
isError: true,
|
|
45
47
|
};
|
|
46
48
|
}
|
|
47
49
|
if (!sshManager.isAlive(session.ssh)) {
|
|
48
50
|
return {
|
|
49
|
-
content: [{ type:
|
|
51
|
+
content: [{ type: "text", text: `Error: SSH connection for session '${session_id}' is dead` }],
|
|
50
52
|
isError: true,
|
|
51
53
|
};
|
|
52
54
|
}
|
|
@@ -59,16 +61,16 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
59
61
|
try {
|
|
60
62
|
const execResult = await sshManager.exec(session.ssh, script, 10000);
|
|
61
63
|
result.exit_code = execResult.code;
|
|
62
|
-
const stdout = execResult.stdout ||
|
|
64
|
+
const stdout = execResult.stdout || "";
|
|
63
65
|
const uptimeMatch = stdout.match(/^(.*?)\n==CPU==/s);
|
|
64
66
|
if (uptimeMatch) {
|
|
65
67
|
result.uptime = uptimeMatch[1].trim();
|
|
66
68
|
}
|
|
67
69
|
const cpuSection = stdout.match(/==CPU==\n([\s\S]*?)(?=\n==\w+==|$)/);
|
|
68
70
|
if (cpuSection) {
|
|
69
|
-
const topLines = cpuSection[1].trim().split(
|
|
71
|
+
const topLines = cpuSection[1].trim().split("\n");
|
|
70
72
|
for (const line of topLines) {
|
|
71
|
-
if (line.startsWith(
|
|
73
|
+
if (line.startsWith("%Cpu") || line.startsWith("%CPU") || line.includes("Cpu")) {
|
|
72
74
|
const userMatch = line.match(/(\d+\.?\d*)\s*us/);
|
|
73
75
|
const sysMatch = line.match(/(\d+\.?\d*)\s*sy/);
|
|
74
76
|
const idleMatch = line.match(/(\d+\.?\d*)\s*id/);
|
|
@@ -84,7 +86,7 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
84
86
|
}
|
|
85
87
|
const memSection = stdout.match(/==MEM==\n([\s\S]*?)(?=\n==\w+==|$)/);
|
|
86
88
|
if (memSection) {
|
|
87
|
-
const memLines = memSection[1].trim().split(
|
|
89
|
+
const memLines = memSection[1].trim().split("\n");
|
|
88
90
|
for (const line of memLines) {
|
|
89
91
|
const parsed = parseMemory(line);
|
|
90
92
|
if (parsed) {
|
|
@@ -106,8 +108,10 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
106
108
|
const freeKb = memAvail ? parseInt(memAvail[1]) : parseInt(memFree[1]);
|
|
107
109
|
result.memory_free_mb = Math.round(freeKb / 1024);
|
|
108
110
|
if (result.memory_total_mb) {
|
|
109
|
-
result.memory_used_mb =
|
|
110
|
-
|
|
111
|
+
result.memory_used_mb =
|
|
112
|
+
result.memory_total_mb - result.memory_free_mb;
|
|
113
|
+
result.memory_used_pct =
|
|
114
|
+
Math.round((result.memory_used_mb / result.memory_total_mb) * 10000) / 100;
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
}
|
|
@@ -115,11 +119,11 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
115
119
|
}
|
|
116
120
|
const diskSection = stdout.match(/==DISK==\n([\s\S]*?)(?=\n==\w+==|$)/);
|
|
117
121
|
if (diskSection) {
|
|
118
|
-
const diskLines = diskSection[1].trim().split(
|
|
122
|
+
const diskLines = diskSection[1].trim().split("\n");
|
|
119
123
|
const mounts = [];
|
|
120
124
|
for (const line of diskLines) {
|
|
121
125
|
const parts = line.trim().split(/\s+/);
|
|
122
|
-
if (parts.length >= 6 && parts[0].startsWith(
|
|
126
|
+
if (parts.length >= 6 && parts[0].startsWith("/")) {
|
|
123
127
|
mounts.push({
|
|
124
128
|
filesystem: parts[0],
|
|
125
129
|
size: parts[1],
|
|
@@ -148,14 +152,14 @@ export async function handleHealthCheck(args, sessionManager, sshManager) {
|
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
154
|
catch (err) {
|
|
151
|
-
logger.error({ sessionId: session_id, error: err.message },
|
|
155
|
+
logger.error({ sessionId: session_id, error: err.message }, "Health check failed");
|
|
152
156
|
return {
|
|
153
|
-
content: [{ type:
|
|
157
|
+
content: [{ type: "text", text: `Error: Health check failed: ${err.message}` }],
|
|
154
158
|
isError: true,
|
|
155
159
|
};
|
|
156
160
|
}
|
|
157
161
|
return {
|
|
158
|
-
content: [{ type:
|
|
162
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
159
163
|
};
|
|
160
164
|
}
|
|
161
165
|
//# sourceMappingURL=health_check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health_check.js","sourceRoot":"","sources":["../../src/tools/health_check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"health_check.js","sourceRoot":"","sources":["../../src/tools/health_check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host_security.d.ts","sourceRoot":"","sources":["../../src/tools/host_security.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC5B,CAAC;AAUF,wBAAsB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"host_security.d.ts","sourceRoot":"","sources":["../../src/tools/host_security.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC5B,CAAC;AAUF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB;;;;;;;;;;;;GAiF/F"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
export const hostSecurityTool = {
|
|
3
|
-
name:
|
|
4
|
-
description:
|
|
3
|
+
name: "host_security",
|
|
4
|
+
description: "Manage per-host security: set read-only mode, command allowlist or denylist per host. Per-host settings override the global MCP_SSH_READONLY env var for that host.",
|
|
5
5
|
inputSchema: {
|
|
6
|
-
type:
|
|
6
|
+
type: "object",
|
|
7
7
|
properties: {
|
|
8
8
|
action: {
|
|
9
|
-
type:
|
|
10
|
-
enum: [
|
|
11
|
-
description:
|
|
9
|
+
type: "string",
|
|
10
|
+
enum: ["get", "set", "remove"],
|
|
11
|
+
description: "get=view config, set=apply settings, remove=clear host config",
|
|
12
12
|
},
|
|
13
13
|
host: {
|
|
14
|
-
type:
|
|
15
|
-
description:
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Host alias from SSH config (required for set/remove)",
|
|
16
16
|
},
|
|
17
17
|
readonly: {
|
|
18
|
-
type:
|
|
19
|
-
description:
|
|
18
|
+
type: "boolean",
|
|
19
|
+
description: "Force read-only mode for this host (action=set)",
|
|
20
20
|
},
|
|
21
21
|
allow_commands: {
|
|
22
|
-
type:
|
|
23
|
-
items: { type:
|
|
24
|
-
description:
|
|
22
|
+
type: "array",
|
|
23
|
+
items: { type: "string" },
|
|
24
|
+
description: "Whitelist commands for this host (action=set)",
|
|
25
25
|
},
|
|
26
26
|
deny_commands: {
|
|
27
|
-
type:
|
|
28
|
-
items: { type:
|
|
29
|
-
description:
|
|
27
|
+
type: "array",
|
|
28
|
+
items: { type: "string" },
|
|
29
|
+
description: "Blacklist commands for this host (action=set)",
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
|
-
required: [
|
|
32
|
+
required: ["action"],
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
35
|
const schema = z.object({
|
|
36
|
-
action: z.enum([
|
|
36
|
+
action: z.enum(["get", "set", "remove"]),
|
|
37
37
|
host: z.string().optional(),
|
|
38
38
|
readonly: z.boolean().optional(),
|
|
39
39
|
allow_commands: z.array(z.string()).optional(),
|
|
@@ -43,21 +43,19 @@ export async function handleHostSecurity(args, hostSecurityManager) {
|
|
|
43
43
|
const parsed = schema.safeParse(args);
|
|
44
44
|
if (!parsed.success) {
|
|
45
45
|
return {
|
|
46
|
-
content: [
|
|
47
|
-
{ type: 'text', text: `Invalid arguments: ${parsed.error.message}` },
|
|
48
|
-
],
|
|
46
|
+
content: [{ type: "text", text: `Invalid arguments: ${parsed.error.message}` }],
|
|
49
47
|
isError: true,
|
|
50
48
|
};
|
|
51
49
|
}
|
|
52
50
|
const { action, host, readonly, allow_commands, deny_commands } = parsed.data;
|
|
53
51
|
switch (action) {
|
|
54
|
-
case
|
|
52
|
+
case "get": {
|
|
55
53
|
if (host) {
|
|
56
54
|
const cfg = hostSecurityManager.getHostConfig(host);
|
|
57
55
|
return {
|
|
58
56
|
content: [
|
|
59
57
|
{
|
|
60
|
-
type:
|
|
58
|
+
type: "text",
|
|
61
59
|
text: JSON.stringify({ host, config: cfg }, null, 2),
|
|
62
60
|
},
|
|
63
61
|
],
|
|
@@ -67,20 +65,18 @@ export async function handleHostSecurity(args, hostSecurityManager) {
|
|
|
67
65
|
return {
|
|
68
66
|
content: [
|
|
69
67
|
{
|
|
70
|
-
type:
|
|
68
|
+
type: "text",
|
|
71
69
|
text: Object.keys(all).length > 0
|
|
72
70
|
? JSON.stringify(all, null, 2)
|
|
73
|
-
:
|
|
71
|
+
: "No per-host security rules configured",
|
|
74
72
|
},
|
|
75
73
|
],
|
|
76
74
|
};
|
|
77
75
|
}
|
|
78
|
-
case
|
|
76
|
+
case "set": {
|
|
79
77
|
if (!host) {
|
|
80
78
|
return {
|
|
81
|
-
content: [
|
|
82
|
-
{ type: 'text', text: 'Error: "host" parameter required for set' },
|
|
83
|
-
],
|
|
79
|
+
content: [{ type: "text", text: 'Error: "host" parameter required for set' }],
|
|
84
80
|
isError: true,
|
|
85
81
|
};
|
|
86
82
|
}
|
|
@@ -97,18 +93,16 @@ export async function handleHostSecurity(args, hostSecurityManager) {
|
|
|
97
93
|
return {
|
|
98
94
|
content: [
|
|
99
95
|
{
|
|
100
|
-
type:
|
|
96
|
+
type: "text",
|
|
101
97
|
text: JSON.stringify({ host, config: cfg }, null, 2),
|
|
102
98
|
},
|
|
103
99
|
],
|
|
104
100
|
};
|
|
105
101
|
}
|
|
106
|
-
case
|
|
102
|
+
case "remove": {
|
|
107
103
|
if (!host) {
|
|
108
104
|
return {
|
|
109
|
-
content: [
|
|
110
|
-
{ type: 'text', text: 'Error: "host" parameter required for remove' },
|
|
111
|
-
],
|
|
105
|
+
content: [{ type: "text", text: 'Error: "host" parameter required for remove' }],
|
|
112
106
|
isError: true,
|
|
113
107
|
};
|
|
114
108
|
}
|
|
@@ -116,7 +110,7 @@ export async function handleHostSecurity(args, hostSecurityManager) {
|
|
|
116
110
|
return {
|
|
117
111
|
content: [
|
|
118
112
|
{
|
|
119
|
-
type:
|
|
113
|
+
type: "text",
|
|
120
114
|
text: `Host security config removed for '${host}'`,
|
|
121
115
|
},
|
|
122
116
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host_security.js","sourceRoot":"","sources":["../../src/tools/host_security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,gBAAgB,GAAG;
|
|
1
|
+
{"version":3,"file":"host_security.js","sourceRoot":"","sources":["../../src/tools/host_security.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export { listHostsTool, handleListHosts } from
|
|
2
|
-
export { connectTool, handleConnect } from
|
|
3
|
-
export { reconnectTool, handleReconnect } from
|
|
4
|
-
export { sendInputTool, handleSendInput } from
|
|
5
|
-
export { readOutputTool, handleReadOutput } from
|
|
6
|
-
export { execTool, handleExec } from
|
|
7
|
-
export { interruptTool, handleInterrupt } from
|
|
8
|
-
export { disconnectTool, handleDisconnect } from
|
|
9
|
-
export { listSessionsTool, handleListSessions } from
|
|
10
|
-
export { sftpUploadTool, handleSftpUpload } from
|
|
11
|
-
export { sftpDownloadTool, handleSftpDownload } from
|
|
12
|
-
export { sftpListTool, handleSftpList } from
|
|
13
|
-
export { connectionStatusTool, handleConnectionStatus } from
|
|
14
|
-
export { healthCheckTool, handleHealthCheck } from
|
|
15
|
-
export { tailLogTool, handleTailLog } from
|
|
16
|
-
export { deployTool, handleDeploy } from
|
|
17
|
-
export { backupTool, handleBackup } from
|
|
18
|
-
export { syncTool, handleSync } from
|
|
19
|
-
export { tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList } from
|
|
20
|
-
export { groupExecTool, handleGroupExec } from
|
|
21
|
-
export { dbQueryTool, handleDbQuery } from
|
|
22
|
-
export { toolsConfigTool, handleToolsConfig } from
|
|
23
|
-
export { hostSecurityTool, handleHostSecurity } from
|
|
1
|
+
export { listHostsTool, handleListHosts } from "./list_hosts.js";
|
|
2
|
+
export { connectTool, handleConnect } from "./connect.js";
|
|
3
|
+
export { reconnectTool, handleReconnect } from "./reconnect_to_tmux.js";
|
|
4
|
+
export { sendInputTool, handleSendInput } from "./send_input.js";
|
|
5
|
+
export { readOutputTool, handleReadOutput } from "./read_output.js";
|
|
6
|
+
export { execTool, handleExec } from "./exec.js";
|
|
7
|
+
export { interruptTool, handleInterrupt } from "./interrupt.js";
|
|
8
|
+
export { disconnectTool, handleDisconnect } from "./disconnect.js";
|
|
9
|
+
export { listSessionsTool, handleListSessions } from "./list_sessions.js";
|
|
10
|
+
export { sftpUploadTool, handleSftpUpload } from "./sftp_upload.js";
|
|
11
|
+
export { sftpDownloadTool, handleSftpDownload } from "./sftp_download.js";
|
|
12
|
+
export { sftpListTool, handleSftpList } from "./sftp_list.js";
|
|
13
|
+
export { connectionStatusTool, handleConnectionStatus } from "./connection_status.js";
|
|
14
|
+
export { healthCheckTool, handleHealthCheck } from "./health_check.js";
|
|
15
|
+
export { tailLogTool, handleTailLog } from "./tail_log.js";
|
|
16
|
+
export { deployTool, handleDeploy } from "./deploy.js";
|
|
17
|
+
export { backupTool, handleBackup } from "./backup.js";
|
|
18
|
+
export { syncTool, handleSync } from "./sync.js";
|
|
19
|
+
export { tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList, } from "./ssh_tunnel.js";
|
|
20
|
+
export { groupExecTool, handleGroupExec } from "./group_exec.js";
|
|
21
|
+
export { dbQueryTool, handleDbQuery } from "./db_query.js";
|
|
22
|
+
export { toolsConfigTool, handleToolsConfig } from "./tools_config.js";
|
|
23
|
+
export { hostSecurityTool, handleHostSecurity } from "./host_security.js";
|
|
24
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export { listHostsTool, handleListHosts } from
|
|
2
|
-
export { connectTool, handleConnect } from
|
|
3
|
-
export { reconnectTool, handleReconnect } from
|
|
4
|
-
export { sendInputTool, handleSendInput } from
|
|
5
|
-
export { readOutputTool, handleReadOutput } from
|
|
6
|
-
export { execTool, handleExec } from
|
|
7
|
-
export { interruptTool, handleInterrupt } from
|
|
8
|
-
export { disconnectTool, handleDisconnect } from
|
|
9
|
-
export { listSessionsTool, handleListSessions } from
|
|
10
|
-
export { sftpUploadTool, handleSftpUpload } from
|
|
11
|
-
export { sftpDownloadTool, handleSftpDownload } from
|
|
12
|
-
export { sftpListTool, handleSftpList } from
|
|
13
|
-
export { connectionStatusTool, handleConnectionStatus } from
|
|
14
|
-
export { healthCheckTool, handleHealthCheck } from
|
|
15
|
-
export { tailLogTool, handleTailLog } from
|
|
16
|
-
export { deployTool, handleDeploy } from
|
|
17
|
-
export { backupTool, handleBackup } from
|
|
18
|
-
export { syncTool, handleSync } from
|
|
19
|
-
export { tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList } from
|
|
20
|
-
export { groupExecTool, handleGroupExec } from
|
|
21
|
-
export { dbQueryTool, handleDbQuery } from
|
|
22
|
-
export { toolsConfigTool, handleToolsConfig } from
|
|
23
|
-
export { hostSecurityTool, handleHostSecurity } from
|
|
1
|
+
export { listHostsTool, handleListHosts } from "./list_hosts.js";
|
|
2
|
+
export { connectTool, handleConnect } from "./connect.js";
|
|
3
|
+
export { reconnectTool, handleReconnect } from "./reconnect_to_tmux.js";
|
|
4
|
+
export { sendInputTool, handleSendInput } from "./send_input.js";
|
|
5
|
+
export { readOutputTool, handleReadOutput } from "./read_output.js";
|
|
6
|
+
export { execTool, handleExec } from "./exec.js";
|
|
7
|
+
export { interruptTool, handleInterrupt } from "./interrupt.js";
|
|
8
|
+
export { disconnectTool, handleDisconnect } from "./disconnect.js";
|
|
9
|
+
export { listSessionsTool, handleListSessions } from "./list_sessions.js";
|
|
10
|
+
export { sftpUploadTool, handleSftpUpload } from "./sftp_upload.js";
|
|
11
|
+
export { sftpDownloadTool, handleSftpDownload } from "./sftp_download.js";
|
|
12
|
+
export { sftpListTool, handleSftpList } from "./sftp_list.js";
|
|
13
|
+
export { connectionStatusTool, handleConnectionStatus } from "./connection_status.js";
|
|
14
|
+
export { healthCheckTool, handleHealthCheck } from "./health_check.js";
|
|
15
|
+
export { tailLogTool, handleTailLog } from "./tail_log.js";
|
|
16
|
+
export { deployTool, handleDeploy } from "./deploy.js";
|
|
17
|
+
export { backupTool, handleBackup } from "./backup.js";
|
|
18
|
+
export { syncTool, handleSync } from "./sync.js";
|
|
19
|
+
export { tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList, } from "./ssh_tunnel.js";
|
|
20
|
+
export { groupExecTool, handleGroupExec } from "./group_exec.js";
|
|
21
|
+
export { dbQueryTool, handleDbQuery } from "./db_query.js";
|
|
22
|
+
export { toolsConfigTool, handleToolsConfig } from "./tools_config.js";
|
|
23
|
+
export { hostSecurityTool, handleHostSecurity } from "./host_security.js";
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { SessionManager } from
|
|
3
|
-
import { TmuxManager } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { SessionManager } from "../core/SessionManager.js";
|
|
3
|
+
import { TmuxManager } from "../core/TmuxManager.js";
|
|
4
4
|
export declare const interruptSchema: z.ZodObject<{
|
|
5
5
|
session_id: z.ZodString;
|
|
6
6
|
signal: z.ZodDefault<z.ZodEnum<["SIGINT", "SIGTERM"]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../src/tools/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;CAoBzB,CAAC;AAEF,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../src/tools/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;CAoBzB,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;;;;;;;;;;;;GAsD5G"}
|
package/dist/tools/interrupt.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { logger } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
3
|
export const interruptSchema = z.object({
|
|
4
4
|
session_id: z.string().min(1),
|
|
5
|
-
signal: z.enum([
|
|
5
|
+
signal: z.enum(["SIGINT", "SIGTERM"]).default("SIGINT"),
|
|
6
6
|
});
|
|
7
7
|
export const interruptTool = {
|
|
8
|
-
name:
|
|
9
|
-
description:
|
|
8
|
+
name: "interrupt",
|
|
9
|
+
description: "Send an interrupt signal (Ctrl-C) or termination signal (Ctrl-D) to the active process in a tmux session. Useful for stopping long-running commands.",
|
|
10
10
|
inputSchema: {
|
|
11
|
-
type:
|
|
11
|
+
type: "object",
|
|
12
12
|
properties: {
|
|
13
13
|
session_id: {
|
|
14
|
-
type:
|
|
15
|
-
description:
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Session ID returned by connect",
|
|
16
16
|
},
|
|
17
17
|
signal: {
|
|
18
|
-
type:
|
|
19
|
-
description:
|
|
20
|
-
enum: [
|
|
21
|
-
default:
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Signal to send: SIGINT (Ctrl-C) or SIGTERM (Ctrl-D)",
|
|
20
|
+
enum: ["SIGINT", "SIGTERM"],
|
|
21
|
+
default: "SIGINT",
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
|
-
required: [
|
|
24
|
+
required: ["session_id"],
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
export async function handleInterrupt(args, sessionManager, tmuxManager) {
|
|
@@ -30,7 +30,7 @@ export async function handleInterrupt(args, sessionManager, tmuxManager) {
|
|
|
30
30
|
return {
|
|
31
31
|
content: [
|
|
32
32
|
{
|
|
33
|
-
type:
|
|
33
|
+
type: "text",
|
|
34
34
|
text: `Invalid arguments: ${parsed.error.message}`,
|
|
35
35
|
},
|
|
36
36
|
],
|
|
@@ -43,7 +43,7 @@ export async function handleInterrupt(args, sessionManager, tmuxManager) {
|
|
|
43
43
|
return {
|
|
44
44
|
content: [
|
|
45
45
|
{
|
|
46
|
-
type:
|
|
46
|
+
type: "text",
|
|
47
47
|
text: `Error: Session '${session_id}' not found or has been disconnected`,
|
|
48
48
|
},
|
|
49
49
|
],
|
|
@@ -55,18 +55,18 @@ export async function handleInterrupt(args, sessionManager, tmuxManager) {
|
|
|
55
55
|
return {
|
|
56
56
|
content: [
|
|
57
57
|
{
|
|
58
|
-
type:
|
|
58
|
+
type: "text",
|
|
59
59
|
text: `Signal ${signal} sent successfully`,
|
|
60
60
|
},
|
|
61
61
|
],
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
catch (err) {
|
|
65
|
-
logger.error({ sessionId: session_id, signal, error: err.message },
|
|
65
|
+
logger.error({ sessionId: session_id, signal, error: err.message }, "Failed to send interrupt signal");
|
|
66
66
|
return {
|
|
67
67
|
content: [
|
|
68
68
|
{
|
|
69
|
-
type:
|
|
69
|
+
type: "text",
|
|
70
70
|
text: `Error: Failed to send signal: ${err.message}`,
|
|
71
71
|
},
|
|
72
72
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../../src/tools/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../../src/tools/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,IAAI,EAAE,WAAW;IACjB,WAAW,EACP,sJAAsJ;IAC1J,WAAW,EAAE;QACT,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACR,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAChD;YACD,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAC3B,OAAO,EAAE,QAAQ;aACpB;SACJ;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KAC3B;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAa,EAAE,cAA8B,EAAE,WAAwB;IACzG,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;iBACrD;aACJ;YACD,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAmB,UAAU,sCAAsC;iBAC5E;aACJ;YACD,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,UAAU,MAAM,oBAAoB;iBAC7C;aACJ;SACJ,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CACR,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EAChE,iCAAiC,CACpC,CAAC;QACF,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,iCAAkC,GAAa,CAAC,OAAO,EAAE;iBAClE;aACJ;YACD,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_hosts.d.ts","sourceRoot":"","sources":["../../src/tools/list_hosts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;CAQzB,CAAC;AAEF,wBAAsB,eAAe;;;;;
|
|
1
|
+
{"version":3,"file":"list_hosts.d.ts","sourceRoot":"","sources":["../../src/tools/list_hosts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;CAQzB,CAAC;AAEF,wBAAsB,eAAe;;;;;GAKpC"}
|
package/dist/tools/list_hosts.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { listHostAliases } from
|
|
1
|
+
import { listHostAliases } from "../utils/sshConfig.js";
|
|
2
2
|
export const listHostsTool = {
|
|
3
|
-
name:
|
|
4
|
-
description:
|
|
3
|
+
name: "list_hosts",
|
|
4
|
+
description: "List all available SSH host aliases from ~/.ssh/config. Only these aliases can be used with the connect tool.",
|
|
5
5
|
inputSchema: {
|
|
6
|
-
type:
|
|
6
|
+
type: "object",
|
|
7
7
|
properties: {},
|
|
8
8
|
},
|
|
9
9
|
};
|
|
10
10
|
export async function handleListHosts() {
|
|
11
11
|
const hosts = listHostAliases();
|
|
12
12
|
return {
|
|
13
|
-
content: [
|
|
14
|
-
{ type: 'text', text: JSON.stringify({ hosts }, null, 2) },
|
|
15
|
-
],
|
|
13
|
+
content: [{ type: "text", text: JSON.stringify({ hosts }, null, 2) }],
|
|
16
14
|
};
|
|
17
15
|
}
|
|
18
16
|
//# sourceMappingURL=list_hosts.js.map
|