host-execution-mcp 1.0.0 → 2.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 (94) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +14 -12
  3. package/SECURITY.md +3 -3
  4. package/dist/access/index.d.ts +21 -10
  5. package/dist/access/index.js +55 -27
  6. package/dist/access/index.js.map +1 -1
  7. package/dist/access/paradi-auth.d.ts +3 -3
  8. package/dist/access/paradi-auth.js +4 -4
  9. package/dist/access/paradi-auth.js.map +1 -1
  10. package/dist/access/paradi-transport.d.ts +1 -1
  11. package/dist/access/paradi-transport.js +3 -3
  12. package/dist/access/paradi-transport.js.map +1 -1
  13. package/dist/access/paradi-username.d.ts +1 -1
  14. package/dist/access/paradi-username.js +2 -2
  15. package/dist/access/paradi-username.js.map +1 -1
  16. package/dist/access/session-pool.d.ts +5 -0
  17. package/dist/access/session-pool.js +7 -0
  18. package/dist/access/session-pool.js.map +1 -1
  19. package/dist/access/ssh-transport.d.ts +1 -1
  20. package/dist/access/ssh-transport.js +3 -2
  21. package/dist/access/ssh-transport.js.map +1 -1
  22. package/dist/config-yaml.d.ts +54 -0
  23. package/dist/config-yaml.js +172 -0
  24. package/dist/config-yaml.js.map +1 -0
  25. package/dist/config.d.ts +45 -1
  26. package/dist/config.js +126 -22
  27. package/dist/config.js.map +1 -1
  28. package/dist/index.js +3 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/instructions.d.ts +4 -1
  31. package/dist/instructions.js +92 -70
  32. package/dist/instructions.js.map +1 -1
  33. package/dist/kubectl/runner.d.ts +7 -8
  34. package/dist/kubectl/runner.js +18 -21
  35. package/dist/kubectl/runner.js.map +1 -1
  36. package/dist/link-runtime.d.ts +39 -0
  37. package/dist/link-runtime.js +134 -0
  38. package/dist/link-runtime.js.map +1 -0
  39. package/dist/server.d.ts +2 -1
  40. package/dist/server.js +10 -12
  41. package/dist/server.js.map +1 -1
  42. package/dist/sources/guides.d.ts +34 -0
  43. package/dist/sources/guides.js +50 -0
  44. package/dist/sources/guides.js.map +1 -0
  45. package/dist/sources/index.d.ts +5 -0
  46. package/dist/sources/index.js +22 -0
  47. package/dist/sources/index.js.map +1 -0
  48. package/dist/sources/yaml-template.d.ts +31 -0
  49. package/dist/sources/yaml-template.js +35 -0
  50. package/dist/sources/yaml-template.js.map +1 -0
  51. package/dist/ssh/access-client.d.ts +6 -2
  52. package/dist/ssh/access-client.js +58 -27
  53. package/dist/ssh/access-client.js.map +1 -1
  54. package/dist/ssh/access-errors.js +1 -1
  55. package/dist/ssh/access-errors.js.map +1 -1
  56. package/dist/ssh/access-sftp.js +3 -3
  57. package/dist/ssh/access-sftp.js.map +1 -1
  58. package/dist/tools/copy-job-schemas.d.ts +96 -581
  59. package/dist/tools/copy-job-schemas.js +9 -9
  60. package/dist/tools/copy-job-schemas.js.map +1 -1
  61. package/dist/tools/register.d.ts +2 -10
  62. package/dist/tools/register.js +174 -331
  63. package/dist/tools/register.js.map +1 -1
  64. package/dist/tools/remote-schemas.d.ts +156 -708
  65. package/dist/tools/remote-schemas.js +99 -103
  66. package/dist/tools/remote-schemas.js.map +1 -1
  67. package/dist/utils/copy-executor.d.ts +3 -1
  68. package/dist/utils/copy-executor.js +39 -25
  69. package/dist/utils/copy-executor.js.map +1 -1
  70. package/dist/utils/copy-transfer.d.ts +2 -0
  71. package/dist/utils/copy-transfer.js.map +1 -1
  72. package/dist/utils/remote-executor.d.ts +3 -4
  73. package/dist/utils/remote-executor.js +8 -18
  74. package/dist/utils/remote-executor.js.map +1 -1
  75. package/dist/utils/remote-target.js +1 -1
  76. package/dist/utils/remote-target.js.map +1 -1
  77. package/docs/AGENT_GUIDE.md +31 -103
  78. package/docs/CONFIGURATION.md +39 -10
  79. package/docs/GUIDE.md +186 -0
  80. package/docs/PARADI_ACCESS_PLAN.md +6 -6
  81. package/docs/TODO.md +4 -11
  82. package/docs/USER_GUIDE.zh-CN.md +38 -69
  83. package/docs/host-execution.yaml +92 -0
  84. package/docs/paradi-gateway-interactive.png +0 -0
  85. package/package.json +67 -65
  86. package/dist/ssh/bastion-client.d.ts +0 -60
  87. package/dist/ssh/bastion-client.js +0 -423
  88. package/dist/ssh/bastion-client.js.map +0 -1
  89. package/dist/ssh/bastion-errors.d.ts +0 -62
  90. package/dist/ssh/bastion-errors.js +0 -190
  91. package/dist/ssh/bastion-errors.js.map +0 -1
  92. package/dist/ssh/hop1-sftp.d.ts +0 -14
  93. package/dist/ssh/hop1-sftp.js +0 -437
  94. package/dist/ssh/hop1-sftp.js.map +0 -1
