ssh-mcp-pro 1.1.2 → 1.1.3

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 (56) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +23 -1
  3. package/dist/config-parsers.d.ts +12 -0
  4. package/dist/config-parsers.d.ts.map +1 -0
  5. package/dist/config-parsers.js +60 -0
  6. package/dist/config-parsers.js.map +1 -0
  7. package/dist/config.d.ts +3 -2
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +3 -58
  10. package/dist/config.js.map +1 -1
  11. package/dist/ensure-pkg.d.ts +9 -0
  12. package/dist/ensure-pkg.d.ts.map +1 -0
  13. package/dist/ensure-pkg.js +105 -0
  14. package/dist/ensure-pkg.js.map +1 -0
  15. package/dist/ensure.d.ts.map +1 -1
  16. package/dist/ensure.js +2 -104
  17. package/dist/ensure.js.map +1 -1
  18. package/dist/fs-sftp.d.ts +58 -0
  19. package/dist/fs-sftp.d.ts.map +1 -0
  20. package/dist/fs-sftp.js +184 -0
  21. package/dist/fs-sftp.js.map +1 -0
  22. package/dist/fs-tools.d.ts.map +1 -1
  23. package/dist/fs-tools.js +2 -144
  24. package/dist/fs-tools.js.map +1 -1
  25. package/dist/mcp.d.ts +1 -1
  26. package/dist/mcp.js +1 -1
  27. package/dist/remote/agent-handler.d.ts +36 -0
  28. package/dist/remote/agent-handler.d.ts.map +1 -0
  29. package/dist/remote/agent-handler.js +255 -0
  30. package/dist/remote/agent-handler.js.map +1 -0
  31. package/dist/remote/control-plane.d.ts +4 -17
  32. package/dist/remote/control-plane.d.ts.map +1 -1
  33. package/dist/remote/control-plane.js +23 -657
  34. package/dist/remote/control-plane.js.map +1 -1
  35. package/dist/remote/http-util.d.ts +29 -0
  36. package/dist/remote/http-util.d.ts.map +1 -0
  37. package/dist/remote/http-util.js +159 -0
  38. package/dist/remote/http-util.js.map +1 -0
  39. package/dist/remote/oauth-handler.d.ts +47 -0
  40. package/dist/remote/oauth-handler.d.ts.map +1 -0
  41. package/dist/remote/oauth-handler.js +296 -0
  42. package/dist/remote/oauth-handler.js.map +1 -0
  43. package/dist/session-auth.d.ts +39 -0
  44. package/dist/session-auth.d.ts.map +1 -0
  45. package/dist/session-auth.js +148 -0
  46. package/dist/session-auth.js.map +1 -0
  47. package/dist/session.d.ts +0 -19
  48. package/dist/session.d.ts.map +1 -1
  49. package/dist/session.js +8 -154
  50. package/dist/session.js.map +1 -1
  51. package/docs/audit/2026-06-05-ecosystem-audit.md +1 -1
  52. package/docs/governance/issue-taxonomy.json +5 -0
  53. package/mcp.json +1 -1
  54. package/package.json +18 -12
  55. package/registry/ssh-mcp-pro/mcp.json +1 -1
  56. package/server.json +3 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.1.3](https://github.com/oaslananka/ssh-mcp-pro/compare/ssh-mcp-pro-v1.1.2...ssh-mcp-pro-v1.1.3) (2026-06-11)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **ci:** disable scorecard publish_results to fix OpenSSF failure ([ac5ce05](https://github.com/oaslananka/ssh-mcp-pro/commit/ac5ce054d046e12c6683b3390176005879f646a4))
14
+
8
15
  ## [1.1.2](https://github.com/oaslananka/ssh-mcp-pro/compare/ssh-mcp-pro-v1.1.1...ssh-mcp-pro-v1.1.2) (2026-06-05)
9
16
 
10
17
 
@@ -54,5 +61,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
54
61
  ### Added
55
62
 
56
63
  - Publish generated TypeDoc API reference through GitHub Pages.
64
+ - Add repository Taskfile shortcuts for common quality and release checks.
65
+
66
+ ### Changed
67
+
68
+ - Complete README usage, contributing, and license guidance.
69
+ - Remove prohibited attribution and placeholder-marker literals from repository text.
57
70
 
58
71
  [Unreleased]: https://github.com/oaslananka/ssh-mcp-pro/compare/v1.0.0...HEAD
package/README.md CHANGED
@@ -10,7 +10,7 @@ ssh-mcp-pro is a secure Model Context Protocol (MCP) server for SSH automation.
10
10
 
11
11
  ## Prerequisites
12
12
 
13
- - Node.js `>=22.22.2` or `>=24.15.0`
13
+ - Node.js `>=22.22.2` or `>=24.15.0` or `>=26.3.0`
14
14
  - pnpm `>=11.0.9`
15
15
  - SSH access to the target hosts
16
16
  - Docker, only for local integration tests and container image builds
@@ -92,6 +92,19 @@ After registration, start with discovery and a strict host-key policy:
92
92
  List configured SSH hosts, open a session to bastion.example.com as deploy with hostKeyPolicy=strict, then run os_detect.
93
93
  ```
94
94
 
95
+ ## Usage
96
+
97
+ Use ssh-mcp-pro from an MCP client over stdio, or run the HTTP transport for
98
+ remote-safe connector profiles. Start with read-only discovery tools, inspect
99
+ the active policy, and create explicit sessions before running remote commands:
100
+
101
+ ```text
102
+ List configured SSH hosts, explain the active SSH policy, connect to the selected host, then report its operating system and disk usage.
103
+ ```
104
+
105
+ See [examples/README.md](examples/README.md) for additional workflows and
106
+ [INSTALL.md](INSTALL.md) for client-specific setup.
107
+
95
108
  ## Configuration
96
109
 
97
110
  All `SSH_MCP_*` environment variables parsed by `src/config.ts` are listed below. Comma-separated settings also accept newline-separated values.
@@ -188,3 +201,12 @@ ssh-mcp-pro starts with strict SSH host-key verification, denies root login, den
188
201
  - [examples/README.md](examples/README.md) contains workflow examples.
189
202
  - [ARCHITECTURE.md](ARCHITECTURE.md) explains the major subsystems and ADRs.
190
203
  - [REGISTRY_SUBMISSION.md](REGISTRY_SUBMISSION.md) tracks MCP Registry submission readiness.
204
+
205
+ ## Contributing
206
+
207
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, quality gates, commit rules,
208
+ and pull request expectations.
209
+
210
+ ## License
211
+
212
+ ssh-mcp-pro is available under the [MIT License](LICENSE).
@@ -0,0 +1,12 @@
1
+ import type { PolicyConfig } from "./policy.js";
2
+ import type { HostKeyPolicy } from "./types.js";
3
+ export declare const CONNECTOR_CREDENTIAL_PROVIDERS: readonly ["none", "agent", "command"];
4
+ export type ConnectorCredentialProvider = (typeof CONNECTOR_CREDENTIAL_PROVIDERS)[number];
5
+ export declare function parseBoolean(value: string | undefined, fallback: boolean): boolean;
6
+ export declare function parseInteger(value: string | undefined, fallback: number): number;
7
+ export declare function parseList(value: string | undefined): string[];
8
+ export declare function parseHostKeyPolicy(value: string | undefined, fallback: HostKeyPolicy): HostKeyPolicy;
9
+ export declare function parseCredentialProvider(value: string | undefined, fallback: ConnectorCredentialProvider): ConnectorCredentialProvider;
10
+ export declare function parseAuthMode(value: string | undefined, fallback: "bearer" | "oauth"): "bearer" | "oauth";
11
+ export declare function loadPolicyFile(filePath: string | undefined): Partial<PolicyConfig>;
12
+ //# sourceMappingURL=config-parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parsers.d.ts","sourceRoot":"","sources":["../src/config-parsers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,8BAA8B,uCAAwC,CAAC;AACpF,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAKlF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAQ7D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,aAAa,GACtB,aAAa,CAKf;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,2BAA2B,GACpC,2BAA2B,CAQ7B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAC3B,QAAQ,GAAG,OAAO,CAEpB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAmBlF"}
@@ -0,0 +1,60 @@
1
+ import * as fs from "node:fs";
2
+ import { logger } from "./logging.js";
3
+ export const CONNECTOR_CREDENTIAL_PROVIDERS = ["none", "agent", "command"];
4
+ export function parseBoolean(value, fallback) {
5
+ if (value === undefined) {
6
+ return fallback;
7
+ }
8
+ return ["1", "true", "yes", "on"].includes(value.toLowerCase());
9
+ }
10
+ export function parseInteger(value, fallback) {
11
+ if (value === undefined) {
12
+ return fallback;
13
+ }
14
+ const parsed = Number.parseInt(value, 10);
15
+ return Number.isFinite(parsed) ? parsed : fallback;
16
+ }
17
+ export function parseList(value) {
18
+ if (!value) {
19
+ return [];
20
+ }
21
+ return value
22
+ .split(/[\n,]/)
23
+ .map((item) => item.trim())
24
+ .filter(Boolean);
25
+ }
26
+ export function parseHostKeyPolicy(value, fallback) {
27
+ if (value === "strict" || value === "accept-new" || value === "insecure") {
28
+ return value;
29
+ }
30
+ return fallback;
31
+ }
32
+ export function parseCredentialProvider(value, fallback) {
33
+ if (value === undefined || value === "") {
34
+ return fallback;
35
+ }
36
+ if (CONNECTOR_CREDENTIAL_PROVIDERS.includes(value)) {
37
+ return value;
38
+ }
39
+ return fallback;
40
+ }
41
+ export function parseAuthMode(value, fallback) {
42
+ return value === "oauth" || value === "bearer" ? value : fallback;
43
+ }
44
+ export function loadPolicyFile(filePath) {
45
+ if (!filePath) {
46
+ return {};
47
+ }
48
+ try {
49
+ const raw = fs.readFileSync(filePath, "utf8");
50
+ return JSON.parse(raw);
51
+ }
52
+ catch (error) {
53
+ logger.error("Failed to load explicitly configured policy file", {
54
+ filePath,
55
+ error,
56
+ });
57
+ throw new Error(`Invalid SSH_MCP_POLICY_FILE ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
58
+ }
59
+ }
60
+ //# sourceMappingURL=config-parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parsers.js","sourceRoot":"","sources":["../src/config-parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAGpF,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,QAAiB;IACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,QAAgB;IACtE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK;SACT,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,QAAuB;IAEvB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,QAAqC;IAErC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,8BAA8B,CAAC,QAAQ,CAAC,KAAoC,CAAC,EAAE,CAAC;QAClF,OAAO,KAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAyB,EACzB,QAA4B;IAE5B,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAA4B;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE;YAC/D,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,KACrC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ import { CONNECTOR_CREDENTIAL_PROVIDERS, type ConnectorCredentialProvider } from "./config-parsers.js";
2
+ /** @deprecated Import from config-parsers.js directly */
3
+ export { CONNECTOR_CREDENTIAL_PROVIDERS };
1
4
  import { type ToolProfile } from "./connector-profile.js";
