ssh-mcp-pro 1.2.3 → 1.4.2

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 (212) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/MIGRATION.md +2 -2
  3. package/README.md +34 -13
  4. package/SECURITY_DECISIONS.md +19 -0
  5. package/dist/agent-bin.js +5 -2
  6. package/dist/agent-bin.js.map +1 -1
  7. package/dist/cli.d.ts +1 -0
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +38 -47
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config-security-env.d.ts +4 -0
  12. package/dist/config-security-env.d.ts.map +1 -0
  13. package/dist/config-security-env.js +64 -0
  14. package/dist/config-security-env.js.map +1 -0
  15. package/dist/config-types.d.ts +82 -0
  16. package/dist/config-types.d.ts.map +1 -0
  17. package/dist/config-types.js +2 -0
  18. package/dist/config-types.js.map +1 -0
  19. package/dist/config.d.ts +3 -82
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +4 -67
  22. package/dist/config.js.map +1 -1
  23. package/dist/connector-profile.d.ts +1 -1
  24. package/dist/connector-profile.d.ts.map +1 -1
  25. package/dist/detect.d.ts.map +1 -1
  26. package/dist/detect.js +226 -192
  27. package/dist/detect.js.map +1 -1
  28. package/dist/ensure-package-service.d.ts +9 -0
  29. package/dist/ensure-package-service.d.ts.map +1 -0
  30. package/dist/ensure-package-service.js +146 -0
  31. package/dist/ensure-package-service.js.map +1 -0
  32. package/dist/ensure-pkg.js +4 -4
  33. package/dist/ensure-pkg.js.map +1 -1
  34. package/dist/ensure.d.ts.map +1 -1
  35. package/dist/ensure.js +15 -144
  36. package/dist/ensure.js.map +1 -1
  37. package/dist/fs-sftp.js +1 -1
  38. package/dist/fs-sftp.js.map +1 -1
  39. package/dist/fs-stat.d.ts +10 -0
  40. package/dist/fs-stat.d.ts.map +1 -0
  41. package/dist/fs-stat.js +62 -0
  42. package/dist/fs-stat.js.map +1 -0
  43. package/dist/fs-tools.d.ts.map +1 -1
  44. package/dist/fs-tools.js +6 -58
  45. package/dist/fs-tools.js.map +1 -1
  46. package/dist/http-security.d.ts.map +1 -1
  47. package/dist/http-security.js +6 -6
  48. package/dist/http-security.js.map +1 -1
  49. package/dist/http-server-runtime.d.ts.map +1 -1
  50. package/dist/http-server-runtime.js +41 -7
  51. package/dist/http-server-runtime.js.map +1 -1
  52. package/dist/index.js +7 -24
  53. package/dist/index.js.map +1 -1
  54. package/dist/mcp-http-web.d.ts +8 -0
  55. package/dist/mcp-http-web.d.ts.map +1 -0
  56. package/dist/mcp-http-web.js +35 -0
  57. package/dist/mcp-http-web.js.map +1 -0
  58. package/dist/mcp.d.ts +6 -2
  59. package/dist/mcp.d.ts.map +1 -1
  60. package/dist/mcp.js +22 -14
  61. package/dist/mcp.js.map +1 -1
  62. package/dist/policy.d.ts +8 -0
  63. package/dist/policy.d.ts.map +1 -1
  64. package/dist/policy.js +147 -105
  65. package/dist/policy.js.map +1 -1
  66. package/dist/process.d.ts.map +1 -1
  67. package/dist/process.js +11 -7
  68. package/dist/process.js.map +1 -1
  69. package/dist/remote/agent-activity-log.d.ts +26 -0
  70. package/dist/remote/agent-activity-log.d.ts.map +1 -0
  71. package/dist/remote/agent-activity-log.js +211 -0
  72. package/dist/remote/agent-activity-log.js.map +1 -0
  73. package/dist/remote/agent-cli.d.ts.map +1 -1
  74. package/dist/remote/agent-cli.js +153 -33
  75. package/dist/remote/agent-cli.js.map +1 -1
  76. package/dist/remote/agent-executor.d.ts.map +1 -1
  77. package/dist/remote/agent-executor.js +22 -10
  78. package/dist/remote/agent-executor.js.map +1 -1
  79. package/dist/remote/agent-handler.d.ts +2 -0
  80. package/dist/remote/agent-handler.d.ts.map +1 -1
  81. package/dist/remote/agent-handler.js +4 -0
  82. package/dist/remote/agent-handler.js.map +1 -1
  83. package/dist/remote/config.d.ts.map +1 -1
  84. package/dist/remote/config.js +12 -1
  85. package/dist/remote/config.js.map +1 -1
  86. package/dist/remote/control-plane.d.ts +12 -0
  87. package/dist/remote/control-plane.d.ts.map +1 -1
  88. package/dist/remote/control-plane.js +164 -56
  89. package/dist/remote/control-plane.js.map +1 -1
  90. package/dist/remote/crypto.d.ts +9 -4
  91. package/dist/remote/crypto.d.ts.map +1 -1
  92. package/dist/remote/crypto.js +41 -9
  93. package/dist/remote/crypto.js.map +1 -1
  94. package/dist/remote/http-util.d.ts.map +1 -1
  95. package/dist/remote/http-util.js +14 -7
  96. package/dist/remote/http-util.js.map +1 -1
  97. package/dist/remote/mcp-tools.d.ts +7 -0
  98. package/dist/remote/mcp-tools.d.ts.map +1 -1
  99. package/dist/remote/mcp-tools.js +28 -0
  100. package/dist/remote/mcp-tools.js.map +1 -1
  101. package/dist/remote/oauth-handler.d.ts +30 -3
  102. package/dist/remote/oauth-handler.d.ts.map +1 -1
  103. package/dist/remote/oauth-handler.js +232 -18
  104. package/dist/remote/oauth-handler.js.map +1 -1
  105. package/dist/remote/policy.js +2 -2
  106. package/dist/remote/policy.js.map +1 -1
  107. package/dist/remote/schemas.d.ts +9 -9
  108. package/dist/remote/schemas.js +6 -6
  109. package/dist/remote/schemas.js.map +1 -1
  110. package/dist/remote/store.d.ts +38 -1
  111. package/dist/remote/store.d.ts.map +1 -1
  112. package/dist/remote/store.js +149 -11
  113. package/dist/remote/store.js.map +1 -1
  114. package/dist/remote/types.d.ts +14 -0
  115. package/dist/remote/types.d.ts.map +1 -1
  116. package/dist/remote/types.js.map +1 -1
  117. package/dist/remote/web-dashboard-client-config.d.ts +77 -0
  118. package/dist/remote/web-dashboard-client-config.d.ts.map +1 -0
  119. package/dist/remote/web-dashboard-client-config.js +81 -0
  120. package/dist/remote/web-dashboard-client-config.js.map +1 -0
  121. package/dist/remote/web-dashboard-html.d.ts +2 -0
  122. package/dist/remote/web-dashboard-html.d.ts.map +1 -0
  123. package/dist/remote/web-dashboard-html.js +451 -0
  124. package/dist/remote/web-dashboard-html.js.map +1 -0
  125. package/dist/remote/web-dashboard-oauth-users.d.ts +4 -0
  126. package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -0
  127. package/dist/remote/web-dashboard-oauth-users.js +78 -0
  128. package/dist/remote/web-dashboard-oauth-users.js.map +1 -0
  129. package/dist/remote/web-dashboard-static.d.ts +4 -0
  130. package/dist/remote/web-dashboard-static.d.ts.map +1 -0
  131. package/dist/remote/web-dashboard-static.js +19 -0
  132. package/dist/remote/web-dashboard-static.js.map +1 -0
  133. package/dist/remote/web-dashboard-styles.d.ts +2 -0
  134. package/dist/remote/web-dashboard-styles.d.ts.map +1 -0
  135. package/dist/remote/web-dashboard-styles.js +206 -0
  136. package/dist/remote/web-dashboard-styles.js.map +1 -0
  137. package/dist/remote/web-dashboard.d.ts +62 -0
  138. package/dist/remote/web-dashboard.d.ts.map +1 -0
  139. package/dist/remote/web-dashboard.js +467 -0
  140. package/dist/remote/web-dashboard.js.map +1 -0
  141. package/dist/retry.d.ts.map +1 -1
  142. package/dist/retry.js +6 -3
  143. package/dist/retry.js.map +1 -1
  144. package/dist/safety.d.ts.map +1 -1
  145. package/dist/safety.js +56 -6
  146. package/dist/safety.js.map +1 -1
  147. package/dist/session-auth.js +7 -7
  148. package/dist/session-auth.js.map +1 -1
  149. package/dist/session.d.ts +1 -0
  150. package/dist/session.d.ts.map +1 -1
  151. package/dist/session.js +44 -40
  152. package/dist/session.js.map +1 -1
  153. package/dist/shell.d.ts.map +1 -1
  154. package/dist/shell.js +5 -4
  155. package/dist/shell.js.map +1 -1
  156. package/dist/ssh-config.d.ts +2 -2
  157. package/dist/ssh-config.d.ts.map +1 -1
  158. package/dist/ssh-config.js +24 -20
  159. package/dist/ssh-config.js.map +1 -1
  160. package/dist/telemetry.d.ts.map +1 -1
  161. package/dist/telemetry.js +9 -2
  162. package/dist/telemetry.js.map +1 -1
  163. package/dist/tools/connector.provider.d.ts +1 -1
  164. package/dist/tools/connector.provider.d.ts.map +1 -1
  165. package/dist/tools/ensure.provider.d.ts +1 -1
  166. package/dist/tools/ensure.provider.d.ts.map +1 -1
  167. package/dist/tools/fs.provider.d.ts +1 -1
  168. package/dist/tools/fs.provider.d.ts.map +1 -1
  169. package/dist/tools/metadata.d.ts +1 -1
  170. package/dist/tools/metadata.d.ts.map +1 -1
  171. package/dist/tools/output-schemas.d.ts +27 -135
  172. package/dist/tools/output-schemas.d.ts.map +1 -1
  173. package/dist/tools/process.provider.d.ts +1 -1
  174. package/dist/tools/process.provider.d.ts.map +1 -1
  175. package/dist/tools/registry.d.ts +1 -1
  176. package/dist/tools/registry.d.ts.map +1 -1
  177. package/dist/tools/registry.js +16 -13
  178. package/dist/tools/registry.js.map +1 -1
  179. package/dist/tools/session.provider.d.ts +1 -1
  180. package/dist/tools/session.provider.d.ts.map +1 -1
  181. package/dist/tools/system.provider.d.ts +1 -1
  182. package/dist/tools/system.provider.d.ts.map +1 -1
  183. package/dist/tools/transfer.provider.d.ts +1 -1
  184. package/dist/tools/transfer.provider.d.ts.map +1 -1
  185. package/dist/tools/tunnel.provider.d.ts +1 -1
  186. package/dist/tools/tunnel.provider.d.ts.map +1 -1
  187. package/dist/tools/types.d.ts +1 -1
  188. package/dist/tools/types.d.ts.map +1 -1
  189. package/dist/transfer.js +2 -2
  190. package/dist/transfer.js.map +1 -1
  191. package/dist/types.js +1 -1
  192. package/dist/types.js.map +1 -1
  193. package/docs/adding-a-device.md +39 -17
  194. package/docs/agent-activity-monitor.md +34 -0
  195. package/docs/coolify.md +29 -0
  196. package/docs/development/dependency-management.md +1 -1
  197. package/docs/development/local-setup.md +1 -1
  198. package/docs/development/mcp-protocol-2026.md +33 -0
  199. package/docs/docker.md +4 -4
  200. package/docs/doppler-guide.md +34 -0
  201. package/docs/openssf-evidence.md +11 -7
  202. package/docs/openssf-gap-analysis.md +7 -8
  203. package/docs/reference/cli.md +17 -6
  204. package/docs/reference/compatibility.md +1 -1
  205. package/docs/security/dependency-audit-exceptions.md +3 -7
  206. package/docs/security/hosted-data-inventory.md +81 -0
  207. package/docs/sonarcloud-analysis.md +9 -0
  208. package/docs/tutorials/getting-started.md +1 -1
  209. package/mcp.json +1 -1
  210. package/package.json +26 -21
  211. package/registry/ssh-mcp-pro/mcp.json +1 -1
  212. package/server.json +3 -3
