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.
Files changed (158) hide show
  1. package/README.md +471 -471
  2. package/dist/__tests__/SSHManager.test.js +59 -37
  3. package/dist/__tests__/SSHManager.test.js.map +1 -1
  4. package/dist/__tests__/SessionManager.test.js +53 -51
  5. package/dist/__tests__/SessionManager.test.js.map +1 -1
  6. package/dist/__tests__/StorageManager.test.js +74 -74
  7. package/dist/__tests__/StorageManager.test.js.map +1 -1
  8. package/dist/__tests__/ansi.test.js +33 -33
  9. package/dist/__tests__/ansi.test.js.map +1 -1
  10. package/dist/__tests__/security.test.js +54 -54
  11. package/dist/__tests__/security.test.js.map +1 -1
  12. package/dist/__tests__/validation.test.js +17 -17
  13. package/dist/__tests__/validation.test.js.map +1 -1
  14. package/dist/core/HostSecurityManager.d.ts.map +1 -1
  15. package/dist/core/HostSecurityManager.js +9 -9
  16. package/dist/core/HostSecurityManager.js.map +1 -1
  17. package/dist/core/SSHManager.d.ts +1 -1
  18. package/dist/core/SSHManager.d.ts.map +1 -1
  19. package/dist/core/SSHManager.js +31 -31
  20. package/dist/core/SSHManager.js.map +1 -1
  21. package/dist/core/SessionManager.d.ts +4 -4
  22. package/dist/core/SessionManager.d.ts.map +1 -1
  23. package/dist/core/SessionManager.js +14 -14
  24. package/dist/core/SessionManager.js.map +1 -1
  25. package/dist/core/StorageManager.d.ts.map +1 -1
  26. package/dist/core/StorageManager.js +11 -11
  27. package/dist/core/StorageManager.js.map +1 -1
  28. package/dist/core/TmuxManager.d.ts +3 -3
  29. package/dist/core/TmuxManager.d.ts.map +1 -1
  30. package/dist/core/TmuxManager.js +16 -16
  31. package/dist/core/TmuxManager.js.map +1 -1
  32. package/dist/core/ToolConfigManager.d.ts.map +1 -1
  33. package/dist/core/ToolConfigManager.js +10 -10
  34. package/dist/core/ToolConfigManager.js.map +1 -1
  35. package/dist/index.js +35 -35
  36. package/dist/index.js.map +1 -1
  37. package/dist/server.d.ts +4 -4
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +41 -41
  40. package/dist/server.js.map +1 -1
  41. package/dist/tools/backup.d.ts +3 -3
  42. package/dist/tools/backup.d.ts.map +1 -1
  43. package/dist/tools/backup.js +86 -49
  44. package/dist/tools/backup.js.map +1 -1
  45. package/dist/tools/connect.d.ts +4 -4
  46. package/dist/tools/connect.d.ts.map +1 -1
  47. package/dist/tools/connect.js +54 -42
  48. package/dist/tools/connect.js.map +1 -1
  49. package/dist/tools/connection_status.d.ts +4 -4
  50. package/dist/tools/connection_status.d.ts.map +1 -1
  51. package/dist/tools/connection_status.js +23 -16
  52. package/dist/tools/connection_status.js.map +1 -1
  53. package/dist/tools/db_query.d.ts +3 -3
  54. package/dist/tools/db_query.d.ts.map +1 -1
  55. package/dist/tools/db_query.js +130 -78
  56. package/dist/tools/db_query.js.map +1 -1
  57. package/dist/tools/deploy.d.ts +3 -3
  58. package/dist/tools/deploy.d.ts.map +1 -1
  59. package/dist/tools/deploy.js +103 -53
  60. package/dist/tools/deploy.js.map +1 -1
  61. package/dist/tools/disconnect.d.ts +3 -3
  62. package/dist/tools/disconnect.d.ts.map +1 -1
  63. package/dist/tools/disconnect.js +16 -19
  64. package/dist/tools/disconnect.js.map +1 -1
  65. package/dist/tools/exec.d.ts +3 -3
  66. package/dist/tools/exec.d.ts.map +1 -1
  67. package/dist/tools/exec.js +40 -45
  68. package/dist/tools/exec.js.map +1 -1
  69. package/dist/tools/group_exec.d.ts +3 -3
  70. package/dist/tools/group_exec.d.ts.map +1 -1
  71. package/dist/tools/group_exec.js +60 -44
  72. package/dist/tools/group_exec.js.map +1 -1
  73. package/dist/tools/health_check.d.ts +3 -3
  74. package/dist/tools/health_check.d.ts.map +1 -1
  75. package/dist/tools/health_check.js +27 -23
  76. package/dist/tools/health_check.js.map +1 -1
  77. package/dist/tools/host_security.d.ts +1 -1
  78. package/dist/tools/host_security.d.ts.map +1 -1
  79. package/dist/tools/host_security.js +30 -36
  80. package/dist/tools/host_security.js.map +1 -1
  81. package/dist/tools/index.d.ts +23 -23
  82. package/dist/tools/index.d.ts.map +1 -1
  83. package/dist/tools/index.js +23 -23
  84. package/dist/tools/index.js.map +1 -1
  85. package/dist/tools/interrupt.d.ts +3 -3
  86. package/dist/tools/interrupt.d.ts.map +1 -1
  87. package/dist/tools/interrupt.js +18 -18
  88. package/dist/tools/interrupt.js.map +1 -1
  89. package/dist/tools/list_hosts.d.ts.map +1 -1
  90. package/dist/tools/list_hosts.js +5 -7
  91. package/dist/tools/list_hosts.js.map +1 -1
  92. package/dist/tools/list_sessions.d.ts +1 -1
  93. package/dist/tools/list_sessions.js +4 -4
  94. package/dist/tools/list_sessions.js.map +1 -1
  95. package/dist/tools/read_output.d.ts +3 -3
  96. package/dist/tools/read_output.d.ts.map +1 -1
  97. package/dist/tools/read_output.js +17 -17
  98. package/dist/tools/read_output.js.map +1 -1
  99. package/dist/tools/reconnect_to_tmux.d.ts +4 -4
  100. package/dist/tools/reconnect_to_tmux.d.ts.map +1 -1
  101. package/dist/tools/reconnect_to_tmux.js +44 -37
  102. package/dist/tools/reconnect_to_tmux.js.map +1 -1
  103. package/dist/tools/send_input.d.ts +3 -3
  104. package/dist/tools/send_input.d.ts.map +1 -1
  105. package/dist/tools/send_input.js +18 -18
  106. package/dist/tools/send_input.js.map +1 -1
  107. package/dist/tools/sftp_download.d.ts +3 -3
  108. package/dist/tools/sftp_download.d.ts.map +1 -1
  109. package/dist/tools/sftp_download.js +41 -27
  110. package/dist/tools/sftp_download.js.map +1 -1
  111. package/dist/tools/sftp_list.d.ts +3 -3
  112. package/dist/tools/sftp_list.d.ts.map +1 -1
  113. package/dist/tools/sftp_list.js +35 -26
  114. package/dist/tools/sftp_list.js.map +1 -1
  115. package/dist/tools/sftp_upload.d.ts +3 -3
  116. package/dist/tools/sftp_upload.d.ts.map +1 -1
  117. package/dist/tools/sftp_upload.js +43 -29
  118. package/dist/tools/sftp_upload.js.map +1 -1
  119. package/dist/tools/ssh_tunnel.d.ts +3 -3
  120. package/dist/tools/ssh_tunnel.d.ts.map +1 -1
  121. package/dist/tools/ssh_tunnel.js +130 -76
  122. package/dist/tools/ssh_tunnel.js.map +1 -1
  123. package/dist/tools/sync.d.ts +3 -3
  124. package/dist/tools/sync.d.ts.map +1 -1
  125. package/dist/tools/sync.js +103 -61
  126. package/dist/tools/sync.js.map +1 -1
  127. package/dist/tools/tail_log.d.ts +3 -3
  128. package/dist/tools/tail_log.d.ts.map +1 -1
  129. package/dist/tools/tail_log.js +38 -26
  130. package/dist/tools/tail_log.js.map +1 -1
  131. package/dist/tools/tools_config.d.ts +1 -1
  132. package/dist/tools/tools_config.d.ts.map +1 -1
  133. package/dist/tools/tools_config.js +25 -35
  134. package/dist/tools/tools_config.js.map +1 -1
  135. package/dist/types/index.d.ts +1 -1
  136. package/dist/types/index.d.ts.map +1 -1
  137. package/dist/utils/ansi.js +1 -1
  138. package/dist/utils/ansi.js.map +1 -1
  139. package/dist/utils/logger.d.ts +1 -1
  140. package/dist/utils/logger.js +2 -2
  141. package/dist/utils/logger.js.map +1 -1
  142. package/dist/utils/security.d.ts +1 -1
  143. package/dist/utils/security.js +3 -3
  144. package/dist/utils/security.js.map +1 -1
  145. package/dist/utils/ssh.d.ts +2 -2
  146. package/dist/utils/ssh.js +5 -5
  147. package/dist/utils/ssh.js.map +1 -1
  148. package/dist/utils/sshConfig.d.ts +1 -1
  149. package/dist/utils/sshConfig.d.ts.map +1 -1
  150. package/dist/utils/sshConfig.js +21 -21
  151. package/dist/utils/sshConfig.js.map +1 -1
  152. package/dist/utils/validation.d.ts +1 -1
  153. package/dist/utils/validation.js +3 -3
  154. package/dist/utils/validation.js.map +1 -1
  155. package/docs/SECURITY.md +213 -213
  156. package/docs/TOOLS.md +425 -425
  157. package/package.json +59 -48
  158. package/vitest.config.ts +10 -10
