ssh-mcp-pro 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/AGENTS.md +127 -0
  2. package/ARCHITECTURE.md +145 -0
  3. package/LICENSE +21 -0
  4. package/LICENSES/MIT.txt +21 -0
  5. package/MIGRATION.md +14 -0
  6. package/README.md +175 -0
  7. package/REGISTRY_SUBMISSION.md +38 -0
  8. package/SECURITY.md +40 -0
  9. package/SECURITY_DECISIONS.md +59 -0
  10. package/dist/agent-bin.d.ts +3 -0
  11. package/dist/agent-bin.d.ts.map +1 -0
  12. package/dist/agent-bin.js +8 -0
  13. package/dist/agent-bin.js.map +1 -0
  14. package/dist/audit.d.ts +25 -0
  15. package/dist/audit.d.ts.map +1 -0
  16. package/dist/audit.js +50 -0
  17. package/dist/audit.js.map +1 -0
  18. package/dist/auth.d.ts +4 -0
  19. package/dist/auth.d.ts.map +1 -0
  20. package/dist/auth.js +33 -0
  21. package/dist/auth.js.map +1 -0
  22. package/dist/cli.d.ts +16 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +99 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/config.d.ts +103 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +490 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/connector-credentials.d.ts +8 -0
  31. package/dist/connector-credentials.d.ts.map +1 -0
  32. package/dist/connector-credentials.js +132 -0
  33. package/dist/connector-credentials.js.map +1 -0
  34. package/dist/connector-profile.d.ts +17 -0
  35. package/dist/connector-profile.d.ts.map +1 -0
  36. package/dist/connector-profile.js +81 -0
  37. package/dist/connector-profile.js.map +1 -0
  38. package/dist/container.d.ts +18 -0
  39. package/dist/container.d.ts.map +1 -0
  40. package/dist/container.js +52 -0
  41. package/dist/container.js.map +1 -0
  42. package/dist/detect.d.ts +7 -0
  43. package/dist/detect.d.ts.map +1 -0
  44. package/dist/detect.js +271 -0
  45. package/dist/detect.js.map +1 -0
  46. package/dist/ensure.d.ts +17 -0
  47. package/dist/ensure.d.ts.map +1 -0
  48. package/dist/ensure.js +531 -0
  49. package/dist/ensure.js.map +1 -0
  50. package/dist/errors.d.ts +54 -0
  51. package/dist/errors.d.ts.map +1 -0
  52. package/dist/errors.js +84 -0
  53. package/dist/errors.js.map +1 -0
  54. package/dist/fs-tools.d.ts +26 -0
  55. package/dist/fs-tools.d.ts.map +1 -0
  56. package/dist/fs-tools.js +599 -0
  57. package/dist/fs-tools.js.map +1 -0
  58. package/dist/http-rate-limit.d.ts +9 -0
  59. package/dist/http-rate-limit.d.ts.map +1 -0
  60. package/dist/http-rate-limit.js +41 -0
  61. package/dist/http-rate-limit.js.map +1 -0
  62. package/dist/http-security.d.ts +22 -0
  63. package/dist/http-security.d.ts.map +1 -0
  64. package/dist/http-security.js +88 -0
  65. package/dist/http-security.js.map +1 -0
  66. package/dist/index.d.ts +10 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +201 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/logging.d.ts +52 -0
  71. package/dist/logging.d.ts.map +1 -0
  72. package/dist/logging.js +180 -0
  73. package/dist/logging.js.map +1 -0
  74. package/dist/mcp.d.ts +16 -0
  75. package/dist/mcp.d.ts.map +1 -0
  76. package/dist/mcp.js +159 -0
  77. package/dist/mcp.js.map +1 -0
  78. package/dist/metrics.d.ts +95 -0
  79. package/dist/metrics.d.ts.map +1 -0
  80. package/dist/metrics.js +204 -0
  81. package/dist/metrics.js.map +1 -0
  82. package/dist/oauth.d.ts +14 -0
  83. package/dist/oauth.d.ts.map +1 -0
  84. package/dist/oauth.js +105 -0
  85. package/dist/oauth.js.map +1 -0
  86. package/dist/policy.d.ts +64 -0
  87. package/dist/policy.d.ts.map +1 -0
  88. package/dist/policy.js +368 -0
  89. package/dist/policy.js.map +1 -0
  90. package/dist/process.d.ts +24 -0
  91. package/dist/process.d.ts.map +1 -0
  92. package/dist/process.js +212 -0
  93. package/dist/process.js.map +1 -0
  94. package/dist/prompts.d.ts +49 -0
  95. package/dist/prompts.d.ts.map +1 -0
  96. package/dist/prompts.js +191 -0
  97. package/dist/prompts.js.map +1 -0
  98. package/dist/rate-limiter.d.ts +57 -0
  99. package/dist/rate-limiter.d.ts.map +1 -0
  100. package/dist/rate-limiter.js +141 -0
  101. package/dist/rate-limiter.js.map +1 -0
  102. package/dist/remote/agent-cli.d.ts +2 -0
  103. package/dist/remote/agent-cli.d.ts.map +1 -0
  104. package/dist/remote/agent-cli.js +270 -0
  105. package/dist/remote/agent-cli.js.map +1 -0
  106. package/dist/remote/agent-executor.d.ts +26 -0
  107. package/dist/remote/agent-executor.d.ts.map +1 -0
  108. package/dist/remote/agent-executor.js +400 -0
  109. package/dist/remote/agent-executor.js.map +1 -0
  110. package/dist/remote/config.d.ts +3 -0
  111. package/dist/remote/config.d.ts.map +1 -0
  112. package/dist/remote/config.js +52 -0
  113. package/dist/remote/config.js.map +1 -0
  114. package/dist/remote/control-plane.d.ts +57 -0
  115. package/dist/remote/control-plane.d.ts.map +1 -0
  116. package/dist/remote/control-plane.js +1248 -0
  117. package/dist/remote/control-plane.js.map +1 -0
  118. package/dist/remote/crypto.d.ts +38 -0
  119. package/dist/remote/crypto.d.ts.map +1 -0
  120. package/dist/remote/crypto.js +143 -0
  121. package/dist/remote/crypto.js.map +1 -0
  122. package/dist/remote/mcp-tools.d.ts +10 -0
  123. package/dist/remote/mcp-tools.d.ts.map +1 -0
  124. package/dist/remote/mcp-tools.js +201 -0
  125. package/dist/remote/mcp-tools.js.map +1 -0
  126. package/dist/remote/policy.d.ts +11 -0
  127. package/dist/remote/policy.d.ts.map +1 -0
  128. package/dist/remote/policy.js +94 -0
  129. package/dist/remote/policy.js.map +1 -0
  130. package/dist/remote/schemas.d.ts +298 -0
  131. package/dist/remote/schemas.d.ts.map +1 -0
  132. package/dist/remote/schemas.js +111 -0
  133. package/dist/remote/schemas.js.map +1 -0
  134. package/dist/remote/scopes.d.ts +6 -0
  135. package/dist/remote/scopes.d.ts.map +1 -0
  136. package/dist/remote/scopes.js +24 -0
  137. package/dist/remote/scopes.js.map +1 -0
  138. package/dist/remote/store.d.ts +45 -0
  139. package/dist/remote/store.d.ts.map +1 -0
  140. package/dist/remote/store.js +355 -0
  141. package/dist/remote/store.js.map +1 -0
  142. package/dist/remote/types.d.ts +183 -0
  143. package/dist/remote/types.d.ts.map +1 -0
  144. package/dist/remote/types.js +103 -0
  145. package/dist/remote/types.js.map +1 -0
  146. package/dist/remote/util.d.ts +6 -0
  147. package/dist/remote/util.d.ts.map +1 -0
  148. package/dist/remote/util.js +45 -0
  149. package/dist/remote/util.js.map +1 -0
  150. package/dist/remote/websocket.d.ts +26 -0
  151. package/dist/remote/websocket.d.ts.map +1 -0
  152. package/dist/remote/websocket.js +167 -0
  153. package/dist/remote/websocket.js.map +1 -0
  154. package/dist/render-http.d.ts +2 -0
  155. package/dist/render-http.d.ts.map +1 -0
  156. package/dist/render-http.js +14 -0
  157. package/dist/render-http.js.map +1 -0
  158. package/dist/resources.d.ts +19 -0
  159. package/dist/resources.d.ts.map +1 -0
  160. package/dist/resources.js +96 -0
  161. package/dist/resources.js.map +1 -0
  162. package/dist/retry.d.ts +45 -0
  163. package/dist/retry.d.ts.map +1 -0
  164. package/dist/retry.js +120 -0
  165. package/dist/retry.js.map +1 -0
  166. package/dist/safety.d.ts +31 -0
  167. package/dist/safety.d.ts.map +1 -0
  168. package/dist/safety.js +174 -0
  169. package/dist/safety.js.map +1 -0
  170. package/dist/server-http.d.ts +2 -0
  171. package/dist/server-http.d.ts.map +1 -0
  172. package/dist/server-http.js +432 -0
  173. package/dist/server-http.js.map +1 -0
  174. package/dist/session.d.ts +116 -0
  175. package/dist/session.d.ts.map +1 -0
  176. package/dist/session.js +666 -0
  177. package/dist/session.js.map +1 -0
  178. package/dist/shell.d.ts +10 -0
  179. package/dist/shell.d.ts.map +1 -0
  180. package/dist/shell.js +83 -0
  181. package/dist/shell.js.map +1 -0
  182. package/dist/ssh-config.d.ts +94 -0
  183. package/dist/ssh-config.d.ts.map +1 -0
  184. package/dist/ssh-config.js +234 -0
  185. package/dist/ssh-config.js.map +1 -0
  186. package/dist/streaming.d.ts +36 -0
  187. package/dist/streaming.d.ts.map +1 -0
  188. package/dist/streaming.js +140 -0
  189. package/dist/streaming.js.map +1 -0
  190. package/dist/telemetry.d.ts +17 -0
  191. package/dist/telemetry.d.ts.map +1 -0
  192. package/dist/telemetry.js +101 -0
  193. package/dist/telemetry.js.map +1 -0
  194. package/dist/tools/connector.provider.d.ts +28 -0
  195. package/dist/tools/connector.provider.d.ts.map +1 -0
  196. package/dist/tools/connector.provider.js +360 -0
  197. package/dist/tools/connector.provider.js.map +1 -0
  198. package/dist/tools/ensure.provider.d.ts +18 -0
  199. package/dist/tools/ensure.provider.d.ts.map +1 -0
  200. package/dist/tools/ensure.provider.js +173 -0
  201. package/dist/tools/ensure.provider.js.map +1 -0
  202. package/dist/tools/fs.provider.d.ts +21 -0
  203. package/dist/tools/fs.provider.d.ts.map +1 -0
  204. package/dist/tools/fs.provider.js +259 -0
  205. package/dist/tools/fs.provider.js.map +1 -0
  206. package/dist/tools/index.d.ts +4 -0
  207. package/dist/tools/index.d.ts.map +1 -0
  208. package/dist/tools/index.js +68 -0
  209. package/dist/tools/index.js.map +1 -0
  210. package/dist/tools/metadata.d.ts +11 -0
  211. package/dist/tools/metadata.d.ts.map +1 -0
  212. package/dist/tools/metadata.js +10 -0
  213. package/dist/tools/metadata.js.map +1 -0
  214. package/dist/tools/output-schemas.d.ts +217 -0
  215. package/dist/tools/output-schemas.d.ts.map +1 -0
  216. package/dist/tools/output-schemas.js +300 -0
  217. package/dist/tools/output-schemas.js.map +1 -0
  218. package/dist/tools/process.provider.d.ts +22 -0
  219. package/dist/tools/process.provider.d.ts.map +1 -0
  220. package/dist/tools/process.provider.js +146 -0
  221. package/dist/tools/process.provider.js.map +1 -0
  222. package/dist/tools/registry.d.ts +12 -0
  223. package/dist/tools/registry.d.ts.map +1 -0
  224. package/dist/tools/registry.js +163 -0
  225. package/dist/tools/registry.js.map +1 -0
  226. package/dist/tools/results.d.ts +4 -0
  227. package/dist/tools/results.d.ts.map +1 -0
  228. package/dist/tools/results.js +5 -0
  229. package/dist/tools/results.js.map +1 -0
  230. package/dist/tools/session.provider.d.ts +23 -0
  231. package/dist/tools/session.provider.d.ts.map +1 -0
  232. package/dist/tools/session.provider.js +299 -0
  233. package/dist/tools/session.provider.js.map +1 -0
  234. package/dist/tools/system.provider.d.ts +18 -0
  235. package/dist/tools/system.provider.d.ts.map +1 -0
  236. package/dist/tools/system.provider.js +81 -0
  237. package/dist/tools/system.provider.js.map +1 -0
  238. package/dist/tools/transfer.provider.d.ts +16 -0
  239. package/dist/tools/transfer.provider.d.ts.map +1 -0
  240. package/dist/tools/transfer.provider.js +85 -0
  241. package/dist/tools/transfer.provider.js.map +1 -0
  242. package/dist/tools/tunnel.provider.d.ts +18 -0
  243. package/dist/tools/tunnel.provider.d.ts.map +1 -0
  244. package/dist/tools/tunnel.provider.js +142 -0
  245. package/dist/tools/tunnel.provider.js.map +1 -0
  246. package/dist/tools/types.d.ts +16 -0
  247. package/dist/tools/types.d.ts.map +1 -0
  248. package/dist/tools/types.js +2 -0
  249. package/dist/tools/types.js.map +1 -0
  250. package/dist/transfer.d.ts +40 -0
  251. package/dist/transfer.d.ts.map +1 -0
  252. package/dist/transfer.js +363 -0
  253. package/dist/transfer.js.map +1 -0
  254. package/dist/tunnel.d.ts +37 -0
  255. package/dist/tunnel.d.ts.map +1 -0
  256. package/dist/tunnel.js +234 -0
  257. package/dist/tunnel.js.map +1 -0
  258. package/dist/types.d.ts +341 -0
  259. package/dist/types.d.ts.map +1 -0
  260. package/dist/types.js +184 -0
  261. package/dist/types.js.map +1 -0
  262. package/docs/docker.md +22 -0
  263. package/examples/README.md +77 -0
  264. package/mcp.json +21 -0
  265. package/package.json +147 -0
  266. package/registry/ssh-mcp-pro/mcp.json +21 -0
  267. package/server.json +76 -0