@@ -0,0 +1,26 @@
1
+ export type AgentActivityLevel = "info" | "ok" | "warn" | "error";
2
+ export interface AgentActivityEntry {
3
+ timestamp: string;
4
+ level: AgentActivityLevel;
5
+ event: string;
6
+ message: string;
7
+ }
8
+ /** Local, bounded diagnostics. Never record shell arguments, outputs, keys or tokens. */
9
+ export declare function agentActivityLogPath(agentConfigPath: string): string;
10
+ export declare class AgentActivityLog {
11
+ private readonly options;
12
+ readonly file: string;
13
+ private fileWarningEmitted;
14
+ constructor(configFile: string, options?: {
15
+ maxBytes?: number;
16
+ maxArchives?: number;
17
+ });
18
+ banner(alias: string, profile: string, version: number): void;
19
+ event(level: AgentActivityLevel, event: string, message: string): void;
20
+ private append;
21
+ private rotate;
22
+ }
23
+ export declare function readAgentActivity(configFile: string, tail?: number): AgentActivityEntry[];
24
+ /** Local Windows/Linux monitor; never performs remote commands or accesses secrets. */
25
+ export declare function showAgentActivityLogs(configFile: string, argv: string[]): Promise<void>;
26
+ //# sourceMappingURL=agent-activity-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-activity-log.d.ts","sourceRoot":"","sources":["../../src/remote/agent-activity-log.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEpE;AA2BD,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,kBAAkB,CAAS;gBAGjC,UAAU,EAAE,MAAM,EACD,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAK5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAiB7D,KAAK,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAsBtE,OAAO,CAAC,MAAM;IAuBd,OAAO,CAAC,MAAM;CAaf;AA8BD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,SAAe,GAAG,kBAAkB,EAAE,CAgC/F;AAED,uFAAuF;AACvF,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B7F"}
@@ -0,0 +1,211 @@
1
+ import { lstatSync, mkdirSync, readFileSync, renameSync, rmSync, watchFile, closeSync, constants, fstatSync, openSync, writeSync, } from "node:fs";
2
+ import path from "node:path";
3
+ const MAX_LOG_BYTES = 512 * 1024;
4
+ const MAX_ARCHIVES = 2;
5
+ const DEFAULT_TAIL = 60;
6
+ /** Local, bounded diagnostics. Never record shell arguments, outputs, keys or tokens. */
7
+ export function agentActivityLogPath(agentConfigPath) {
8
+ return path.join(path.dirname(agentConfigPath), "logs", "agent-activity.jsonl");
9
+ }
10
+ function cleanLabel(value, limit = 72) {
11
+ return value
12
+ .replaceAll(/[\u0000-\u001f\u007f-\u009f]/gu, " ")
13
+ .replaceAll(/[^\p{L}\p{N} .:_()/-]/gu, "?")
14
+ .trim()
15
+ .slice(0, limit);
16
+ }
17
+ function paint(value, level, color) {
18
+ if (!color)
19
+ return value;
20
+ const code = { info: "36", ok: "32", warn: "33", error: "31" }[level];
21
+ return "\u001b[" + code + "m" + value + "\u001b[0m";
22
+ }
23
+ function formatEntry(entry, color) {
24
+ const time = entry.timestamp.slice(11, 19);
25
+ return (time +
26
+ " " +
27
+ paint(entry.level.toUpperCase().padEnd(5), entry.level, color) +
28
+ " " +
29
+ entry.message);
30
+ }
31
+ export class AgentActivityLog {
32
+ options;
33
+ file;
34
+ fileWarningEmitted = false;
35
+ constructor(configFile, options = {}) {
36
+ this.options = options;
37
+ this.file = agentActivityLogPath(configFile);
38
+ }
39
+ banner(alias, profile, version) {
40
+ const tty = Boolean(process.stdout.isTTY && !process.env.NO_COLOR);
41
+ const lines = [
42
+ "",
43
+ "╭" + "─".repeat(57) + "╮",
44
+ "│ " + paint("SSH MCP PRO", "info", tty) + " · OUTBOUND AGENT ACTIVITY",
45
+ "│ DEVICE " + cleanLabel(alias, 30),
46
+ "│ ACCESS " + cleanLabel(profile, 24) + " · Policy v" + version,
47
+ "│ STATUS CONNECTING / waiting for authenticated server",
48
+ "╰" + "─".repeat(57) + "╯",
49
+ " Activity log: " + this.file,
50
+ " Review: ssh-mcp-pro-agent logs --follow",
51
+ "",
52
+ ];
53
+ process.stdout.write(lines.join("\n") + "\n");
54
+ }
55
+ event(level, event, message) {
56
+ // Callers supply fixed local event labels and sanitized diagnostic descriptions.
57
+ const entry = {
58
+ timestamp: new Date().toISOString(),
59
+ level,
60
+ event: cleanLabel(event, 48),
61
+ message: cleanLabel(message, 180),
62
+ };
63
+ process.stdout.write(formatEntry(entry, Boolean(process.stdout.isTTY && !process.env.NO_COLOR)) + "\n");
64
+ try {
65
+ this.append(entry);
66
+ }
67
+ catch {
68
+ // Losing a diagnostic file must not interrupt an authenticated agent.
69
+ if (!this.fileWarningEmitted) {
70
+ this.fileWarningEmitted = true;
71
+ process.stderr.write("Agent activity log unavailable; console events will continue.\n");
72
+ }
73
+ }
74
+ }
75
+ append(entry) {
76
+ const dir = path.dirname(this.file);
77
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
78
+ if (lstatSync(dir).isSymbolicLink())
79
+ return;
80
+ // O_NOFOLLOW and the open descriptor avoid the check-then-append race.
81
+ // Windows supports the same path with its platform-specific open flags.
82
+ const flags = constants.O_WRONLY | constants.O_CREAT | constants.O_APPEND | (constants.O_NOFOLLOW ?? 0);
83
+ const row = JSON.stringify(entry) + "\n";
84
+ const descriptor = openSync(this.file, flags, 0o600);
85
+ let rotate = false;
86
+ try {
87
+ writeSync(descriptor, row);
88
+ rotate = fstatSync(descriptor).size > (this.options.maxBytes ?? MAX_LOG_BYTES);
89
+ }
90
+ finally {
91
+ closeSync(descriptor);
92
+ }
93
+ // Rotate only after closing the descriptor. Never check one file and reopen
94
+ // it to write, which would introduce a symlink/TOCTOU window.
95
+ if (rotate)
96
+ this.rotate();
97
+ }
98
+ rotate() {
99
+ const archives = this.options.maxArchives ?? MAX_ARCHIVES;
100
+ for (let n = archives; n >= 1; n--) {
101
+ const target = this.file + "." + n;
102
+ const source = n === 1 ? this.file : this.file + "." + (n - 1);
103
+ rmSync(target, { force: true });
104
+ try {
105
+ renameSync(source, target);
106
+ }
107
+ catch (error) {
108
+ if (!isMissingFile(error))
109
+ throw error;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ function isMissingFile(error) {
115
+ return error instanceof Error && "code" in error && error.code === "ENOENT";
116
+ }
117
+ function parseActivityEntry(line) {
118
+ if (!line)
119
+ return undefined;
120
+ try {
121
+ const entry = JSON.parse(line);
122
+ if (typeof entry.timestamp !== "string" ||
123
+ typeof entry.event !== "string" ||
124
+ typeof entry.message !== "string")
125
+ return undefined;
126
+ if (entry.level !== "info" &&
127
+ entry.level !== "ok" &&
128
+ entry.level !== "warn" &&
129
+ entry.level !== "error")
130
+ return undefined;
131
+ return entry;
132
+ }
133
+ catch {
134
+ // Ignore partial lines during rotation or concurrent append.
135
+ return undefined;
136
+ }
137
+ }
138
+ export function readAgentActivity(configFile, tail = DEFAULT_TAIL) {
139
+ if (!Number.isInteger(tail) || tail < 1 || tail > 200) {
140
+ throw new Error("--tail must be an integer from 1 to 200");
141
+ }
142
+ const file = agentActivityLogPath(configFile);
143
+ const flags = constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0);
144
+ let data;
145
+ let descriptor;
146
+ try {
147
+ descriptor = openSync(file, flags);
148
+ }
149
+ catch (error) {
150
+ if (!isMissingFile(error))
151
+ throw error;
152
+ // A completed rotation temporarily has no active file. The latest
153
+ // archived file still contains the most recent event until the next write.
154
+ try {
155
+ descriptor = openSync(file + ".1", flags);
156
+ }
157
+ catch (archiveError) {
158
+ if (isMissingFile(archiveError))
159
+ return [];
160
+ throw archiveError;
161
+ }
162
+ }
163
+ try {
164
+ data = readFileSync(descriptor, "utf8").slice(-(MAX_LOG_BYTES + 2048));
165
+ }
166
+ finally {
167
+ closeSync(descriptor);
168
+ }
169
+ const entries = [];
170
+ for (const line of data.split("\n")) {
171
+ const entry = parseActivityEntry(line);
172
+ if (entry)
173
+ entries.push(entry);
174
+ }
175
+ return entries.slice(-tail);
176
+ }
177
+ /** Local Windows/Linux monitor; never performs remote commands or accesses secrets. */
178
+ export async function showAgentActivityLogs(configFile, argv) {
179
+ const follow = argv.includes("--follow") || argv.includes("-f");
180
+ const index = argv.indexOf("--tail");
181
+ const tail = index >= 0 ? Number(argv[index + 1]) : DEFAULT_TAIL;
182
+ const events = readAgentActivity(configFile, tail);
183
+ const logPath = agentActivityLogPath(configFile);
184
+ const color = Boolean(process.stdout.isTTY && !process.env.NO_COLOR);
185
+ process.stdout.write("SSH MCP PRO · Agent activity\n" + logPath + "\n\n");
186
+ for (const entry of events) {
187
+ process.stdout.write(formatEntry(entry, color) + "\n");
188
+ }
189
+ if (!follow)
190
+ return;
191
+ process.stdout.write("\nFollowing events · Press Ctrl+C to stop\n");
192
+ let previous = events.at(-1);
193
+ await new Promise(() => {
194
+ watchFile(logPath, { interval: 1_000 }, () => {
195
+ const current = readAgentActivity(configFile, 200);
196
+ let previousIndex = -1;
197
+ for (let i = current.length - 1; i >= 0; i--) {
198
+ if (previous && JSON.stringify(current[i]) === JSON.stringify(previous)) {
199
+ previousIndex = i;
200
+ break;
201
+ }
202
+ }
203
+ const unseen = previousIndex < 0 ? current.slice(-tail) : current.slice(previousIndex + 1);
204
+ for (const entry of unseen) {
205
+ process.stdout.write(formatEntry(entry, color) + "\n");
206
+ }
207
+ previous = current.at(-1);
208
+ });
209
+ });
210
+ }
211
+ //# sourceMappingURL=agent-activity-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-activity-log.js","sourceRoot":"","sources":["../../src/remote/agent-activity-log.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-cli.d.ts","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"AAyVA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D"}
1
+ {"version":3,"file":"agent-cli.d.ts","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"AAsfA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/D"}
@@ -1,7 +1,9 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
4
5
  import { AgentExecutor, defaultHostMetadata } from "./agent-executor.js";
6
+ import { AgentActivityLog, agentActivityLogPath, showAgentActivityLogs, } from "./agent-activity-log.js";
5
7
  import { ensurePemKeyPair, nowIso, randomToken, signEnvelope, verifyEnvelope, } from "./crypto.js";
6
8
  import { rememberAcceptedPolicyUpdate, validatePolicyUpdate, } from "./policy-update-guard.js";
7
9
  import { parseControlPlaneEnvelope, parseAgentPolicy } from "./schemas.js";
@@ -83,8 +85,46 @@ function runtimeWebSocket() {
83
85
  }
84
86
  return candidate;
85
87
  }
88
+ /**
89
+ * An enrollment response cannot redirect the signed agent hello or action
90
+ * results to a different origin or downgrade a secure transport. The
91
+ * connection path remains configurable on the server.
92
+ */
93
+ function validateAgentWebSocketDestination(serverAddress, destination) {
94
+ let server;
95
+ let websocket;
96
+ try {
97
+ server = new URL(serverAddress);
98
+ websocket = new URL(destination);
99
+ }
100
+ catch {
101
+ throw new Error("Agent WebSocket destination does not match enrolled server");
102
+ }
103
+ const requiredProtocol = server.protocol === "https:" ? "wss:" : "ws:";
104
+ if ((server.protocol !== "https:" && server.protocol !== "http:") ||
105
+ server.username ||
106
+ server.password ||
107
+ server.search ||
108
+ server.hash ||
109
+ websocket.protocol !== requiredProtocol ||
110
+ websocket.host !== server.host ||
111
+ websocket.username ||
112
+ websocket.password ||
113
+ websocket.search ||
114
+ websocket.hash) {
115
+ throw new Error("Agent WebSocket destination does not match enrolled server");
116
+ }
117
+ return websocket.href;
118
+ }
119
+ function removeTrailingSlashes(value) {
120
+ let end = value.length;
121
+ while (end > 0 && value[end - 1] === "/") {
122
+ end--;
123
+ }
124
+ return value.slice(0, end);
125
+ }
86
126
  async function enroll(argv) {
87
- const server = parseFlag(argv, "--server")?.replace(/\/+$/u, "");
127
+ const server = removeTrailingSlashes(parseFlag(argv, "--server") ?? "");
88
128
  const token = parseFlag(argv, "--token");
89
129
  const alias = parseFlag(argv, "--alias") ?? os.hostname();
90
130
  if (!server || !token) {
@@ -106,17 +146,64 @@ async function enroll(argv) {
106
146
  privateKeyPem: keyPair.privateKeyPem,
107
147
  controlPlanePublicKeyPem: requireString(response.control_plane_public_key, "control_plane_public_key"),
108
148
  policy: requirePolicy(response.policy),
109
- websocketUrl: requireString(response.websocket_url, "websocket_url"),
149
+ websocketUrl: validateAgentWebSocketDestination(server, requireString(response.websocket_url, "websocket_url")),
110
150
  enrolledAt: nowIso(),
111
151
  };
112
152
  saveConfig(config);
113
153
  output(`Agent enrolled: ${config.agentId} (${config.alias})`);
114
154
  output(`Config: ${configPath()}`);
115
155
  }
156
+ /** A server-side ready acknowledgement is distinct from an open WebSocket. */
157
+ function handleAgentControlMessage(payload, config, activity) {
158
+ if (payload.type === "agent.ready") {
159
+ if (payload.agent_id === config.agentId) {
160
+ activity.event("ok", "agent_ready", "Identity confirmed. Agent ready for requests.");
161
+ output(`Agent connected: ${config.agentId}`);
162
+ }
163
+ return true;
164
+ }
165
+ if (payload.type === "error") {
166
+ activity.event("error", "control_plane_error", "Server rejected an agent message.");
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ function applyAgentPolicyUpdate(update, config, executor, activity, seenPolicyUpdateNonces) {
172
+ const validation = validatePolicyUpdate(update, config.policy.version, seenPolicyUpdateNonces);
173
+ if (!validation.accepted) {
174
+ recordPolicyUpdateRejection(validation.reason);
175
+ activity.event("warn", "policy_rejected", "Policy update rejected: " + validation.reason);
176
+ return;
177
+ }
178
+ saveConfig({ ...config, policy: update.policy });
179
+ rememberAcceptedPolicyUpdate(seenPolicyUpdateNonces, update.nonce);
180
+ config.policy = update.policy;
181
+ executor.updatePolicy(update.policy);
182
+ activity.event("ok", "policy_updated", "Policy updated: " + update.policy.profile + " v" + update.policy.version);
183
+ }
184
+ function acceptAgentAction(action, config, activity, seenActions) {
185
+ if (seenActions.has(action.action_id)) {
186
+ activity.event("warn", "action_replay", "Duplicate action ignored.");
187
+ return false;
188
+ }
189
+ if (new Date(action.deadline).getTime() < Date.now()) {
190
+ activity.event("warn", "action_expired", "Expired action ignored.");
191
+ return false;
192
+ }
193
+ if (action.policy_version !== config.policy.version &&
194
+ action.policy_version !== config.policy.version + 1) {
195
+ activity.event("warn", "policy_mismatch", "Action policy version mismatch.");
196
+ return false;
197
+ }
198
+ return true;
199
+ }
116
200
  async function runAgent() {
117
201
  const config = requireConfig();
118
202
  const WebSocketCtor = runtimeWebSocket();
119
203
  const executor = new AgentExecutor(config.policy, config.privateKeyPem);
204
+ const activity = new AgentActivityLog(configPath());
205
+ activity.banner(config.alias, config.policy.profile, config.policy.version);
206
+ activity.event("info", "agent_starting", "Agent starting. Preparing outbound connection.");
120
207
  const seenActions = new Map();
121
208
  const seenPolicyUpdateNonces = new Map();
122
209
  function rememberAction(actionId, deadline) {
@@ -140,7 +227,7 @@ async function runAgent() {
140
227
  return true;
141
228
  }
142
229
  await new Promise((resolve, reject) => {
143
- const ws = new WebSocketCtor(config.websocketUrl);
230
+ const ws = new WebSocketCtor(validateAgentWebSocketDestination(config.server, config.websocketUrl));
144
231
  ws.onopen = () => {
145
232
  const hello = {
146
233
  type: "agent.hello",
@@ -156,7 +243,8 @@ async function runAgent() {
156
243
  };
157
244
  hello.signature = signEnvelope(hello, config.privateKeyPem);
158
245
  ws.send(JSON.stringify(hello));
159
- output(`Agent connected: ${config.agentId}`);
246
+ activity.event("info", "transport_open", "Transport open. Validating agent identity.");
247
+ // An open socket is not an authenticated agent; wait for agent.ready.
160
248
  };
161
249
  ws.onmessage = (event) => {
162
250
  void (async () => {
@@ -165,6 +253,10 @@ async function runAgent() {
165
253
  : Buffer.from(event.data).toString("utf8");
166
254
  const payload = JSON.parse(raw);
167
255
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
256
+ activity.event("warn", "message_rejected", "Malformed control-plane message ignored.");
257
+ return;
258
+ }
259
+ if (handleAgentControlMessage(payload, config, activity)) {
168
260
  return;
169
261
  }
170
262
  let envelope;
@@ -172,48 +264,50 @@ async function runAgent() {
172
264
  envelope = parseControlPlaneEnvelope(payload);
173
265
  }
174
266
  catch {
267
+ activity.event("warn", "message_rejected", "Invalid control-plane envelope ignored.");
175
268
  return;
176
269
  }
177
270
  if (envelope.agent_id !== config.agentId) {
178
271
  return;
179
272
  }
180
273
  if (!verifyEnvelope(envelope, config.controlPlanePublicKeyPem)) {
274
+ activity.event("warn", "signature_rejected", "Unverified control-plane message ignored.");
181
275
  return;
182
276
  }
183
277
  if (envelope.type === "policy.update") {
184
- const update = envelope;
185
- const validation = validatePolicyUpdate(update, config.policy.version, seenPolicyUpdateNonces);
186
- if (!validation.accepted) {
187
- recordPolicyUpdateRejection(validation.reason);
188
- return;
189
- }
190
- const nextConfig = { ...config, policy: update.policy };
191
- saveConfig(nextConfig);
192
- rememberAcceptedPolicyUpdate(seenPolicyUpdateNonces, update.nonce);
193
- config.policy = update.policy;
194
- executor.updatePolicy(update.policy);
278
+ applyAgentPolicyUpdate(envelope, config, executor, activity, seenPolicyUpdateNonces);
195
279
  return;
196
280
  }
197
281
  const action = envelope;
198
- if (seenActions.has(action.action_id)) {
199
- return;
200
- }
201
- if (new Date(action.deadline).getTime() < Date.now()) {
202
- return;
203
- }
204
- if (action.policy_version !== config.policy.version &&
205
- action.policy_version !== config.policy.version + 1) {
282
+ if (!acceptAgentAction(action, config, activity, seenActions)) {
206
283
  return;
207
284
  }
208
285
  rememberAction(action.action_id, action.deadline);
286
+ const startedAt = Date.now();
287
+ activity.event("info", "action_started", "Request received: " + action.tool);
209
288
  const result = await executor.execute(action);
210
289
  ws.send(JSON.stringify(result));
211
- })().catch((error) => {
212
- process.stderr.write(`Agent action failed: ${error instanceof Error ? error.message : String(error)}\n`);
290
+ activity.event(result.status === "ok" ? "ok" : "warn", "action_finished", "Request " +
291
+ action.tool +
292
+ " completed: " +
293
+ result.status +
294
+ " (" +
295
+ (Date.now() - startedAt) +
296
+ " ms)");
297
+ })().catch(() => {
298
+ // Never print command/output/provider error text: it can contain credentials.
299
+ activity.event("error", "action_failed", "Action processing failed; details withheld.");
213
300
  });
214
301
  };
215
- ws.onerror = (event) => reject(new Error(`WebSocket error: ${String(event)}`));
216
- ws.onclose = () => resolve();
302
+ ws.onerror = () => {
303
+ activity.event("error", "socket_error", "Connection error. Service restart may be required.");
304
+ reject(new Error("WebSocket transport error"));
305
+ };
306
+ // A disconnected agent must exit nonzero so its service supervisor can restart it.
307
+ ws.onclose = () => {
308
+ activity.event("warn", "disconnected", "Connection closed. Awaiting service restart.");
309
+ reject(new Error("Agent WebSocket connection closed"));
310
+ };
217
311
  });
218
312
  }
219
313
  function status() {
@@ -227,6 +321,7 @@ function status() {
227
321
  output(`Server: ${config.server}`);
228
322
  output(`Profile: ${config.policy.profile}`);
229
323
  output(`Config: ${configPath()}`);
324
+ output(`Activity log: ${agentActivityLogPath(configPath())}`);
230
325
  }
231
326
  function installService() {
232
327
  const config = existsSync(configPath()) ? loadConfig() : undefined;
@@ -259,6 +354,24 @@ function uninstallService() {
259
354
  }
260
355
  output("Disable and remove the systemd service that runs ssh-mcp-pro-agent run.");
261
356
  }
357
+ function printAgentUsage() {
358
+ output("Usage:");
359
+ output(" ssh-mcp-pro-agent enroll --server <url> --token <token> --alias <alias>");
360
+ output(" ssh-mcp-pro-agent run");
361
+ output(" ssh-mcp-pro-agent status");
362
+ output(" ssh-mcp-pro-agent logs [--tail 60] [--follow]");
363
+ output(" ssh-mcp-pro-agent install-service");
364
+ output(" ssh-mcp-pro-agent uninstall-service");
365
+ output(" ssh-mcp-pro-agent --version");
366
+ }
367
+ function printAgentVersion() {
368
+ const packagePath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "package.json");
369
+ const pkg = JSON.parse(readFileSync(packagePath, "utf8"));
370
+ if (!pkg.version) {
371
+ throw new Error("Agent package version is unavailable");
372
+ }
373
+ output(pkg.version);
374
+ }
262
375
  export async function runAgentCli(argv) {
263
376
  const command = argv[0] ?? "help";
264
377
  switch (command) {
@@ -271,19 +384,26 @@ export async function runAgentCli(argv) {
271
384
  case "status":
272
385
  status();
273
386
  break;
387
+ case "logs":
388
+ await showAgentActivityLogs(configPath(), argv.slice(1));
389
+ break;
274
390
  case "install-service":
275
391
  installService();
276
392
  break;
277
393
  case "uninstall-service":
278
394
  uninstallService();
279
395
  break;
396
+ case "help":
397
+ case "--help":
398
+ case "-h":
399
+ printAgentUsage();
400
+ break;
401
+ case "--version":
402
+ case "-v":
403
+ printAgentVersion();
404
+ break;
280
405
  default:
281
- output("Usage:");
282
- output(" ssh-mcp-pro-agent enroll --server <url> --token <token> --alias <alias>");
283
- output(" ssh-mcp-pro-agent run");
284
- output(" ssh-mcp-pro-agent status");
285
- output(" ssh-mcp-pro-agent install-service");
286
- output(" ssh-mcp-pro-agent uninstall-service");
406
+ throw new Error("Unknown agent command. Run ssh-mcp-pro-agent --help for usage.");
287
407
  }
288
408
  }
289
409
  //# sourceMappingURL=agent-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-executor.d.ts","sourceRoot":"","sources":["../../src/remote/agent-executor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EAEZ,MAAM,YAAY,CAAC;AA+QpB,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADtB,MAAM,EAAE,WAAW,EACV,aAAa,EAAE,MAAM;IAGxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIjC,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAwC7D,cAAc;IAoE5B,OAAO,CAAC,eAAe;YAYT,QAAQ;IAiDtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,aAAa;YAaP,QAAQ;YAkBR,SAAS;YAWT,QAAQ;IAgBtB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,UAAU;CAMnB;AAED,wBAAgB,mBAAmB;;;;;EAOlC"}
1
+ {"version":3,"file":"agent-executor.d.ts","sourceRoot":"","sources":["../../src/remote/agent-executor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EAEZ,MAAM,YAAY,CAAC;AA4RpB,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADtB,MAAM,EAAE,WAAW,EACV,aAAa,EAAE,MAAM;IAGxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIjC,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAwC7D,cAAc;IA0E5B,OAAO,CAAC,eAAe;YAYT,QAAQ;IAiDtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,aAAa;YAaP,QAAQ;YAkBR,SAAS;YAWT,QAAQ;IAgBtB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,UAAU;CAMnB;AAED,wBAAgB,mBAAmB;;;;;EAOlC"}