@@ -1,33 +1,42 @@
1
1
  import { z } from "zod";
2
2
  const timeoutMs = z.number().int().positive().optional().describe("Timeout in milliseconds");
3
- export const landingTarget = z
4
- .literal("landing")
5
- .describe("Run on landing Context shell (omit contextKey)");
6
- export const podFields = {
7
- namespace: z.string().min(1).describe("Kubernetes namespace (required when target=pod)"),
8
- pod: z.string().min(1).describe("Pod name (required when target=pod)"),
3
+ export const linkDescriptionField = z
4
+ .string()
5
+ .optional()
6
+ .describe("Exact YAML roster link description. Required when many links. One link: omit. Do not fuzzy-match.");
7
+ export const hopHostField = z
8
+ .string()
9
+ .optional()
10
+ .describe("Machine other than this link's landing. ssh: second-hop IP reachable FROM ACCESS. paradi: TARGET landing IP. Omit to stay on the landing.");
11
+ const podLocateFields = {
12
+ namespace: z.string().optional().describe("With pod: read/copy inside this Kubernetes pod via kubectl on the selected machine"),
13
+ pod: z.string().optional().describe("Pod name (required together with namespace)"),
9
14
  container: z
10
15
  .string()
11
16
  .optional()
12
- .describe("Container name (required when target=pod and pod has multiple containers)"),
17
+ .describe("Container name when the pod has multiple containers"),
13
18
  };
14
- export const contextFields = {
15
- contextKey: z
16
- .string()
17
- .min(1)
18
- .describe("HostExecutionContext key from context_derive (required when target=context)"),
19
- };
20
- /** Shared landing | pod [| context] discriminated union builder. */
21
- export function remotePathUnion(fields, opts = { allowContext: true }) {
22
- const landing = z.object({ target: landingTarget, ...fields }).strict();
23
- const pod = z.object({ target: z.literal("pod"), ...podFields, ...fields }).strict();
24
- if (opts.allowContext === false) {
25
- return z.discriminatedUnion("target", [landing, pod]);
19
+ /** Cross-field rules stay in handlers — .refine() becomes ZodEffects and MCP listTools yields empty properties. */
20
+ export function assertPodPair(args) {
21
+ if (Boolean(args.namespace) !== Boolean(args.pod)) {
22
+ throw new Error("namespace and pod are required together");
23
+ }
24
+ }
25
+ export function assertCopyEndpoint(endpoint) {
26
+ if (endpoint.target === "pod") {
27
+ if (!endpoint.namespace || !endpoint.pod) {
28
+ throw new Error("target=pod requires namespace and pod");
29
+ }
30
+ return;
31
+ }
32
+ if (endpoint.namespace || endpoint.pod) {
33
+ throw new Error("namespace and pod are only valid when target=pod");
34
+ }
35
+ }
36
+ export function assertCopySkipVerify(args) {
37
+ if (args.skipIfComplete === true && args.verify === "none") {
38
+ throw new Error("skipIfComplete requires verify=size or verify=size+sha256");
26
39
  }
27
- const context = z
28
- .object({ target: z.literal("context"), ...contextFields, ...fields })
29
- .strict();
30
- return z.discriminatedUnion("target", [landing, pod, context]);
31
40
  }
32
41
  const filePathField = {
33
42
  path: z.string().min(1).describe("Absolute file path"),
@@ -53,69 +62,74 @@ const readModeFields = {
53
62
  grep: z.string().optional().describe("Case-insensitive filter before tail (mode=tail only)"),
54
63
  timeoutMs,
55
64
  };
56
- export function buildRemoteReadFileSchema(opts = { allowContext: true }) {
57
- return remotePathUnion({ ...filePathField, ...readModeFields }, opts);
65
+ export function buildRemoteReadFileSchema() {
66
+ return z
67
+ .object({
68
+ description: linkDescriptionField,
69
+ host: hopHostField,
70
+ user: z.string().optional().describe("Hop-2 / Paradi TARGET user when the selected link has no TARGET_USER"),
71
+ password: z.string().optional().describe("Hop-2 password when the selected link has no TARGET_PASSWORD"),
72
+ ...filePathField,
73
+ ...podLocateFields,
74
+ ...readModeFields,
75
+ })
76
+ .strict();
58
77
  }
59
- export function buildRemotePsSchema(opts = { allowContext: true }) {
60
- return remotePathUnion({
78
+ export function buildRemotePsSchema() {
79
+ return z
80
+ .object({
81
+ description: linkDescriptionField,
82
+ host: hopHostField,
83
+ user: z.string().optional(),
84
+ password: z.string().optional(),
61
85
  pattern: z.string().optional().describe("Optional grep pattern for ps aux"),
86
+ ...podLocateFields,
62
87
  timeoutMs,
63
- }, opts);
88
+ })
89
+ .strict();
64
90
  }
65
- /** Default schemas (ACCESS_KIND=ssh — context allowed). */
66
- export const remoteReadFileSchema = buildRemoteReadFileSchema({ allowContext: true });
67
- export const remotePsSchema = buildRemotePsSchema({ allowContext: true });
68
- /** Map discriminated-union input to internal RemoteTarget. */
69
- export function remoteInputToTarget(args) {
70
- switch (args.target) {
71
- case "landing":
72
- return { target: "landing" };
73
- case "pod":
74
- return {
75
- target: "pod",
76
- namespace: args.namespace,
77
- pod: args.pod,
78
- container: args.container,
79
- };
80
- case "context":
81
- return {
82
- target: "context",
83
- contextKey: args.contextKey,
84
- };
91
+ export const remoteReadFileSchema = buildRemoteReadFileSchema();
92
+ export const remotePsSchema = buildRemotePsSchema();
93
+ export function runTargetFromArgs(contextKey, args) {
94
+ assertPodPair(args);
95
+ if (args.namespace && args.pod) {
96
+ return {
97
+ mode: "pod",
98
+ contextKey,
99
+ namespace: args.namespace,
100
+ pod: args.pod,
101
+ container: args.container,
102
+ };
85
103
  }
104
+ return { mode: "machine", contextKey };
86
105
  }
87
- const filePathEndpoint = {
88
- path: z.string().min(1).describe("Absolute file or directory path"),
89
- };
90
- export function buildRemoteFileEndpointSchema(opts = { allowContext: true }) {
91
- const local = z
106
+ export function buildRemoteFileEndpointSchema() {
107
+ return z
92
108
  .object({
93
109
  target: z
94
- .literal("local")
95
- .describe("Path on the machine running host-execution-mcp (MCP server process)"),
96
- ...filePathEndpoint,
110
+ .enum(["local", "remote", "pod"])
111
+ .describe("local = MCP machine; remote = selected Linux (description + optional host); pod = kubectl on that Linux"),
112
+ path: z.string().min(1).describe("Absolute file or directory path"),
113
+ namespace: z.string().optional().describe("Required when target=pod"),
114
+ pod: z.string().optional().describe("Required when target=pod"),
115
+ container: z.string().optional(),
97
116
  })
98
117
  .strict();
99
- const landing = z.object({ target: landingTarget, ...filePathEndpoint }).strict();
100
- const pod = z.object({ target: z.literal("pod"), ...podFields, ...filePathEndpoint }).strict();
101
- if (opts.allowContext === false) {
102
- return z.discriminatedUnion("target", [local, landing, pod]);
103
- }
104
- const context = z
105
- .object({ target: z.literal("context"), ...contextFields, ...filePathEndpoint })
106
- .strict();
107
- return z.discriminatedUnion("target", [local, landing, pod, context]);
108
118
  }
109
- export const remoteFileEndpointSchema = buildRemoteFileEndpointSchema({ allowContext: true });
119
+ export const remoteFileEndpointSchema = buildRemoteFileEndpointSchema();
110
120
  function buildCopyObjectSchema(endpoint) {
111
121
  return z
112
122
  .object({
123
+ description: linkDescriptionField,
124
+ host: hopHostField,
125
+ user: z.string().optional(),
126
+ password: z.string().optional(),
113
127
  source: endpoint.describe("Copy from"),
114
128
  dest: endpoint.describe("Copy to"),
115
129
  recursive: z
116
130
  .boolean()
117
131
  .optional()
118
- .describe("Directory copy (default true). local↔landing walks files; Runtime uses cp -a / scp -r / kubectl cp."),
132
+ .describe("Directory copy (default true). local↔remote walks files; Runtime uses cp -a / scp -r / kubectl cp."),
119
133
  /** @deprecated Prefer totalTimeoutMs; mapped to totalTimeoutMs when set. */
120
134
  timeoutMs,
121
135
  skipIfComplete: z
@@ -139,52 +153,35 @@ function buildCopyObjectSchema(endpoint) {
139
153
  .int()
140
154
  .positive()
141
155
  .optional()
142
- .describe("local↔landing SFTP connect readyTimeout (default 20000ms)"),
156
+ .describe("local↔remote SFTP connect readyTimeout (default 20000ms)"),
143
157
  verify: z
144
158
  .enum(["none", "size", "size+sha256"])
145
159
  .optional()
146
160
  .describe("Verification / skip gate (default size). size=cheap size match; size+sha256=content (files + directories per-file). none forbidden with skipIfComplete."),
147
161
  })
148
- .strict()
149
- .refine((v) => !(v.skipIfComplete === true && v.verify === "none"), {
150
- message: "skipIfComplete requires verify=size or verify=size+sha256",
151
- path: ["verify"],
152
- });
162
+ .strict();
153
163
  }
154
- export function buildRemoteCopyFileSchema(opts = { allowContext: true }) {
155
- return buildCopyObjectSchema(buildRemoteFileEndpointSchema(opts));
164
+ export function buildRemoteCopyFileSchema() {
165
+ return buildCopyObjectSchema(buildRemoteFileEndpointSchema());
156
166
  }
157
- export const remoteCopyFileSchema = buildRemoteCopyFileSchema({ allowContext: true });
158
- export function fileEndpointToInternal(endpoint) {
159
- switch (endpoint.target) {
160
- case "local":
161
- return { target: "local", path: endpoint.path };
162
- case "landing":
163
- return { target: "landing", path: endpoint.path };
164
- case "pod":
165
- return {
166
- target: "pod",
167
- path: endpoint.path,
168
- namespace: endpoint.namespace,
169
- pod: endpoint.pod,
170
- container: endpoint.container,
171
- };
172
- case "context":
173
- return {
174
- target: "context",
175
- path: endpoint.path,
176
- contextKey: endpoint.contextKey,
177
- };
167
+ export const remoteCopyFileSchema = buildRemoteCopyFileSchema();
168
+ export function materializeAgentCopyEndpoint(access, contextKey, endpoint) {
169
+ assertCopyEndpoint(endpoint);
170
+ if (endpoint.target === "local") {
171
+ return { target: "local", path: endpoint.path };
178
172
  }
179
- }
180
- /** Materialize context endpoints to landing|host for the copy engine. */
181
- export function materializeCopyEndpoint(access, endpoint) {
182
- if (endpoint.target !== "context") {
183
- return endpoint;
173
+ if (endpoint.target === "pod") {
174
+ return {
175
+ target: "pod",
176
+ path: endpoint.path,
177
+ namespace: endpoint.namespace,
178
+ pod: endpoint.pod,
179
+ container: endpoint.container,
180
+ };
184
181
  }
185
182
  const mat = access.materializeFileEndpoint({
186
183
  target: "context",
187
- contextKey: endpoint.contextKey,
184
+ contextKey,
188
185
  path: endpoint.path,
189
186
  });
190
187
  return {
@@ -195,7 +192,6 @@ export function materializeCopyEndpoint(access, endpoint) {
195
192
  password: mat.password,
196
193
  };
197
194
  }
198
- /** Normalize remote_read_file args. */
199
195
  export function resolveReadOptions(args) {
200
196
  const mode = args.mode ?? "head";
201
197
  if (mode === "tail") {
@@ -1 +1 @@
1
- {"version":3,"file":"remote-schemas.js","sourceRoot":"","sources":["../../src/tools/remote-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,gDAAgD,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IACxF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACtE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2EAA2E,CAAC;CACzF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC;AAIF,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAC7B,MAAS,EACT,OAAyB,EAAE,YAAY,EAAE,IAAI,EAAE;IAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACxE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACrF,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,OAAO,GAAG,CAAC;SACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;SACrE,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CACvD,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC5F,SAAS;CACV,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,OAAyB,EAAE,YAAY,EAAE,IAAI,EAAE;IACvF,OAAO,eAAe,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAyB,EAAE,YAAY,EAAE,IAAI,EAAE;IACjF,OAAO,eAAe,CACpB;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC3E,SAAS;KACV,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAM1E,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACvD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC;QACxC,KAAK,KAAK;YACR,OAAO;gBACL,MAAM,EAAE,KAAc;gBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,MAAM,EAAE,SAAkB;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;IACN,CAAC;AACH,CAAC;AAID,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CACpE,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,OAAyB,EAAE,YAAY,EAAE,IAAI,EAAE;IAC3F,MAAM,KAAK,GAAG,CAAC;SACZ,MAAM,CAAC;QACN,MAAM,EAAE,CAAC;aACN,OAAO,CAAC,OAAO,CAAC;aAChB,QAAQ,CAAC,qEAAqE,CAAC;QAClF,GAAG,gBAAgB;KACpB,CAAC;SACD,MAAM,EAAE,CAAC;IACZ,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAClF,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/F,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,CAAC;SACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;SAC/E,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,6BAA6B,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAG9F,SAAS,qBAAqB,CAAC,QAAmB;IAChD,OAAO,CAAC;SACL,MAAM,CAAC;QACN,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QACtC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,qGAAqG,CACtG;QACH,4EAA4E;QAC5E,SAAS;QACT,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,8IAA8I,CAC/I;QACH,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CACP,yFAAyF,CAC1F;QACH,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,2DAA2D,CAAC;QACxE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,QAAQ,CACP,yJAAyJ,CAC1J;KACJ,CAAC;SACD,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;QAClE,OAAO,EAAE,2DAA2D;QACpE,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAyB,EAAE,YAAY,EAAE,IAAI,EAAE;IACvF,OAAO,qBAAqB,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAGtF,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IACjE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpD,KAAK,KAAK;YACR,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC;IACN,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CACrC,MAAqB,EACrB,QAAsB;IAEtB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,uBAAuB,CAAC;QACzC,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,QAAQ,CAAC,UAAW;QAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;KACpB,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC;AACJ,CAAC;AAWD,uCAAuC;AACvC,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACjC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"remote-schemas.js","sourceRoot":"","sources":["../../src/tools/remote-schemas.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,10 @@ export interface ExecuteRemoteCopyOptions {
30
30
  transferId?: string;
31
31
  signal?: AbortSignal;
32
32
  }
33
- /** Paradi landing is already TARGET — forbid second-hop / derived copy endpoints. */
33
+ /** Paradi landing is already TARGET — forbid hop-2 host endpoints (context = selected landing). */
34
34
  export declare function assertCopyEndpointsAllowed(config: AppConfig, source: FileEndpoint, dest: FileEndpoint): void;
35
+ /** Paradi: SFTP/exec identity follows the selected landing host on either endpoint. */
36
+ export declare function copyLandingHost(config: AppConfig, source: FileEndpoint, dest: FileEndpoint): string | undefined;
35
37
  /** Execute remote_copy_file across local, landing, pod, and host endpoints. */
36
38
  export declare function executeRemoteCopy(deps: {
37
39
  accessClient: AccessClient;
@@ -7,18 +7,28 @@ export { throwIfAborted };
7
7
  function tempLandingPath() {
8
8
  return `/tmp/mcp_copy_${Date.now()}_${crypto.randomBytes(6).toString("hex")}`;
9
9
  }
10
- /** Paradi landing is already TARGET — forbid second-hop / derived copy endpoints. */
10
+ /** Paradi landing is already TARGET — forbid hop-2 host endpoints (context = selected landing). */
11
11
  export function assertCopyEndpointsAllowed(config, source, dest) {
12
12
  if (config.accessKind !== "paradi-gateway") {
13
13
  return;
14
14
  }
15
- if (source.target === "host" ||
16
- dest.target === "host" ||
17
- source.target === "context" ||
18
- dest.target === "context") {
19
- throw new Error("ACCESS_KIND=paradi-gateway already lands on TARGET — remote_copy second-hop host/context endpoints are unsupported by current Paradi AccessTransport. Use target=landing (landing=TARGET), pod, or local.");
15
+ if (source.target === "host" || dest.target === "host") {
16
+ throw new Error("ACCESS_KIND=paradi-gateway: remote_copy must not hop-2 (no target=host). Use target=remote on the selected TARGET landing, or target=pod / local.");
20
17
  }
21
18
  }
19
+ /** Paradi: SFTP/exec identity follows the selected landing host on either endpoint. */
20
+ export function copyLandingHost(config, source, dest) {
21
+ if (config.accessKind !== "paradi-gateway") {
22
+ return undefined;
23
+ }
24
+ for (const endpoint of [source, dest]) {
25
+ const host = endpoint.host?.trim();
26
+ if (host) {
27
+ return host;
28
+ }
29
+ }
30
+ return undefined;
31
+ }
22
32
  function mergeOutput(raw) {
23
33
  return [raw.stdout, raw.stderr].filter(Boolean).join("\n");
24
34
  }
@@ -61,13 +71,15 @@ function fromSftpResult(transfer, message, durationMs) {
61
71
  durationMs,
62
72
  };
63
73
  }
64
- async function removeLandingFile(accessClient, remotePath, timeoutMs, signal) {
65
- await accessClient.exec(`rm -f ${bashSingleQuote(remotePath)}`, timeoutMs, undefined, signal).catch(() => undefined);
74
+ async function removeLandingFile(accessClient, remotePath, timeoutMs, signal, landingHost) {
75
+ await accessClient
76
+ .exec(`rm -f ${bashSingleQuote(remotePath)}`, timeoutMs, undefined, signal, landingHost)
77
+ .catch(() => undefined);
66
78
  }
67
- async function runLandingCopy(accessClient, source, dest, recursive, config, timeoutMs, signal) {
79
+ async function runLandingCopy(accessClient, source, dest, recursive, config, timeoutMs, signal, landingHost) {
68
80
  throwIfAborted(signal);
69
81
  const command = buildCopyFileCommand(source, dest, recursive, config.targetUser, config.targetPassword);
70
- const raw = await accessClient.exec(command, timeoutMs, undefined, signal);
82
+ const raw = await accessClient.exec(command, timeoutMs, undefined, signal, landingHost);
71
83
  const output = mergeOutput(raw);
72
84
  return { exitCode: raw.exitCode, bytes: parseCopyBytes(output), output };
73
85
  }
@@ -84,17 +96,19 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
84
96
  const signal = options.signal;
85
97
  throwIfAborted(signal);
86
98
  assertCopyEndpointsAllowed(deps.config, source, dest);
99
+ const landingHost = copyLandingHost(deps.config, source, dest);
100
+ const hopOpts = { ...sftpOpts, landingHost };
87
101
  const hopTimeout = () => remainingTimeoutMs(deadlineMs, budget);
88
102
  if (src === "local" && dst === "landing") {
89
103
  const transfer = await deps.accessClient.uploadPath(source.path, dest.path, {
90
- ...sftpOpts,
104
+ ...hopOpts,
91
105
  totalTimeoutMs: hopTimeout(),
92
106
  });
93
107
  return fromSftpResult(transfer, `Copied local:${source.path} → landing:${dest.path}`, duration());
94
108
  }
95
109
  if (src === "landing" && dst === "local") {
96
110
  const transfer = await deps.accessClient.downloadPath(source.path, dest.path, {
97
- ...sftpOpts,
111
+ ...hopOpts,
98
112
  totalTimeoutMs: hopTimeout(),
99
113
  });
100
114
  return fromSftpResult(transfer, `Copied landing:${source.path} → local:${dest.path}`, duration());
@@ -103,11 +117,11 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
103
117
  const tmp = tempLandingPath();
104
118
  try {
105
119
  const uploaded = await deps.accessClient.uploadPath(source.path, tmp, {
106
- ...sftpOpts,
120
+ ...hopOpts,
107
121
  totalTimeoutMs: hopTimeout(),
108
122
  });
109
123
  throwIfAborted(signal);
110
- const result = await runLandingCopy(deps.accessClient, { target: "landing", path: tmp }, dest, recursive, deps.config, hopTimeout(), signal);
124
+ const result = await runLandingCopy(deps.accessClient, { target: "landing", path: tmp }, dest, recursive, deps.config, hopTimeout(), signal, landingHost);
111
125
  if (result.exitCode !== 0) {
112
126
  return {
113
127
  exitCode: result.exitCode,
@@ -126,13 +140,13 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
126
140
  }
127
141
  finally {
128
142
  const left = Math.max(1_000, Math.min(15_000, deadlineMs - Date.now()));
129
- await removeLandingFile(deps.accessClient, tmp, left, signal);
143
+ await removeLandingFile(deps.accessClient, tmp, left, signal, landingHost);
130
144
  }
131
145
  }
132
146
  if (src === "pod" && dst === "local") {
133
147
  const tmp = tempLandingPath();
134
148
  try {
135
- const result = await runLandingCopy(deps.accessClient, source, { target: "landing", path: tmp }, recursive, deps.config, hopTimeout(), signal);
149
+ const result = await runLandingCopy(deps.accessClient, source, { target: "landing", path: tmp }, recursive, deps.config, hopTimeout(), signal, landingHost);
136
150
  if (result.exitCode !== 0) {
137
151
  return {
138
152
  exitCode: result.exitCode,
@@ -144,25 +158,25 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
144
158
  }
145
159
  throwIfAborted(signal);
146
160
  const transfer = await deps.accessClient.downloadPath(tmp, dest.path, {
147
- ...sftpOpts,
161
+ ...hopOpts,
148
162
  totalTimeoutMs: hopTimeout(),
149
163
  });
150
164
  return fromSftpResult(transfer, `Copied pod:${source.path} → local:${dest.path}`, duration());
151
165
  }
152
166
  finally {
153
167
  const left = Math.max(1_000, Math.min(15_000, deadlineMs - Date.now()));
154
- await removeLandingFile(deps.accessClient, tmp, left, signal);
168
+ await removeLandingFile(deps.accessClient, tmp, left, signal, landingHost);
155
169
  }
156
170
  }
157
171
  if (src === "local" && dst === "host") {
158
172
  const tmp = tempLandingPath();
159
173
  try {
160
174
  const uploaded = await deps.accessClient.uploadPath(source.path, tmp, {
161
- ...sftpOpts,
175
+ ...hopOpts,
162
176
  totalTimeoutMs: hopTimeout(),
163
177
  });
164
178
  throwIfAborted(signal);
165
- const result = await runLandingCopy(deps.accessClient, { target: "landing", path: tmp }, dest, recursive, deps.config, hopTimeout(), signal);
179
+ const result = await runLandingCopy(deps.accessClient, { target: "landing", path: tmp }, dest, recursive, deps.config, hopTimeout(), signal, landingHost);
166
180
  if (result.exitCode !== 0) {
167
181
  return {
168
182
  exitCode: result.exitCode,
@@ -181,13 +195,13 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
181
195
  }
182
196
  finally {
183
197
  const left = Math.max(1_000, Math.min(15_000, deadlineMs - Date.now()));
184
- await removeLandingFile(deps.accessClient, tmp, left, signal);
198
+ await removeLandingFile(deps.accessClient, tmp, left, signal, landingHost);
185
199
  }
186
200
  }
187
201
  if (src === "host" && dst === "local") {
188
202
  const tmp = tempLandingPath();
189
203
  try {
190
- const result = await runLandingCopy(deps.accessClient, source, { target: "landing", path: tmp }, recursive, deps.config, hopTimeout(), signal);
204
+ const result = await runLandingCopy(deps.accessClient, source, { target: "landing", path: tmp }, recursive, deps.config, hopTimeout(), signal, landingHost);
191
205
  if (result.exitCode !== 0) {
192
206
  return {
193
207
  exitCode: result.exitCode,
@@ -199,18 +213,18 @@ export async function executeRemoteCopy(deps, source, dest, options = {}) {
199
213
  }
200
214
  throwIfAborted(signal);
201
215
  const transfer = await deps.accessClient.downloadPath(tmp, dest.path, {
202
- ...sftpOpts,
216
+ ...hopOpts,
203
217
  totalTimeoutMs: hopTimeout(),
204
218
  });
205
219
  return fromSftpResult(transfer, `Copied host:${source.path} → local:${dest.path}`, duration());
206
220
  }
207
221
  finally {
208
222
  const left = Math.max(1_000, Math.min(15_000, deadlineMs - Date.now()));
209
- await removeLandingFile(deps.accessClient, tmp, left, signal);
223
+ await removeLandingFile(deps.accessClient, tmp, left, signal, landingHost);
210
224
  }
211
225
  }
212
226
  throwIfAborted(signal);
213
- const result = await runLandingCopy(deps.accessClient, source, dest, recursive, deps.config, hopTimeout(), signal);
227
+ const result = await runLandingCopy(deps.accessClient, source, dest, recursive, deps.config, hopTimeout(), signal, landingHost);
214
228
  return {
215
229
  exitCode: result.exitCode,
216
230
  bytes: result.bytes,
@@ -1 +1 @@
1
- {"version":3,"file":"copy-executor.js","sourceRoot":"","sources":["../../src/utils/copy-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy-executor.js","sourceRoot":"","sources":["../../src/utils/copy-executor.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ export interface SftpCopyOptions {
29
29
  transferId?: string;
30
30
  /** Abort in-flight Hop1 transfer (ends SFTP session only). */
31
31
  signal?: AbortSignal;
32
+ /** Paradi: encode this TARGET landing on the gateway SFTP identity. */
33
+ landingHost?: string;
32
34
  }
33
35
  export interface SftpTransferResult {
34
36
  bytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"copy-transfer.js","sourceRoot":"","sources":["../../src/utils/copy-transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy-transfer.js","sourceRoot":"","sources":["../../src/utils/copy-transfer.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
1
  import type { AppConfig } from "../config.js";
2
2
  import type { AccessRuntime } from "../access/index.js";
3
3
  import type { KubectlRunner } from "../kubectl/runner.js";
4
- import type { RemoteTarget } from "../tools/remote-schemas.js";
4
+ import type { RemoteRunTarget } from "../tools/remote-schemas.js";
5
5
  /**
6
- * Runtime routing: landing / pod / context.
7
- * context path = shellExec on derived Context by contextKey.
6
+ * Runtime routing: selected machine shell, or kubectl on that machine into a pod.
8
7
  */
9
8
  export declare class RemoteExecutor {
10
9
  private readonly access;
11
10
  private readonly kubectl;
12
11
  private readonly config;
13
12
  constructor(access: AccessRuntime, kubectl: KubectlRunner, config: AppConfig);
14
- runOnTarget(target: RemoteTarget, command: string, timeoutMs?: number): Promise<import("../ssh/access-client.js").ExecOutput>;
13
+ runOnTarget(target: RemoteRunTarget, command: string, timeoutMs?: number): Promise<import("../ssh/access-client.js").ExecOutput>;
15
14
  }
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Runtime routing: landing / pod / context.
3
- * context path = shellExec on derived Context by contextKey.
2
+ * Runtime routing: selected machine shell, or kubectl on that machine into a pod.
4
3
  */
5
4
  export class RemoteExecutor {
6
5
  access;
@@ -12,23 +11,14 @@ export class RemoteExecutor {
12
11
  this.config = config;
13
12
  }
14
13
  async runOnTarget(target, command, timeoutMs) {
15
- switch (target.target) {
16
- case "landing":
17
- return this.access.shellExec(command, {
18
- timeoutMs: timeoutMs ?? this.config.defaultTimeoutMs,
19
- });
20
- case "context":
21
- return this.access.shellExec(command, {
22
- contextKey: target.contextKey,
23
- timeoutMs: timeoutMs ?? this.config.defaultTimeoutMs,
24
- });
25
- case "pod":
26
- return this.kubectl.exec(target.namespace, target.pod, command, target.container, timeoutMs);
27
- default: {
28
- const exhaustive = target;
29
- throw new Error(`Unsupported target: ${String(exhaustive)}`);
30
- }
14
+ const timeout = timeoutMs ?? this.config.defaultTimeoutMs;
15
+ if (target.mode === "machine") {
16
+ return this.access.shellExec(command, {
17
+ contextKey: target.contextKey,
18
+ timeoutMs: timeout,
19
+ });
31
20
  }
21
+ return this.kubectl.exec(target.namespace, target.pod, command, target.container, timeout, target.contextKey);
32
22
  }
33
23
  }
34
24
  //# sourceMappingURL=remote-executor.js.map