2
5
  import type { PolicyConfig } from "./policy.js";
3
6
  import type { HostKeyPolicy } from "./types.js";
4
- export declare const CONNECTOR_CREDENTIAL_PROVIDERS: readonly ["none", "agent", "command"];
5
- export type ConnectorCredentialProvider = (typeof CONNECTOR_CREDENTIAL_PROVIDERS)[number];
6
7
  /**
7
8
  * Server configuration options
8
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,8BAA8B,uCAAwC,CAAC;AACpF,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE;YACV,OAAO,EAAE,OAAO,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,wBAAwB;IACxB,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;QACxB,aAAa,EAAE,aAAa,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,uDAAuD;IACvD,MAAM,EAAE,YAAY,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,+CAA+C;IAC/C,SAAS,EAAE;QACT,WAAW,EAAE,WAAW,CAAC;QACzB,kBAAkB,EAAE,2BAA2B,CAAC;QAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAChC,0BAA0B,EAAE,MAAM,CAAC;QACnC,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,yDAAyD;IACzD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,eAAO,MAAM,cAAc,EAAE,YAmE5B,CAAC;AA2EF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM;IAKjD,OAAO,CAAC,UAAU;IAySlB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAI1D;;OAEG;IACH,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC;IA0ChC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAkF7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,9 +1,10 @@
1
- import * as fs from "node:fs";
2
1
  import * as os from "node:os";
3
2
  import * as path from "node:path";
4
3
  import { logger } from "./logging.js";
4
+ import { CONNECTOR_CREDENTIAL_PROVIDERS, parseBoolean, parseHostKeyPolicy, parseInteger, parseList, loadPolicyFile, parseAuthMode, parseCredentialProvider, } from "./config-parsers.js";
5
+ /** @deprecated Import from config-parsers.js directly */
6
+ export { CONNECTOR_CREDENTIAL_PROVIDERS };
5
7
  import { parseToolProfile } from "./connector-profile.js";