@@ -1,8 +1,8 @@
1
- import { z } from 'zod';
2
- import { MCP_PROMPT } from '../core/TmuxManager.js';
3
- import { isReadOnlyMode, isCommandDenied } from '../utils/security.js';
4
- import { logger } from '../utils/logger.js';
5
- import { stripAnsi } from '../utils/ansi.js';
1
+ import { z } from "zod";
2
+ import { MCP_PROMPT } from "../core/TmuxManager.js";
3
+ import { isReadOnlyMode, isCommandDenied } from "../utils/security.js";
4
+ import { logger } from "../utils/logger.js";
5
+ import { stripAnsi } from "../utils/ansi.js";
6
6
  export const execSchema = z.object({
7
7
  session_id: z.string().min(1),
8
8
  command: z.string().min(1),
@@ -11,58 +11,53 @@ export const execSchema = z.object({
11
11
  .min(0)
12
12
  .max(60000)
13
13
  .default(200)
14
- .describe('Minimum milliseconds to wait before starting prompt detection'),
14
+ .describe("Minimum milliseconds to wait before starting prompt detection"),
15
15
  max_wait_ms: z
16
16
  .number()
17
17
  .min(0)
18
18
  .max(300000)
19
19
  .default(10000)
20
- .describe('Maximum total milliseconds to wait for prompt stabilization'),
21
- lines: z
22
- .number()
23
- .min(1)
24
- .max(10000)
25
- .default(200)
26
- .describe('Number of output lines to capture'),
20
+ .describe("Maximum total milliseconds to wait for prompt stabilization"),
21
+ lines: z.number().min(1).max(10000).default(200).describe("Number of output lines to capture"),
27
22
  });
28
23
  export const execTool = {
29
- name: 'exec',
30
- description: 'Execute a command in a persistent tmux session with prompt stabilization. Sends the command, waits for the deterministic prompt to appear, then captures output.',
24
+ name: "exec",
25
+ description: "Execute a command in a persistent tmux session with prompt stabilization. Sends the command, waits for the deterministic prompt to appear, then captures output.",
31
26
  inputSchema: {
32
- type: 'object',
27
+ type: "object",
33
28
  properties: {
34
29
  session_id: {
35
- type: 'string',
36
- description: 'Session ID returned by connect',
30
+ type: "string",
31
+ description: "Session ID returned by connect",
37
32
  },
38
33
  command: {
39
- type: 'string',
40
- description: 'Command to execute',
34
+ type: "string",
35
+ description: "Command to execute",
41
36
  },
42
37
  wait_ms: {
43
- type: 'number',
44
- description: 'Minimum milliseconds to wait before starting prompt detection (default: 200)',
38
+ type: "number",
39
+ description: "Minimum milliseconds to wait before starting prompt detection (default: 200)",
45
40
  default: 200,
46
41
  },
47
42
  max_wait_ms: {
48
- type: 'number',
49
- description: 'Maximum total milliseconds to wait for prompt stabilization (default: 10000)',
43
+ type: "number",
44
+ description: "Maximum total milliseconds to wait for prompt stabilization (default: 10000)",
50
45
  default: 10000,
51
46
  },
52
47
  lines: {
53
- type: 'number',
54
- description: 'Number of output lines to capture (default: 200)',
48
+ type: "number",
49
+ description: "Number of output lines to capture (default: 200)",
55
50
  default: 200,
56
51
  },
57
52
  },
58
- required: ['session_id', 'command'],
53
+ required: ["session_id", "command"],
59
54
  },
60
55
  };
61
56
  function outputContainsPrompt(output) {
62
- const lines = output.split('\n');
57
+ const lines = output.split("\n");
63
58
  for (let i = lines.length - 1; i >= 0; i--) {
64
59
  const line = lines[i].trim();
65
- if (line === '')
60
+ if (line === "")
66
61
  continue;
67
62
  // The prompt should be at the very end of the last non-empty line
68
63
  return line.includes(MCP_PROMPT.trim());
@@ -70,20 +65,20 @@ function outputContainsPrompt(output) {
70
65
  return false;
71
66
  }
72
67
  function stripPrompts(output) {
73
- const lines = output.split('\n');
68
+ const lines = output.split("\n");
74
69
  const cleaned = [];
75
70
  for (const line of lines) {
76
71
  if (line.trim() === MCP_PROMPT.trim()) {
77
72
  continue;
78
73
  }
79
74
  if (line.trimEnd().endsWith(MCP_PROMPT.trim())) {
80
- cleaned.push(line.trimEnd().replace(MCP_PROMPT.trim(), '').trimEnd());
75
+ cleaned.push(line.trimEnd().replace(MCP_PROMPT.trim(), "").trimEnd());
81
76
  }
82
77
  else {
83
78
  cleaned.push(line);
84
79
  }
85
80
  }
86
- return cleaned.join('\n').trimEnd();
81
+ return cleaned.join("\n").trimEnd();
87
82
  }
88
83
  export async function handleExec(args, sessionManager, tmuxManager) {
89
84
  const parsed = execSchema.safeParse(args);
@@ -91,7 +86,7 @@ export async function handleExec(args, sessionManager, tmuxManager) {
91
86
  return {
92
87
  content: [
93
88
  {
94
- type: 'text',
89
+ type: "text",
95
90
  text: `Invalid arguments: ${parsed.error.message}`,
96
91
  },
97
92
  ],
@@ -100,11 +95,11 @@ export async function handleExec(args, sessionManager, tmuxManager) {
100
95
  }
101
96
  const { session_id, command, wait_ms, max_wait_ms, lines } = parsed.data;
102
97
  if (isCommandDenied(command)) {
103
- logger.warn({ sessionId: session_id, command }, 'Command rejected by denylist');
98
+ logger.warn({ sessionId: session_id, command }, "Command rejected by denylist");
104
99
  return {
105
100
  content: [
106
101
  {
107
- type: 'text',
102
+ type: "text",
108
103
  text: `Error: Command '${command}' is denied by security policy`,
109
104
  },
110
105
  ],
@@ -116,7 +111,7 @@ export async function handleExec(args, sessionManager, tmuxManager) {
116
111
  return {
117
112
  content: [
118
113
  {
119
- type: 'text',
114
+ type: "text",
120
115
  text: `Error: Session '${session_id}' not found or has been disconnected`,
121
116
  },
122
117
  ],
@@ -127,7 +122,7 @@ export async function handleExec(args, sessionManager, tmuxManager) {
127
122
  return {
128
123
  content: [
129
124
  {
130
- type: 'text',
125
+ type: "text",
131
126
  text: `Error: Host '${session.host}' is in read-only mode. Command execution is disabled.`,
132
127
  },
133
128
  ],
@@ -136,14 +131,14 @@ export async function handleExec(args, sessionManager, tmuxManager) {
136
131
  }
137
132
  try {
138
133
  await tmuxManager.sendCommand(session.ssh, session.tmuxSession, command);
139
- logger.info({ sessionId: session_id, command }, 'Command sent');
134
+ logger.info({ sessionId: session_id, command }, "Command sent");
140
135
  }
141
136
  catch (err) {
142
- logger.error({ sessionId: session_id, error: err.message }, 'Failed to send command');
137
+ logger.error({ sessionId: session_id, error: err.message }, "Failed to send command");
143
138
  return {
144
139
  content: [
145
140
  {
146
- type: 'text',
141
+ type: "text",
147
142
  text: `Error: Failed to send command: ${err.message}`,
148
143
  },
149
144
  ],
@@ -157,7 +152,7 @@ export async function handleExec(args, sessionManager, tmuxManager) {
157
152
  await new Promise((resolve) => setTimeout(resolve, wait_ms));
158
153
  elapsed += wait_ms;
159
154
  }
160
- let output = '';
155
+ let output = "";
161
156
  let stabilized = false;
162
157
  while (elapsed < max_wait_ms) {
163
158
  let captureFailed = false;
@@ -166,23 +161,23 @@ export async function handleExec(args, sessionManager, tmuxManager) {
166
161
  }
167
162
  catch (err) {
168
163
  captureFailed = true;
169
- logger.warn({ sessionId: session_id, error: err.message, attempt: Math.floor(elapsed / pollInterval) }, 'capturePane failed, retrying');
164
+ logger.warn({ sessionId: session_id, error: err.message, attempt: Math.floor(elapsed / pollInterval) }, "capturePane failed, retrying");
170
165
  }
171
166
  if (!captureFailed && outputContainsPrompt(output)) {
172
167
  stabilized = true;
173
- logger.info({ sessionId: session_id, elapsedMs: elapsed }, 'Prompt stabilized');
168
+ logger.info({ sessionId: session_id, elapsedMs: elapsed }, "Prompt stabilized");
174
169
  break;
175
170
  }
176
171
  await new Promise((resolve) => setTimeout(resolve, pollInterval));
177
172
  elapsed += pollInterval;
178
173
  }
179
174
  if (!stabilized) {
180
- logger.warn({ sessionId: session_id, max_wait_ms }, 'Prompt did not stabilize within max_wait_ms; returning current output');
175
+ logger.warn({ sessionId: session_id, max_wait_ms }, "Prompt did not stabilize within max_wait_ms; returning current output");
181
176
  }
182
177
  const cleanedOutput = stripPrompts(output);
183
178
  const sanitizedOutput = stripAnsi(cleanedOutput);
184
179
  return {
185
- content: [{ type: 'text', text: sanitizedOutput }],
180
+ content: [{ type: "text", text: sanitizedOutput }],
186
181
  };
187
182
  }
188
183
  //# sourceMappingURL=exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { z } from 'zod';
2
- import { SessionManager } from '../core/SessionManager.js';
3
- import { TmuxManager } from '../core/TmuxManager.js';
1
+ import { z } from "zod";
2
+ import { SessionManager } from "../core/SessionManager.js";
3
+ import { TmuxManager } from "../core/TmuxManager.js";
4
4
  export declare const groupExecSchema: z.ZodObject<{
5
5
  session_ids: z.ZodArray<z.ZodString, "many">;
6
6
  command: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"group_exec.d.ts","sourceRoot":"","sources":["../../src/tools/group_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,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBzB,CAAC;AAoFF,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW;;;;;;;;;;;;GA6DzB"}
1
+ {"version":3,"file":"group_exec.d.ts","sourceRoot":"","sources":["../../src/tools/group_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,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,CAAC;AA2FF,wBAAsB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;;;;;;;;;;;;GAmE5G"}
@@ -1,74 +1,83 @@
1
- import { z } from 'zod';
2
- import { MCP_PROMPT } from '../core/TmuxManager.js';
3
- import { isReadOnlyMode, isCommandDenied } from '../utils/security.js';
4
- import { logger } from '../utils/logger.js';
5
- import { stripAnsi } from '../utils/ansi.js';
1
+ import { z } from "zod";
2
+ import { MCP_PROMPT } from "../core/TmuxManager.js";
3
+ import { isReadOnlyMode, isCommandDenied } from "../utils/security.js";
4
+ import { logger } from "../utils/logger.js";
5
+ import { stripAnsi } from "../utils/ansi.js";
6
6
  export const groupExecSchema = z.object({
7
- session_ids: z.array(z.string().min(1)).min(1).max(20).describe('Array of session IDs to execute the command on'),
8
- command: z.string().min(1).describe('Command to execute on all sessions'),
9
- wait_ms: z.number().min(0).max(60000).default(200).describe('Minimum ms before prompt detection per session'),
10
- max_wait_ms: z.number().min(0).max(300000).default(10000).describe('Maximum ms to wait for prompt per session'),
11
- lines: z.number().min(1).max(10000).default(200).describe('Output lines per session'),
12
- parallel: z.boolean().default(true).describe('Run commands in parallel (true) or sequentially (false)'),
7
+ session_ids: z.array(z.string().min(1)).min(1).max(20).describe("Array of session IDs to execute the command on"),
8
+ command: z.string().min(1).describe("Command to execute on all sessions"),
9
+ wait_ms: z.number().min(0).max(60000).default(200).describe("Minimum ms before prompt detection per session"),
10
+ max_wait_ms: z.number().min(0).max(300000).default(10000).describe("Maximum ms to wait for prompt per session"),
11
+ lines: z.number().min(1).max(10000).default(200).describe("Output lines per session"),
12
+ parallel: z.boolean().default(true).describe("Run commands in parallel (true) or sequentially (false)"),
13
13
  });
14
14
  export const groupExecTool = {
15
- name: 'group_exec',
16
- description: 'Execute the same command across multiple tmux sessions simultaneously or sequentially. Useful for managing clusters. Returns per-session results with host and exit status.',
15
+ name: "group_exec",
16
+ description: "Execute the same command across multiple tmux sessions simultaneously or sequentially. Useful for managing clusters. Returns per-session results with host and exit status.",
17
17
  inputSchema: {
18
- type: 'object',
18
+ type: "object",
19
19
  properties: {
20
20
  session_ids: {
21
- type: 'array',
22
- items: { type: 'string' },
23
- description: 'Array of session IDs to target',
21
+ type: "array",
22
+ items: { type: "string" },
23
+ description: "Array of session IDs to target",
24
24
  },
25
- command: { type: 'string', description: 'Command to execute' },
26
- wait_ms: { type: 'number', description: 'Min ms before prompt detection (default: 200)', default: 200 },
27
- max_wait_ms: { type: 'number', description: 'Max ms for prompt per session (default: 10000)', default: 10000 },
28
- lines: { type: 'number', description: 'Output lines per session (default: 200)', default: 200 },
29
- parallel: { type: 'boolean', description: 'Execute in parallel (default: true)', default: true },
25
+ command: { type: "string", description: "Command to execute" },
26
+ wait_ms: { type: "number", description: "Min ms before prompt detection (default: 200)", default: 200 },
27
+ max_wait_ms: {
28
+ type: "number",
29
+ description: "Max ms for prompt per session (default: 10000)",
30
+ default: 10000,
31
+ },
32
+ lines: { type: "number", description: "Output lines per session (default: 200)", default: 200 },
33
+ parallel: { type: "boolean", description: "Execute in parallel (default: true)", default: true },
30
34
  },
31
- required: ['session_ids', 'command'],
35
+ required: ["session_ids", "command"],
32
36
  },
33
37
  };
34
38
  function outputContainsPrompt(output) {
35
- const lines = output.split('\n');
39
+ const lines = output.split("\n");
36
40
  for (let i = lines.length - 1; i >= 0; i--) {
37
41
  const line = lines[i].trim();
38
- if (line === '')
42
+ if (line === "")
39
43
  continue;
40
44
  return line.includes(MCP_PROMPT.trim());
41
45
  }
42
46
  return false;
43
47
  }
44
48
  function stripPrompts(output) {
45
- const lines = output.split('\n');
49
+ const lines = output.split("\n");
46
50
  const cleaned = [];
47
51
  for (const line of lines) {
48
52
  if (line.trim() === MCP_PROMPT.trim())
49
53
  continue;
50
54
  if (line.trimEnd().endsWith(MCP_PROMPT.trim())) {
51
- cleaned.push(line.trimEnd().replace(MCP_PROMPT.trim(), '').trimEnd());
55
+ cleaned.push(line.trimEnd().replace(MCP_PROMPT.trim(), "").trimEnd());
52
56
  }
53
57
  else {
54
58
  cleaned.push(line);
55
59
  }
56
60
  }
57
- return cleaned.join('\n').trimEnd();
61
+ return cleaned.join("\n").trimEnd();
58
62
  }
59
63
  async function executeOnSession(session_id, command, wait_ms, max_wait_ms, lines, sessionManager, tmuxManager) {
60
64
  const session = sessionManager.get(session_id);
61
65
  if (!session) {
62
- return { session_id, host: 'unknown', status: 'error', error: 'Session not found' };
66
+ return { session_id, host: "unknown", status: "error", error: "Session not found" };
63
67
  }
64
68
  if (isReadOnlyMode(session.host)) {
65
- return { session_id, host: session.host, status: 'error', error: `Host '${session.host}' is in read-only mode` };
69
+ return {
70
+ session_id,
71
+ host: session.host,
72
+ status: "error",
73
+ error: `Host '${session.host}' is in read-only mode`,
74
+ };
66
75
  }
67
76
  try {
68
77
  await tmuxManager.sendCommand(session.ssh, session.tmuxSession, command);
69
78
  }
70
79
  catch (err) {
71
- return { session_id, host: session.host, status: 'error', error: `Send failed: ${err.message}` };
80
+ return { session_id, host: session.host, status: "error", error: `Send failed: ${err.message}` };
72
81
  }
73
82
  const pollInterval = 250;
74
83
  let elapsed = 0;
@@ -76,7 +85,7 @@ async function executeOnSession(session_id, command, wait_ms, max_wait_ms, lines
76
85
  await new Promise((r) => setTimeout(r, wait_ms));
77
86
  elapsed += wait_ms;
78
87
  }
79
- let output = '';
88
+ let output = "";
80
89
  let stabilized = false;
81
90
  while (elapsed < max_wait_ms) {
82
91
  try {
@@ -86,7 +95,9 @@ async function executeOnSession(session_id, command, wait_ms, max_wait_ms, lines
86
95
  break;
87
96
  }
88
97
  }
89
- catch { /* retry */ }
98
+ catch {
99
+ /* retry */
100
+ }
90
101
  await new Promise((r) => setTimeout(r, pollInterval));
91
102
  elapsed += pollInterval;
92
103
  }
@@ -94,7 +105,7 @@ async function executeOnSession(session_id, command, wait_ms, max_wait_ms, lines
94
105
  return {
95
106
  session_id,
96
107
  host: session.host,
97
- status: stabilized ? 'success' : 'timeout',
108
+ status: stabilized ? "success" : "timeout",
98
109
  output: cleaned,
99
110
  stabilized,
100
111
  };
@@ -102,12 +113,15 @@ async function executeOnSession(session_id, command, wait_ms, max_wait_ms, lines
102
113
  export async function handleGroupExec(args, sessionManager, tmuxManager) {
103
114
  const parsed = groupExecSchema.safeParse(args);
104
115
  if (!parsed.success) {
105
- return { content: [{ type: 'text', text: `Invalid arguments: ${parsed.error.message}` }], isError: true };
116
+ return {
117
+ content: [{ type: "text", text: `Invalid arguments: ${parsed.error.message}` }],
118
+ isError: true,
119
+ };
106
120
  }
107
121
  const { session_ids, command, wait_ms, max_wait_ms, lines, parallel } = parsed.data;
108
122
  if (isCommandDenied(command)) {
109
123
  return {
110
- content: [{ type: 'text', text: `Error: Command '${command}' is denied by security policy` }],
124
+ content: [{ type: "text", text: `Error: Command '${command}' is denied by security policy` }],
111
125
  isError: true,
112
126
  };
113
127
  }
@@ -115,7 +129,7 @@ export async function handleGroupExec(args, sessionManager, tmuxManager) {
115
129
  const missing = uniqueIds.filter((id) => !sessionManager.has(id));
116
130
  if (missing.length > 0) {
117
131
  return {
118
- content: [{ type: 'text', text: `Error: Sessions not found: ${missing.join(', ')}` }],
132
+ content: [{ type: "text", text: `Error: Sessions not found: ${missing.join(", ")}` }],
119
133
  isError: true,
120
134
  };
121
135
  }
@@ -129,13 +143,14 @@ export async function handleGroupExec(args, sessionManager, tmuxManager) {
129
143
  results.push(await executeOnSession(id, command, wait_ms, max_wait_ms, lines, sessionManager, tmuxManager));
130
144
  }
131
145
  }
132
- const succeeded = results.filter((r) => r.status === 'success').length;
133
- const failed = results.filter((r) => r.status === 'error').length;
134
- const timedOut = results.filter((r) => r.status === 'timeout').length;
135
- logger.info({ command, sessions: uniqueIds.length, succeeded, failed, timedOut }, 'Group exec complete');
146
+ const succeeded = results.filter((r) => r.status === "success").length;
147
+ const failed = results.filter((r) => r.status === "error").length;
148
+ const timedOut = results.filter((r) => r.status === "timeout").length;
149
+ logger.info({ command, sessions: uniqueIds.length, succeeded, failed, timedOut }, "Group exec complete");
136
150
  return {
137
- content: [{
138
- type: 'text',
151
+ content: [
152
+ {
153
+ type: "text",
139
154
  text: JSON.stringify({
140
155
  command,
141
156
  sessions_targeted: uniqueIds.length,
@@ -144,7 +159,8 @@ export async function handleGroupExec(args, sessionManager, tmuxManager) {
144
159
  timed_out: timedOut,
145
160
  results,
146
161
  }, null, 2),
147
- }],
162
+ },
163
+ ],
148
164
  };
149
165
  }
150
166
  //# sourceMappingURL=group_exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group_exec.js","sourceRoot":"","sources":["../../src/tools/group_exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group_exec.js","sourceRoot":"","sources":["../../src/tools/group_exec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { z } from 'zod';
2
- import { SessionManager } from '../core/SessionManager.js';
3
- import { SSHManager } from '../core/SSHManager.js';
1
+ import { z } from "zod";
2
+ import { SessionManager } from "../core/SessionManager.js";
3
+ import { SSHManager } from "../core/SSHManager.js";
4
4
  export declare const healthCheckSchema: z.ZodObject<{
5
5
  session_id: z.ZodString;
6
6
  }, "strip", z.ZodTypeAny, {
@@ -1 +1 @@
1
- {"version":3,"file":"health_check.d.ts","sourceRoot":"","sources":["../../src/tools/health_check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAc3B,CAAC;AAcF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU;;;;;;;;;;;;GA8IvB"}
1
+ {"version":3,"file":"health_check.d.ts","sourceRoot":"","sources":["../../src/tools/health_check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAc3B,CAAC;AAcF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;GAmJ5G"}