@@ -0,0 +1,300 @@
1
+ import { z } from "zod";
2
+ function zodOutputSchema(schema, description) {
3
+ const jsonSchema = z.toJSONSchema(schema.describe(description));
4
+ delete jsonSchema.$schema;
5
+ return {
6
+ ...jsonSchema,
7
+ type: "object",
8
+ description,
9
+ };
10
+ }
11
+ const ToolProfileSchema = z.enum([
12
+ "full",
13
+ "remote-safe",
14
+ "chatgpt",
15
+ "claude",
16
+ "remote-readonly",
17
+ "remote-broker",
18
+ ]);
19
+ const HostKeyPolicySchema = z.enum(["strict", "accept-new", "insecure"]);
20
+ const PolicyModeSchema = z.enum(["enforce", "explain"]);
21
+ const PolicyActionSchema = z.enum([
22
+ "ssh.open",
23
+ "proc.exec",
24
+ "proc.sudo",
25
+ "fs.read",
26
+ "fs.stat",
27
+ "fs.list",
28
+ "fs.write",
29
+ "fs.remove",
30
+ "fs.mkdir",
31
+ "fs.rename",
32
+ "ensure.package",
33
+ "ensure.service",
34
+ "ensure.lines",
35
+ "patch.apply",
36
+ "transfer.upload",
37
+ "transfer.download",
38
+ "transfer.local.read",
39
+ "transfer.local.write",
40
+ "transfer.local.create",
41
+ "transfer.local.overwrite",
42
+ "tunnel.local",
43
+ "tunnel.remote",
44
+ ]);
45
+ const PolicyDecisionOutputZodSchema = z.strictObject({
46
+ allowed: z.boolean(),
47
+ mode: PolicyModeSchema,
48
+ action: PolicyActionSchema,
49
+ reason: z.string().optional(),
50
+ hint: z.string().optional(),
51
+ riskLevel: z.string().optional(),
52
+ });
53
+ const FileTypeSchema = z.enum(["file", "directory", "symlink", "other"]);
54
+ const SessionRecordOutputZodSchema = z.strictObject({
55
+ sessionId: z.string(),
56
+ host: z.string(),
57
+ username: z.string(),
58
+ port: z.number(),
59
+ createdAt: z.string(),
60
+ expiresAt: z.string(),
61
+ lastUsed: z.string(),
62
+ remainingMs: z.number(),
63
+ });
64
+ const TunnelInfoOutputZodSchema = z.strictObject({
65
+ id: z.string(),
66
+ sessionId: z.string(),
67
+ type: z.enum(["local", "remote", "dynamic"]),
68
+ localHost: z.string(),
69
+ localPort: z.number(),
70
+ remoteHost: z.string(),
71
+ remotePort: z.number(),
72
+ createdAt: z.number(),
73
+ active: z.boolean(),
74
+ });
75
+ const MetricsGroupOutputZodSchema = z.strictObject({
76
+ sessions: z.strictObject({
77
+ created: z.number(),
78
+ closed: z.number(),
79
+ active: z.number(),
80
+ errors: z.number(),
81
+ }),
82
+ commands: z.strictObject({
83
+ executed: z.number(),
84
+ successful: z.number(),
85
+ failed: z.number(),
86
+ totalDurationMs: z.number(),
87
+ avgDurationMs: z.number(),
88
+ }),
89
+ files: z.strictObject({
90
+ reads: z.number(),
91
+ writes: z.number(),
92
+ deletes: z.number(),
93
+ bytesRead: z.number(),
94
+ bytesWritten: z.number(),
95
+ }),
96
+ transfers: z.strictObject({
97
+ uploads: z.number(),
98
+ downloads: z.number(),
99
+ bytesUploaded: z.number(),
100
+ bytesDownloaded: z.number(),
101
+ }),
102
+ tunnels: z.strictObject({
103
+ opened: z.number(),
104
+ closed: z.number(),
105
+ active: z.number(),
106
+ errors: z.number(),
107
+ }),
108
+ policy: z.strictObject({
109
+ allowed: z.number(),
110
+ denied: z.number(),
111
+ explainOnly: z.number(),
112
+ }),
113
+ uptime: z.number(),
114
+ startedAt: z.number(),
115
+ });
116
+ export const SESSION_OPEN_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
117
+ sessionId: z.string(),
118
+ host: z.string(),
119
+ username: z.string(),
120
+ sftpAvailable: z.boolean(),
121
+ expiresInMs: z.number(),
122
+ policyMode: PolicyModeSchema,
123
+ hostKeyPolicy: HostKeyPolicySchema,
124
+ wouldConnect: z.boolean().optional(),
125
+ }), "Session creation result or explain-mode connection plan");
126
+ export const SESSION_CLOSE_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({ closed: z.boolean() }), "Session close result");
127
+ export const SESSION_LIST_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
128
+ count: z.number(),
129
+ sessions: z.array(SessionRecordOutputZodSchema),
130
+ }), "Active SSH sessions");
131
+ export const SESSION_PING_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
132
+ alive: z.boolean(),
133
+ error: z.string().optional(),
134
+ latencyMs: z.number().optional(),
135
+ sessionId: z.string().optional(),
136
+ host: z.string().optional(),
137
+ remainingMs: z.number().optional(),
138
+ }), "Session health check result");
139
+ export const CONFIGURED_HOSTS_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
140
+ count: z.number(),
141
+ hosts: z.array(z.string()),
142
+ }), "Configured SSH host aliases");
143
+ export const RESOLVED_HOST_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
144
+ host: z.string(),
145
+ username: z.string().optional(),
146
+ port: z.number().optional(),
147
+ privateKeyPath: z.string().optional(),
148
+ proxyJump: z.string().optional(),
149
+ }), "Resolved SSH connection parameters");
150
+ export const EXEC_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
151
+ code: z.number(),
152
+ stdout: z.string(),
153
+ stderr: z.string(),
154
+ durationMs: z.number(),
155
+ safetyWarning: z.string().optional(),
156
+ }), "Remote command result");
157
+ export const STREAM_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
158
+ code: z.number(),
159
+ chunks: z.array(z.strictObject({
160
+ type: z.enum(["stdout", "stderr", "exit", "truncated"]),
161
+ data: z.string().optional(),
162
+ code: z.number().optional(),
163
+ timestamp: z.number(),
164
+ })),
165
+ stdout: z.string(),
166
+ stderr: z.string(),
167
+ durationMs: z.number(),
168
+ truncated: z.boolean(),
169
+ safetyWarning: z.string().optional(),
170
+ }), "Streaming command result with output chunks");
171
+ export const FILE_READ_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({ content: z.string() }), "Remote file content");
172
+ export const FILE_OPERATION_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({ ok: z.boolean() }), "Remote file operation result");
173
+ export const FILE_STAT_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
174
+ size: z.number(),
175
+ mtime: z.string(),
176
+ mode: z.number(),
177
+ type: FileTypeSchema,
178
+ }), "Remote path stat result");
179
+ export const DIRECTORY_LIST_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
180
+ entries: z.array(z.strictObject({
181
+ name: z.string(),
182
+ type: FileTypeSchema,
183
+ size: z.number().optional(),
184
+ mtime: z.string().optional(),
185
+ mode: z.number().optional(),
186
+ })),
187
+ nextToken: z.string().optional(),
188
+ }), "Remote directory entries");
189
+ export const PACKAGE_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
190
+ ok: z.boolean(),
191
+ pm: z.string(),
192
+ code: z.number(),
193
+ stdout: z.string(),
194
+ stderr: z.string(),
195
+ }), "Package state result");
196
+ export const SERVICE_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({ ok: z.boolean() }), "Service state result");
197
+ export const LINES_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
198
+ ok: z.boolean(),
199
+ added: z.number(),
200
+ }), "Line management result");
201
+ export const PATCH_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
202
+ ok: z.boolean(),
203
+ changed: z.boolean(),
204
+ }), "Patch application result");
205
+ export const TRANSFER_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
206
+ success: z.boolean(),
207
+ filename: z.string(),
208
+ size: z.number(),
209
+ durationMs: z.number(),
210
+ averageSpeed: z.number(),
211
+ sha256: z.string(),
212
+ verified: z.boolean(),
213
+ }), "File transfer result with integrity details");
214
+ export const TUNNEL_OUTPUT_SCHEMA = zodOutputSchema(TunnelInfoOutputZodSchema, "SSH tunnel info");
215
+ export const TUNNEL_CLOSE_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({ closed: z.boolean() }), "Tunnel close result");
216
+ export const TUNNEL_LIST_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
217
+ count: z.number(),
218
+ tunnels: z.array(TunnelInfoOutputZodSchema),
219
+ }), "Active SSH tunnels");
220
+ export const OS_INFO_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
221
+ platform: z.enum(["linux", "darwin", "windows", "unknown"]),
222
+ distro: z.string(),
223
+ version: z.string(),
224
+ arch: z.string(),
225
+ shell: z.string(),
226
+ packageManager: z.enum([
227
+ "apt",
228
+ "dnf",
229
+ "yum",
230
+ "pacman",
231
+ "apk",
232
+ "zypper",
233
+ "brew",
234
+ "choco",
235
+ "winget",
236
+ "unknown",
237
+ ]),
238
+ init: z.enum(["systemd", "service", "launchd", "windows-service", "unknown"]),
239
+ defaultShell: z.enum(["bash", "sh", "powershell", "cmd", "unknown"]).optional(),
240
+ tempDir: z.string().optional(),
241
+ }), "Remote operating system information");
242
+ export const METRICS_OUTPUT_SCHEMA = zodOutputSchema(z.union([
243
+ MetricsGroupOutputZodSchema,
244
+ z.strictObject({
245
+ format: z.literal("prometheus"),
246
+ metrics: z.string(),
247
+ }),
248
+ ]), "Runtime metrics");
249
+ export const CONNECTOR_STATUS_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
250
+ toolProfile: ToolProfileSchema,
251
+ credentialProvider: z.enum(["none", "agent", "command"]),
252
+ credentialBrokerConfigured: z.boolean(),
253
+ authMode: z.enum(["bearer", "oauth"]),
254
+ oauthConfigured: z.boolean(),
255
+ nonLoopbackHttpRequiresAuthAndOrigins: z.boolean(),
256
+ allowedOriginsConfigured: z.boolean(),
257
+ publicUrlConfigured: z.boolean(),
258
+ maxHttpSessions: z.number(),
259
+ httpSessionIdleTtlMs: z.number(),
260
+ hostAllowlistConfigured: z.boolean(),
261
+ safeRemoteToolsOnly: z.boolean(),
262
+ credentialEntryInChat: z.boolean(),
263
+ privateKeysInChat: z.boolean(),
264
+ rawCommandExecutionDefault: z.boolean(),
265
+ destructiveExecutionDefault: z.boolean(),
266
+ }), "Remote connector readiness without secrets");
267
+ export const SSH_HOSTS_LIST_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
268
+ count: z.number(),
269
+ hosts: z.array(z.strictObject({
270
+ hostAlias: z.string(),
271
+ allowedByPolicy: z.boolean(),
272
+ })),
273
+ redactedFields: z.array(z.string()),
274
+ hostAllowlistRequired: z.boolean(),
275
+ hostAllowlistConfigured: z.boolean(),
276
+ }), "Redacted SSH host aliases allowed by policy");
277
+ export const POLICY_EXPLAIN_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
278
+ executed: z.literal(false),
279
+ toolProfile: ToolProfileSchema,
280
+ decision: PolicyDecisionOutputZodSchema,
281
+ requiresExplicitUserConfirmation: z.boolean(),
282
+ }), "Explain-only policy decision");
283
+ export const HOST_INSPECT_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
284
+ hostAlias: z.string(),
285
+ host: z.string(),
286
+ checks: z.array(z.enum(["os", "uptime", "disk", "memory"])),
287
+ inspection: z.record(z.string(), z.unknown()),
288
+ credentialsFromChat: z.boolean(),
289
+ strictHostKeyVerification: z.boolean(),
290
+ }), "Read-only host inspection result");
291
+ export const MUTATION_PLAN_OUTPUT_SCHEMA = zodOutputSchema(z.strictObject({
292
+ executed: z.literal(false),
293
+ hostAlias: z.string(),
294
+ goal: z.string(),
295
+ category: z.enum(["package", "service", "file", "command", "tunnel", "other"]),
296
+ policyDecision: PolicyDecisionOutputZodSchema,
297
+ requiredBeforeExecution: z.array(z.string()),
298
+ disallowedInRemoteConnectorProfile: z.array(z.string()),
299
+ }), "Non-executing remote mutation plan");
300
+ //# sourceMappingURL=output-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../../src/tools/output-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { MetricsCollector } from "../metrics.js";
3
+ import type { ProcessService } from "../process.js";
4
+ import type { StreamingService } from "../streaming.js";
5
+ import type { ToolProvider } from "./types.js";
6
+ export interface ProcessToolProviderDeps {
7
+ processService: ProcessService;
8
+ streamingService: StreamingService;
9
+ metrics: MetricsCollector;
10
+ }
11
+ export declare class ProcessToolProvider implements ToolProvider {
12
+ private readonly deps;
13
+ readonly namespace = "process";
14
+ constructor(deps: ProcessToolProviderDeps);
15
+ getTools(): Tool[];
16
+ handleTool(toolName: string, args: unknown): Promise<unknown> | undefined;
17
+ private exec;
18
+ private sudo;
19
+ private execStream;
20
+ private buildStreamOptions;
21
+ }
22
+ //# sourceMappingURL=process.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.provider.d.ts","sourceRoot":"","sources":["../../src/tools/process.provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,qBAAa,mBAAoB,YAAW,YAAY;IAG1C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,SAAS,aAAa;gBAEF,IAAI,EAAE,uBAAuB;IAE1D,QAAQ,IAAI,IAAI,EAAE;IAoFlB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;YAa3D,IAAI;YAiBJ,IAAI;YAiBJ,UAAU;IAcxB,OAAO,CAAC,kBAAkB;CAe3B"}
@@ -0,0 +1,146 @@
1
+ import { logger, redactSensitiveData } from "../logging.js";
2
+ import { addSafetyWarningToResult } from "../safety.js";
3
+ import { ExecSchema, ExecStreamSchema, SudoSchema } from "../types.js";
4
+ import { annotate } from "./metadata.js";
5
+ import { EXEC_OUTPUT_SCHEMA, STREAM_OUTPUT_SCHEMA } from "./output-schemas.js";
6
+ export class ProcessToolProvider {
7
+ deps;
8
+ namespace = "process";
9
+ constructor(deps) {
10
+ this.deps = deps;
11
+ }
12
+ getTools() {
13
+ return [
14
+ {
15
+ name: "proc_exec",
16
+ description: "Executes a non-interactive command on the remote system after policy and safety checks",
17
+ annotations: annotate({
18
+ title: "Execute Remote Command",
19
+ readOnly: false,
20
+ destructive: false,
21
+ idempotent: false,
22
+ }),
23
+ outputSchema: EXEC_OUTPUT_SCHEMA,
24
+ inputSchema: {
25
+ type: "object",
26
+ properties: {
27
+ sessionId: { type: "string", description: "SSH session ID" },
28
+ command: { type: "string", description: "Command to execute" },
29
+ cwd: { type: "string", description: "Working directory" },
30
+ env: { type: "object", description: "Environment variables" },
31
+ timeoutMs: {
32
+ type: "number",
33
+ description: "Command execution timeout in milliseconds",
34
+ },
35
+ },
36
+ required: ["sessionId", "command"],
37
+ },
38
+ },
39
+ {
40
+ name: "proc_sudo",
41
+ description: "Executes a command with sudo privileges only when allowRawSudo policy permits it",
42
+ annotations: annotate({
43
+ title: "Execute Sudo Command",
44
+ readOnly: false,
45
+ destructive: true,
46
+ idempotent: false,
47
+ }),
48
+ outputSchema: EXEC_OUTPUT_SCHEMA,
49
+ inputSchema: {
50
+ type: "object",
51
+ properties: {
52
+ sessionId: { type: "string", description: "SSH session ID" },
53
+ command: {
54
+ type: "string",
55
+ description: "Command to execute with sudo",
56
+ },
57
+ cwd: { type: "string", description: "Working directory" },
58
+ timeoutMs: {
59
+ type: "number",
60
+ description: "Command execution timeout in milliseconds",
61
+ },
62
+ },
63
+ required: ["sessionId", "command"],
64
+ },
65
+ },
66
+ {
67
+ name: "proc_exec_stream",
68
+ description: "Executes a command and returns streaming output chunks",
69
+ annotations: annotate({
70
+ title: "Execute Streaming Command",
71
+ readOnly: false,
72
+ destructive: false,
73
+ idempotent: false,
74
+ }),
75
+ outputSchema: STREAM_OUTPUT_SCHEMA,
76
+ inputSchema: {
77
+ type: "object",
78
+ properties: {
79
+ sessionId: { type: "string", description: "SSH session ID" },
80
+ command: { type: "string", description: "Command to execute" },
81
+ cwd: { type: "string", description: "Working directory" },
82
+ env: { type: "object", description: "Environment variables" },
83
+ timeoutMs: {
84
+ type: "number",
85
+ description: "Streaming command timeout in milliseconds",
86
+ },
87
+ },
88
+ required: ["sessionId", "command"],
89
+ },
90
+ },
91
+ ];
92
+ }
93
+ handleTool(toolName, args) {
94
+ switch (toolName) {
95
+ case "proc_exec":
96
+ return this.exec(args);
97
+ case "proc_sudo":
98
+ return this.sudo(args);
99
+ case "proc_exec_stream":
100
+ return this.execStream(args);
101
+ default:
102
+ return undefined;
103
+ }
104
+ }
105
+ async exec(args) {
106
+ const params = ExecSchema.parse(args);
107
+ const result = await this.deps.processService.execCommand(params.sessionId, params.command, params.cwd, params.env, params.timeoutMs);
108
+ this.deps.metrics.recordCommand(result.durationMs, result.code === 0);
109
+ logger.info("Command executed", {
110
+ sessionId: params.sessionId,
111
+ command: redactSensitiveData(params.command),
112
+ });
113
+ return addSafetyWarningToResult(params.command, result);
114
+ }
115
+ async sudo(args) {
116
+ const params = SudoSchema.parse(args);
117
+ const result = await this.deps.processService.execSudo(params.sessionId, params.command, undefined, params.cwd, params.timeoutMs);
118
+ this.deps.metrics.recordCommand(result.durationMs, result.code === 0);
119
+ logger.info("Sudo command executed", {
120
+ sessionId: params.sessionId,
121
+ command: redactSensitiveData(params.command),
122
+ });
123
+ return addSafetyWarningToResult(params.command, result);
124
+ }
125
+ async execStream(args) {
126
+ const params = ExecStreamSchema.parse(args);
127
+ const result = await this.deps.streamingService.execWithStreaming(this.buildStreamOptions(params));
128
+ this.deps.metrics.recordCommand(result.durationMs, result.code === 0);
129
+ logger.info("Streaming command executed", {
130
+ sessionId: params.sessionId,
131
+ command: redactSensitiveData(params.command),
132
+ chunks: result.chunks.length,
133
+ });
134
+ return addSafetyWarningToResult(params.command, result);
135
+ }
136
+ buildStreamOptions(params) {
137
+ return {
138
+ sessionId: params.sessionId,
139
+ command: params.command,
140
+ ...(params.cwd ? { cwd: params.cwd } : {}),
141
+ ...(params.env ? { env: params.env } : {}),
142
+ ...(params.timeoutMs ? { timeoutMs: params.timeoutMs } : {}),
143
+ };
144
+ }
145
+ }
146
+ //# sourceMappingURL=process.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.provider.js","sourceRoot":"","sources":["../../src/tools/process.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import { type ToolProfile } from "../connector-profile.js";
3
+ import type { ToolCallResult, ToolProvider } from "./types.js";
4
+ export declare class ToolRegistry {
5
+ private readonly toolProfile;
6
+ private readonly providers;
7
+ constructor(toolProfile?: ToolProfile);
8
+ register(provider: ToolProvider): this;
9
+ getAllTools(): Tool[];
10
+ dispatch(rawToolName: string, args: unknown): Promise<ToolCallResult>;
11
+ }
12
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,cAAc,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAC;AA+GlF,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,WAAW;IAFxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;gBAEhC,WAAW,GAAE,WAAoB;IAE9D,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAYtC,WAAW,IAAI,IAAI,EAAE;IAaf,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CA+C5E"}