6
- export const CONNECTOR_CREDENTIAL_PROVIDERS = ["none", "agent", "command"];
7
8
  export const DEFAULT_CONFIG = {
8
9
  maxSessions: 20,
9
10
  sessionTtlMs: 900000, // 15 minutes
@@ -72,62 +73,6 @@ export const DEFAULT_CONFIG = {
72
73
  oauthRequiredScopes: ["ssh-mcp-pro.read"],
73
74
  },
74
75
  };
75
- function parseBoolean(value, fallback) {
76
- if (value === undefined) {
77
- return fallback;
78
- }
79
- return ["1", "true", "yes", "on"].includes(value.toLowerCase());
80
- }
81
- function parseInteger(value, fallback) {
82
- if (value === undefined) {
83
- return fallback;
84
- }
85
- const parsed = Number.parseInt(value, 10);
86
- return Number.isFinite(parsed) ? parsed : fallback;
87
- }
88
- function parseList(value) {
89
- if (!value) {
90
- return [];
91
- }
92
- return value
93
- .split(/[\n,]/)
94
- .map((item) => item.trim())
95
- .filter(Boolean);
96
- }
97
- function parseHostKeyPolicy(value, fallback) {
98
- if (value === "strict" || value === "accept-new" || value === "insecure") {
99
- return value;
100
- }
101
- return fallback;
102
- }
103
- function parseCredentialProvider(value, fallback) {
104
- if (value === undefined || value === "") {
105
- return fallback;
106
- }
107
- if (CONNECTOR_CREDENTIAL_PROVIDERS.includes(value)) {
108
- return value;
109
- }
110
- return fallback;
111
- }
112
- function parseAuthMode(value, fallback) {
113
- return value === "oauth" || value === "bearer" ? value : fallback;
114
- }
115
- function loadPolicyFile(filePath) {
116
- if (!filePath) {
117
- return {};
118
- }
119
- try {
120
- const raw = fs.readFileSync(filePath, "utf8");
121
- return JSON.parse(raw);
122
- }
123
- catch (error) {
124
- logger.error("Failed to load explicitly configured policy file", {
125
- filePath,
126
- error,
127
- });
128
- throw new Error(`Invalid SSH_MCP_POLICY_FILE ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
129
- }
130
- }
131
76
  /**
132
77
  * Configuration manager with environment variable overrides
133
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PackageManager } from "./types.js";
2
+ export declare const SUPPORTED_PACKAGE_MANAGERS: readonly Exclude<PackageManager, "unknown">[];
3
+ export declare const SUPPORTED_PACKAGE_MANAGERS_HINT: string;
4
+ export declare function sanitizePackageName(name: string): string;
5
+ export declare function getRemoveCommand(pm: PackageManager, packageName: string): string;
6
+ export declare function getInstallCommand(pm: PackageManager, packageName: string): string;
7
+ export declare function getPackageCheckCommand(pm: PackageManager, packageName: string): string | undefined;
8
+ export declare function usesDirectPackageCommand(pm: PackageManager): boolean;
9
+ //# sourceMappingURL=ensure-pkg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-pkg.d.ts","sourceRoot":"","sources":["../src/ensure-pkg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,0BAA0B,EAAE,SAAS,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAUnF,CAAC;AACF,eAAO,MAAM,+BAA+B,QAEzC,CAAC;AAEJ,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAUD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAuBhF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAuBjF;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,cAAc,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CA8BpB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAEpE"}
@@ -0,0 +1,105 @@
1
+ import { createBadRequestError, createPackageManagerError } from "./errors.js";
2
+ export const SUPPORTED_PACKAGE_MANAGERS = [
3
+ "apt",
4
+ "dnf",
5
+ "yum",
6
+ "pacman",
7
+ "apk",
8
+ "zypper",
9
+ "brew",
10
+ "winget",
11
+ "choco",
12
+ ];
13
+ export const SUPPORTED_PACKAGE_MANAGERS_HINT = `Supported package managers: ${SUPPORTED_PACKAGE_MANAGERS.join(", ")}`;
14
+ export function sanitizePackageName(name) {
15
+ const validPackageName = /^[a-zA-Z0-9][a-zA-Z0-9._+-]*$/;
16
+ if (!validPackageName.test(name)) {
17
+ throw createBadRequestError(`Invalid package name: ${name}`, "Package names must start with alphanumeric and contain only letters, numbers, dots, dashes, underscores, or plus signs");
18
+ }
19
+ const dangerousChars = /[;&|`$(){}\[\]<>\\\"'\n\r]/;
20
+ if (dangerousChars.test(name)) {
21
+ throw createBadRequestError("Package name contains potentially dangerous characters", "Remove any shell special characters from the package name");
22
+ }
23
+ return name;
24
+ }
25
+ function powerShellQuote(value) {
26
+ return `'${value.replace(/'/g, "''")}'`;
27
+ }
28
+ function escapeRegExp(value) {
29
+ return value.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
30
+ }
31
+ export function getRemoveCommand(pm, packageName) {
32
+ switch (pm) {
33
+ case "apt":
34
+ return `apt-get remove -y ${packageName}`;
35
+ case "dnf":
36
+ return `dnf remove -y ${packageName}`;
37
+ case "yum":
38
+ return `yum remove -y ${packageName}`;
39
+ case "pacman":
40
+ return `pacman -R --noconfirm ${packageName}`;
41
+ case "apk":
42
+ return `apk del ${packageName}`;
43
+ case "zypper":
44
+ return `zypper remove -y ${packageName}`;
45
+ case "brew":
46
+ return `brew uninstall ${packageName}`;
47
+ case "winget":
48
+ return `winget uninstall --id ${packageName} --exact --silent --accept-source-agreements --disable-interactivity`;
49
+ case "choco":
50
+ return `choco uninstall ${packageName} -y --no-progress`;
51
+ default:
52
+ throw createPackageManagerError(`Unsupported package manager: ${pm}`);
53
+ }
54
+ }
55
+ export function getInstallCommand(pm, packageName) {
56
+ switch (pm) {
57
+ case "apt":
58
+ return `apt-get update && apt-get install -y ${packageName}`;
59
+ case "dnf":
60
+ return `dnf install -y ${packageName}`;
61
+ case "yum":
62
+ return `yum install -y ${packageName}`;
63
+ case "pacman":
64
+ return `pacman -S --noconfirm ${packageName}`;
65
+ case "apk":
66
+ return `apk add ${packageName}`;
67
+ case "zypper":
68
+ return `zypper install -y ${packageName}`;
69
+ case "brew":
70
+ return `brew install ${packageName}`;
71
+ case "winget":
72
+ return `winget install --id ${packageName} --exact --silent --accept-source-agreements --accept-package-agreements --disable-interactivity`;
73
+ case "choco":
74
+ return `choco install ${packageName} -y --no-progress`;
75
+ default:
76
+ throw createPackageManagerError(`Unsupported package manager: ${pm}`);
77
+ }
78
+ }
79
+ export function getPackageCheckCommand(pm, packageName) {
80
+ switch (pm) {
81
+ case "apt":
82
+ return `dpkg -l ${packageName} | grep -q '^ii'`;
83
+ case "dnf":
84
+ case "yum":
85
+ return `${pm} list installed ${packageName}`;
86
+ case "pacman":
87
+ return `pacman -Q ${packageName}`;
88
+ case "apk":
89
+ return `apk info -e ${packageName}`;
90
+ case "zypper":
91
+ return `zypper se -i ${packageName}`;
92
+ case "brew":
93
+ return `brew list --versions ${packageName}`;
94
+ case "winget":
95
+ return `$idPattern = ${powerShellQuote(`(^|\\s)${escapeRegExp(packageName)}(\\s|$)`)}; $package = winget list --id ${powerShellQuote(packageName)} --exact --disable-interactivity; if ($LASTEXITCODE -eq 0 -and ($package -match $idPattern)) { exit 0 } exit 1`;
96
+ case "choco":
97
+ return `$package = choco list --exact ${powerShellQuote(packageName)} --limit-output; if ($LASTEXITCODE -eq 0 -and ($package -like ${powerShellQuote(`${packageName}|*`)})) { exit 0 } exit 1`;
98
+ default:
99
+ return undefined;
100
+ }
101
+ }
102
+ export function usesDirectPackageCommand(pm) {
103
+ return pm === "brew" || pm === "winget" || pm === "choco";
104
+ }
105
+ //# sourceMappingURL=ensure-pkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-pkg.js","sourceRoot":"","sources":["../src/ensure-pkg.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAClE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,eAAe,CAAC,EAAE,OAAO,EACzB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;IACjE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC;IACnF,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;CACrE;AAwKD,wBAAgB,mBAAmB,CAAC,EAClC,cAAc,EACd,cAAc,EACd,SAAS,GACV,EAAE,iBAAiB,GAAG,aAAa,CAohBnC"}
1
+ {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAClE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,eAAe,CAAC,EAAE,OAAO,EACzB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;IACjE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC;IACnF,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;CACrE;AAsCD,wBAAgB,mBAAmB,CAAC,EAClC,cAAc,EACd,cAAc,EACd,SAAS,GACV,EAAE,iBAAiB,GAAG,aAAa,CAohBnC"}
package/dist/ensure.js CHANGED
@@ -1,29 +1,7 @@
1
- import { createPackageManagerError, createSudoError, createFilesystemError, createPatchError, createBadRequestError, } from "./errors.js";
1
+ import { createBadRequestError, createPackageManagerError, createSudoError, createFilesystemError, createPatchError, } from "./errors.js";
2
2
  import { logger } from "./logging.js";
3
+ import { SUPPORTED_PACKAGE_MANAGERS_HINT, sanitizePackageName, getRemoveCommand, getInstallCommand, getPackageCheckCommand, usesDirectPackageCommand, } from "./ensure-pkg.js";
3
4
  import { resolveRemoteTempDir } from "./shell.js";
4
- const SUPPORTED_PACKAGE_MANAGERS = [
5
- "apt",
6
- "dnf",
7
- "yum",
8
- "pacman",
9
- "apk",
10
- "zypper",
11
- "brew",
12
- "winget",
13
- "choco",
14
- ];
15
- const SUPPORTED_PACKAGE_MANAGERS_HINT = `Supported package managers: ${SUPPORTED_PACKAGE_MANAGERS.join(", ")}`;
16
- function sanitizePackageName(name) {
17
- const validPackageName = /^[a-zA-Z0-9][a-zA-Z0-9._+-]*$/;
18
- if (!validPackageName.test(name)) {
19
- throw createBadRequestError(`Invalid package name: ${name}`, "Package names must start with alphanumeric and contain only letters, numbers, dots, dashes, underscores, or plus signs");
20
- }
21
- const dangerousChars = /[;&|`$(){}\[\]<>\\\"'\n\r]/;
22
- if (dangerousChars.test(name)) {
23
- throw createBadRequestError("Package name contains potentially dangerous characters", "Remove any shell special characters from the package name");
24
- }
25
- return name;
26
- }
27
5
  function sanitizeServiceName(name) {
28
6
  const validServiceName = /^[a-zA-Z0-9][a-zA-Z0-9_.@:-]*$/;
29
7
  if (!validServiceName.test(name)) {
@@ -34,12 +12,6 @@ function sanitizeServiceName(name) {
34
12
  function shellQuote(value) {
35
13
  return `'${String(value).replace(/'/g, `'"'"'`)}'`;
36
14
  }
37
- function powerShellQuote(value) {
38
- return `'${value.replace(/'/g, "''")}'`;
39
- }
40
- function escapeRegExp(value) {
41
- return value.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
42
- }
43
15
  function describeError(error) {
44
16
  if (error instanceof Error && error.message) {
45
17
  return error.message;
@@ -54,80 +26,6 @@ function isPermissionError(error) {
54
26
  }
55
27
  return /\b(EACCES|EPERM|permission|permission denied|access denied|operation not permitted)\b/iu.test(describeError(error));
56
28
  }
57
- function getRemoveCommand(pm, packageName) {
58
- switch (pm) {
59
- case "apt":
60
- return `apt-get remove -y ${packageName}`;
61
- case "dnf":
62
- return `dnf remove -y ${packageName}`;
63
- case "yum":
64
- return `yum remove -y ${packageName}`;
65
- case "pacman":
66
- return `pacman -R --noconfirm ${packageName}`;
67
- case "apk":
68
- return `apk del ${packageName}`;
69
- case "zypper":
70
- return `zypper remove -y ${packageName}`;
71
- case "brew":
72
- return `brew uninstall ${packageName}`;
73
- case "winget":
74
- return `winget uninstall --id ${packageName} --exact --silent --accept-source-agreements --disable-interactivity`;
75
- case "choco":
76
- return `choco uninstall ${packageName} -y --no-progress`;
77
- default:
78
- throw createPackageManagerError(`Unsupported package manager: ${pm}`);
79
- }
80
- }
81
- function getInstallCommand(pm, packageName) {
82
- switch (pm) {
83
- case "apt":
84
- return `apt-get update && apt-get install -y ${packageName}`;
85
- case "dnf":
86
- return `dnf install -y ${packageName}`;
87
- case "yum":
88
- return `yum install -y ${packageName}`;
89
- case "pacman":
90
- return `pacman -S --noconfirm ${packageName}`;
91
- case "apk":
92
- return `apk add ${packageName}`;
93
- case "zypper":
94
- return `zypper install -y ${packageName}`;
95
- case "brew":
96
- return `brew install ${packageName}`;
97
- case "winget":
98
- return `winget install --id ${packageName} --exact --silent --accept-source-agreements --accept-package-agreements --disable-interactivity`;
99
- case "choco":
100
- return `choco install ${packageName} -y --no-progress`;
101
- default:
102
- throw createPackageManagerError(`Unsupported package manager: ${pm}`);
103
- }
104
- }
105
- function getPackageCheckCommand(pm, packageName) {
106
- switch (pm) {
107
- case "apt":
108
- return `dpkg -l ${packageName} | grep -q '^ii'`;
109
- case "dnf":
110
- case "yum":
111
- return `${pm} list installed ${packageName}`;
112
- case "pacman":
113
- return `pacman -Q ${packageName}`;
114
- case "apk":
115
- return `apk info -e ${packageName}`;
116
- case "zypper":
117
- return `zypper se -i ${packageName}`;
118
- case "brew":
119
- return `brew list --versions ${packageName}`;
120
- case "winget":
121
- return `$idPattern = ${powerShellQuote(`(^|\\s)${escapeRegExp(packageName)}(\\s|$)`)}; $package = winget list --id ${powerShellQuote(packageName)} --exact --disable-interactivity; if ($LASTEXITCODE -eq 0 -and ($package -match $idPattern)) { exit 0 } exit 1`;
122
- case "choco":
123
- return `$package = choco list --exact ${powerShellQuote(packageName)} --limit-output; if ($LASTEXITCODE -eq 0 -and ($package -like ${powerShellQuote(`${packageName}|*`)})) { exit 0 } exit 1`;
124
- default:
125
- return undefined;
126
- }
127
- }
128
- function usesDirectPackageCommand(pm) {
129
- return pm === "brew" || pm === "winget" || pm === "choco";
130
- }
131
29
  export function createEnsureService({ sessionManager, processService, fsService, }) {
132
30
  async function checkPackageInstalled(sessionId, packageName, pm) {
133
31
  const checkCommand = getPackageCheckCommand(pm, packageName);