ssh-agent-workspace 1.0.5 → 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 -471
- 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
package/dist/tools/deploy.js
CHANGED
|
@@ -1,65 +1,102 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import fs from
|
|
3
|
-
import path from
|
|
4
|
-
import { isReadOnlyMode } from
|
|
5
|
-
import { logger } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { isReadOnlyMode } from "../utils/security.js";
|
|
5
|
+
import { logger } from "../utils/logger.js";
|
|
6
6
|
export const deploySchema = z.object({
|
|
7
7
|
session_id: z.string().min(1),
|
|
8
|
-
files: z
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
files: z
|
|
9
|
+
.array(z.object({
|
|
10
|
+
local_path: z.string().min(1).describe("Absolute path to the local file"),
|
|
11
|
+
remote_path: z.string().min(1).describe("Absolute destination path on the remote host"),
|
|
12
|
+
}))
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(50)
|
|
15
|
+
.describe("Array of {local_path, remote_path} mappings to deploy"),
|
|
16
|
+
chmod: z
|
|
17
|
+
.string()
|
|
18
|
+
.regex(/^[0-7]{3,4}$/)
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Octal permissions to set on each file (e.g. "644", "755")'),
|
|
21
|
+
chown: z
|
|
22
|
+
.string()
|
|
23
|
+
.regex(/^[a-zA-Z_][a-zA-Z0-9_.-]*:[a-zA-Z_][a-zA-Z0-9_.-]*$/)
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Owner:group to set on each file (e.g. "www-data:www-data")'),
|
|
26
|
+
backup: z.boolean().default(true).describe("Create .bak backup of each existing remote file before overwriting"),
|
|
15
27
|
restart_service: z.string().min(1).optional().describe('Service name to restart after deployment (e.g. "nginx")'),
|
|
16
|
-
pre_deploy_cmd: z
|
|
17
|
-
|
|
28
|
+
pre_deploy_cmd: z
|
|
29
|
+
.string()
|
|
30
|
+
.min(1)
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Command to run on remote before uploading (e.g. "systemctl stop nginx")'),
|
|
33
|
+
post_deploy_cmd: z.string().min(1).optional().describe("Command to run on remote after all steps complete"),
|
|
18
34
|
});
|
|
19
35
|
export const deployTool = {
|
|
20
|
-
name:
|
|
21
|
-
description:
|
|
36
|
+
name: "deploy",
|
|
37
|
+
description: "Deploy files to a remote host with permission management, backup, and optional service restart. Executes: pre-command -> backup -> upload -> chmod/chown -> post-command -> restart.",
|
|
22
38
|
inputSchema: {
|
|
23
|
-
type:
|
|
39
|
+
type: "object",
|
|
24
40
|
properties: {
|
|
25
|
-
session_id: { type:
|
|
41
|
+
session_id: { type: "string", description: "Session ID returned by connect" },
|
|
26
42
|
files: {
|
|
27
|
-
type:
|
|
28
|
-
description:
|
|
43
|
+
type: "array",
|
|
44
|
+
description: "Array of {local_path, remote_path} objects to deploy",
|
|
29
45
|
items: {
|
|
30
|
-
type:
|
|
46
|
+
type: "object",
|
|
31
47
|
properties: {
|
|
32
|
-
local_path: { type:
|
|
33
|
-
remote_path: { type:
|
|
48
|
+
local_path: { type: "string", description: "Absolute path to the local file" },
|
|
49
|
+
remote_path: { type: "string", description: "Absolute destination path on the remote host" },
|
|
34
50
|
},
|
|
35
|
-
required: [
|
|
51
|
+
required: ["local_path", "remote_path"],
|
|
36
52
|
},
|
|
37
53
|
},
|
|
38
|
-
chmod: { type:
|
|
39
|
-
chown: { type:
|
|
40
|
-
backup: {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
chmod: { type: "string", description: 'Octal permissions (e.g. "644", "755")' },
|
|
55
|
+
chown: { type: "string", description: 'Owner:group (e.g. "www-data:www-data")' },
|
|
56
|
+
backup: {
|
|
57
|
+
type: "boolean",
|
|
58
|
+
description: "Create .bak backup of existing remote files (default: true)",
|
|
59
|
+
default: true,
|
|
60
|
+
},
|
|
61
|
+
restart_service: { type: "string", description: "Service name to restart after deployment" },
|
|
62
|
+
pre_deploy_cmd: { type: "string", description: "Command to run on remote before uploading" },
|
|
63
|
+
post_deploy_cmd: { type: "string", description: "Command to run on remote after all steps" },
|
|
44
64
|
},
|
|
45
|
-
required: [
|
|
65
|
+
required: ["session_id", "files"],
|
|
46
66
|
},
|
|
47
67
|
};
|
|
48
68
|
export async function handleDeploy(args, sessionManager, sshManager) {
|
|
49
69
|
const parsed = deploySchema.safeParse(args);
|
|
50
70
|
if (!parsed.success) {
|
|
51
|
-
return {
|
|
71
|
+
return {
|
|
72
|
+
content: [{ type: "text", text: `Invalid arguments: ${parsed.error.message}` }],
|
|
73
|
+
isError: true,
|
|
74
|
+
};
|
|
52
75
|
}
|
|
53
76
|
const { session_id, files, chmod, chown, backup, restart_service, pre_deploy_cmd, post_deploy_cmd } = parsed.data;
|
|
54
77
|
const session = sessionManager.get(session_id);
|
|
55
78
|
if (!session) {
|
|
56
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
content: [{ type: "text", text: `Error: Session '${session_id}' not found` }],
|
|
81
|
+
isError: true,
|
|
82
|
+
};
|
|
57
83
|
}
|
|
58
84
|
if (!sshManager.isAlive(session.ssh)) {
|
|
59
|
-
return {
|
|
85
|
+
return {
|
|
86
|
+
content: [{ type: "text", text: `Error: SSH connection dead for session '${session_id}'` }],
|
|
87
|
+
isError: true,
|
|
88
|
+
};
|
|
60
89
|
}
|
|
61
90
|
if (isReadOnlyMode(session.host)) {
|
|
62
|
-
return {
|
|
91
|
+
return {
|
|
92
|
+
content: [
|
|
93
|
+
{
|
|
94
|
+
type: "text",
|
|
95
|
+
text: `Error: Host '${session.host}' is in read-only mode. Deploy is disabled.`,
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
isError: true,
|
|
99
|
+
};
|
|
63
100
|
}
|
|
64
101
|
const report = [];
|
|
65
102
|
let hadError = false;
|
|
@@ -70,15 +107,15 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
70
107
|
remote_path: file.remote_path,
|
|
71
108
|
};
|
|
72
109
|
if (!fs.existsSync(resolvedLocal)) {
|
|
73
|
-
stepReport.status =
|
|
74
|
-
stepReport.error =
|
|
110
|
+
stepReport.status = "error";
|
|
111
|
+
stepReport.error = "Local file not found";
|
|
75
112
|
report.push(stepReport);
|
|
76
113
|
hadError = true;
|
|
77
114
|
continue;
|
|
78
115
|
}
|
|
79
116
|
if (!fs.statSync(resolvedLocal).isFile()) {
|
|
80
|
-
stepReport.status =
|
|
81
|
-
stepReport.error =
|
|
117
|
+
stepReport.status = "error";
|
|
118
|
+
stepReport.error = "Local path is not a file";
|
|
82
119
|
report.push(stepReport);
|
|
83
120
|
hadError = true;
|
|
84
121
|
continue;
|
|
@@ -93,8 +130,8 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
93
130
|
stepReport.backup = `${file.remote_path}.bak`;
|
|
94
131
|
}
|
|
95
132
|
else {
|
|
96
|
-
stepReport.backup_warning =
|
|
97
|
-
logger.warn({ sessionId: session_id, remote: file.remote_path, stderr: bkResult.stderr },
|
|
133
|
+
stepReport.backup_warning = "Backup failed, continuing without backup";
|
|
134
|
+
logger.warn({ sessionId: session_id, remote: file.remote_path, stderr: bkResult.stderr }, "Deploy backup failed");
|
|
98
135
|
}
|
|
99
136
|
}
|
|
100
137
|
}
|
|
@@ -108,7 +145,7 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
108
145
|
stepReport.size = fs.statSync(resolvedLocal).size;
|
|
109
146
|
}
|
|
110
147
|
catch (err) {
|
|
111
|
-
stepReport.status =
|
|
148
|
+
stepReport.status = "error";
|
|
112
149
|
stepReport.error = `Upload failed: ${err.message}`;
|
|
113
150
|
report.push(stepReport);
|
|
114
151
|
hadError = true;
|
|
@@ -121,7 +158,7 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
121
158
|
stepReport.chmod = chmod;
|
|
122
159
|
}
|
|
123
160
|
else {
|
|
124
|
-
stepReport.chmod_error = chmodResult.stderr ||
|
|
161
|
+
stepReport.chmod_error = chmodResult.stderr || "unknown";
|
|
125
162
|
}
|
|
126
163
|
}
|
|
127
164
|
catch (err) {
|
|
@@ -135,14 +172,14 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
135
172
|
stepReport.chown = chown;
|
|
136
173
|
}
|
|
137
174
|
else {
|
|
138
|
-
stepReport.chown_error = chownResult.stderr ||
|
|
175
|
+
stepReport.chown_error = chownResult.stderr || "unknown";
|
|
139
176
|
}
|
|
140
177
|
}
|
|
141
178
|
catch (err) {
|
|
142
179
|
stepReport.chown_error = err.message;
|
|
143
180
|
}
|
|
144
181
|
}
|
|
145
|
-
stepReport.status =
|
|
182
|
+
stepReport.status = "deployed";
|
|
146
183
|
report.push(stepReport);
|
|
147
184
|
}
|
|
148
185
|
if (restart_service) {
|
|
@@ -152,18 +189,27 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
152
189
|
report.push({ service: restart_service, restarted: true });
|
|
153
190
|
}
|
|
154
191
|
else {
|
|
155
|
-
report.push({ service: restart_service, restarted: false, error: restartResult.stderr ||
|
|
192
|
+
report.push({ service: restart_service, restarted: false, error: restartResult.stderr || "unknown" });
|
|
156
193
|
}
|
|
157
194
|
}
|
|
158
195
|
catch (err) {
|
|
159
196
|
report.push({ service: restart_service, restarted: false, error: err.message });
|
|
160
197
|
}
|
|
161
198
|
}
|
|
162
|
-
const result = {
|
|
199
|
+
const result = {
|
|
200
|
+
session_id,
|
|
201
|
+
files: report,
|
|
202
|
+
total: files.length,
|
|
203
|
+
deployed: report.filter((r) => r.status === "deployed").length,
|
|
204
|
+
};
|
|
163
205
|
if (pre_deploy_cmd) {
|
|
164
206
|
try {
|
|
165
207
|
const preResult = await sshManager.exec(session.ssh, pre_deploy_cmd, 30000);
|
|
166
|
-
result.pre_deploy = {
|
|
208
|
+
result.pre_deploy = {
|
|
209
|
+
command: pre_deploy_cmd,
|
|
210
|
+
exit_code: preResult.code,
|
|
211
|
+
stdout: preResult.stdout.slice(0, 1000),
|
|
212
|
+
};
|
|
167
213
|
}
|
|
168
214
|
catch (err) {
|
|
169
215
|
result.pre_deploy_error = err.message;
|
|
@@ -172,24 +218,28 @@ export async function handleDeploy(args, sessionManager, sshManager) {
|
|
|
172
218
|
if (post_deploy_cmd) {
|
|
173
219
|
try {
|
|
174
220
|
const postResult = await sshManager.exec(session.ssh, post_deploy_cmd, 30000);
|
|
175
|
-
result.post_deploy = {
|
|
221
|
+
result.post_deploy = {
|
|
222
|
+
command: post_deploy_cmd,
|
|
223
|
+
exit_code: postResult.code,
|
|
224
|
+
stdout: postResult.stdout.slice(0, 1000),
|
|
225
|
+
};
|
|
176
226
|
}
|
|
177
227
|
catch (err) {
|
|
178
228
|
result.post_deploy_error = err.message;
|
|
179
229
|
}
|
|
180
230
|
}
|
|
181
|
-
logger.info({ sessionId: session_id, deployed: result.deployed, hadError },
|
|
231
|
+
logger.info({ sessionId: session_id, deployed: result.deployed, hadError }, "Deploy complete");
|
|
182
232
|
return {
|
|
183
|
-
content: [{ type:
|
|
233
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
184
234
|
isError: hadError,
|
|
185
235
|
};
|
|
186
236
|
}
|
|
187
237
|
export async function handleDeployCommand(args, sessionManager, sshManager) {
|
|
188
238
|
const session = sessionManager.get(args.session_id);
|
|
189
239
|
if (!session)
|
|
190
|
-
return { success: false, error:
|
|
240
|
+
return { success: false, error: "Session not found" };
|
|
191
241
|
if (!sshManager.isAlive(session.ssh))
|
|
192
|
-
return { success: false, error:
|
|
242
|
+
return { success: false, error: "SSH dead" };
|
|
193
243
|
try {
|
|
194
244
|
const result = await sshManager.exec(session.ssh, args.command, 15000);
|
|
195
245
|
return { success: result.code === 0, exit_code: result.code, stdout: result.stdout, stderr: result.stderr };
|
package/dist/tools/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 disconnectSchema: z.ZodObject<{
|
|
5
5
|
session_id: z.ZodString;
|
|
6
6
|
preserve_tmux: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.d.ts","sourceRoot":"","sources":["../../src/tools/disconnect.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,gBAAgB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"disconnect.d.ts","sourceRoot":"","sources":["../../src/tools/disconnect.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,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAmB1B,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;;;;;;;;;;;;GA0D7G"}
|
package/dist/tools/disconnect.js
CHANGED
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { logger } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
3
|
export const disconnectSchema = z.object({
|
|
4
4
|
session_id: z.string().min(1),
|
|
5
|
-
preserve_tmux: z
|
|
6
|
-
.boolean()
|
|
7
|
-
.default(true)
|
|
8
|
-
.describe('If false, the remote tmux session will be killed'),
|
|
5
|
+
preserve_tmux: z.boolean().default(true).describe("If false, the remote tmux session will be killed"),
|
|
9
6
|
});
|
|
10
7
|
export const disconnectTool = {
|
|
11
|
-
name:
|
|
12
|
-
description:
|
|
8
|
+
name: "disconnect",
|
|
9
|
+
description: "Disconnect from a session. Optionally kills the remote tmux session or leaves it running for reconnection.",
|
|
13
10
|
inputSchema: {
|
|
14
|
-
type:
|
|
11
|
+
type: "object",
|
|
15
12
|
properties: {
|
|
16
13
|
session_id: {
|
|
17
|
-
type:
|
|
18
|
-
description:
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Session ID returned by connect",
|
|
19
16
|
},
|
|
20
17
|
preserve_tmux: {
|
|
21
|
-
type:
|
|
22
|
-
description:
|
|
18
|
+
type: "boolean",
|
|
19
|
+
description: "Keep the tmux session running on the remote host (default: true)",
|
|
23
20
|
default: true,
|
|
24
21
|
},
|
|
25
22
|
},
|
|
26
|
-
required: [
|
|
23
|
+
required: ["session_id"],
|
|
27
24
|
},
|
|
28
25
|
};
|
|
29
26
|
export async function handleDisconnect(args, sessionManager, tmuxManager) {
|
|
@@ -32,7 +29,7 @@ export async function handleDisconnect(args, sessionManager, tmuxManager) {
|
|
|
32
29
|
return {
|
|
33
30
|
content: [
|
|
34
31
|
{
|
|
35
|
-
type:
|
|
32
|
+
type: "text",
|
|
36
33
|
text: `Invalid arguments: ${parsed.error.message}`,
|
|
37
34
|
},
|
|
38
35
|
],
|
|
@@ -45,7 +42,7 @@ export async function handleDisconnect(args, sessionManager, tmuxManager) {
|
|
|
45
42
|
return {
|
|
46
43
|
content: [
|
|
47
44
|
{
|
|
48
|
-
type:
|
|
45
|
+
type: "text",
|
|
49
46
|
text: `Error: Session '${session_id}' not found or has already been disconnected`,
|
|
50
47
|
},
|
|
51
48
|
],
|
|
@@ -57,16 +54,16 @@ export async function handleDisconnect(args, sessionManager, tmuxManager) {
|
|
|
57
54
|
await tmuxManager.killSession(session.ssh, session.tmuxSession);
|
|
58
55
|
}
|
|
59
56
|
catch (err) {
|
|
60
|
-
logger.warn({ sessionId: session_id, error: err.message },
|
|
57
|
+
logger.warn({ sessionId: session_id, error: err.message }, "Failed to kill tmux session during disconnect");
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
60
|
const removed = sessionManager.remove(session_id);
|
|
64
61
|
return {
|
|
65
62
|
content: [
|
|
66
63
|
{
|
|
67
|
-
type:
|
|
64
|
+
type: "text",
|
|
68
65
|
text: JSON.stringify({
|
|
69
|
-
status: removed ?
|
|
66
|
+
status: removed ? "disconnected" : "not_found",
|
|
70
67
|
session_id,
|
|
71
68
|
preserve_tmux,
|
|
72
69
|
}, null, 2),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../src/tools/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../src/tools/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CACxG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,IAAI,EAAE,YAAY;IAClB,WAAW,EACP,4GAA4G;IAChH,WAAW,EAAE;QACT,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACR,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAChD;YACD,aAAa,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,kEAAkE;gBAC/E,OAAO,EAAE,IAAI;aAChB;SACJ;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KAC3B;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAa,EAAE,cAA8B,EAAE,WAAwB;IAC1G,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,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,aAAa,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAClD,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,8CAA8C;iBACpF;aACJ;YACD,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,IAAI,CAAC;YACD,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CACP,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EACxD,+CAA+C,CAClD,CAAC;QACN,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAElD,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;oBACI,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;oBAC9C,UAAU;oBACV,aAAa;iBAChB,EACD,IAAI,EACJ,CAAC,CACJ;aACJ;SACJ;KACJ,CAAC;AACN,CAAC"}
|
package/dist/tools/exec.d.ts
CHANGED
|
@@ -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 execSchema: z.ZodObject<{
|
|
5
5
|
session_id: z.ZodString;
|
|
6
6
|
command: z.ZodString;
|
package/dist/tools/exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAc,MAAM,wBAAwB,CAAC;AAKjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAc,MAAM,wBAAwB,CAAC;AAKjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;EAgBrB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpB,CAAC;AA6BF,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;;;;;;;;;;;;GAqHvG"}
|