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.
- package/CHANGELOG.md +44 -0
- package/README.md +14 -12
- package/SECURITY.md +3 -3
- package/dist/access/index.d.ts +21 -10
- package/dist/access/index.js +55 -27
- package/dist/access/index.js.map +1 -1
- package/dist/access/paradi-auth.d.ts +3 -3
- package/dist/access/paradi-auth.js +4 -4
- package/dist/access/paradi-auth.js.map +1 -1
- package/dist/access/paradi-transport.d.ts +1 -1
- package/dist/access/paradi-transport.js +3 -3
- package/dist/access/paradi-transport.js.map +1 -1
- package/dist/access/paradi-username.d.ts +1 -1
- package/dist/access/paradi-username.js +2 -2
- package/dist/access/paradi-username.js.map +1 -1
- package/dist/access/session-pool.d.ts +5 -0
- package/dist/access/session-pool.js +7 -0
- package/dist/access/session-pool.js.map +1 -1
- package/dist/access/ssh-transport.d.ts +1 -1
- package/dist/access/ssh-transport.js +3 -2
- package/dist/access/ssh-transport.js.map +1 -1
- package/dist/config-yaml.d.ts +54 -0
- package/dist/config-yaml.js +172 -0
- package/dist/config-yaml.js.map +1 -0
- package/dist/config.d.ts +45 -1
- package/dist/config.js +126 -22
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +4 -1
- package/dist/instructions.js +92 -70
- package/dist/instructions.js.map +1 -1
- package/dist/kubectl/runner.d.ts +7 -8
- package/dist/kubectl/runner.js +18 -21
- package/dist/kubectl/runner.js.map +1 -1
- package/dist/link-runtime.d.ts +39 -0
- package/dist/link-runtime.js +134 -0
- package/dist/link-runtime.js.map +1 -0
- package/dist/server.d.ts +2 -1
- package/dist/server.js +10 -12
- package/dist/server.js.map +1 -1
- package/dist/sources/guides.d.ts +34 -0
- package/dist/sources/guides.js +50 -0
- package/dist/sources/guides.js.map +1 -0
- package/dist/sources/index.d.ts +5 -0
- package/dist/sources/index.js +22 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/yaml-template.d.ts +31 -0
- package/dist/sources/yaml-template.js +35 -0
- package/dist/sources/yaml-template.js.map +1 -0
- package/dist/ssh/access-client.d.ts +6 -2
- package/dist/ssh/access-client.js +58 -27
- package/dist/ssh/access-client.js.map +1 -1
- package/dist/ssh/access-errors.js +1 -1
- package/dist/ssh/access-errors.js.map +1 -1
- package/dist/ssh/access-sftp.js +3 -3
- package/dist/ssh/access-sftp.js.map +1 -1
- package/dist/tools/copy-job-schemas.d.ts +96 -581
- package/dist/tools/copy-job-schemas.js +9 -9
- package/dist/tools/copy-job-schemas.js.map +1 -1
- package/dist/tools/register.d.ts +2 -10
- package/dist/tools/register.js +174 -331
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/remote-schemas.d.ts +156 -708
- package/dist/tools/remote-schemas.js +99 -103
- package/dist/tools/remote-schemas.js.map +1 -1
- package/dist/utils/copy-executor.d.ts +3 -1
- package/dist/utils/copy-executor.js +39 -25
- package/dist/utils/copy-executor.js.map +1 -1
- package/dist/utils/copy-transfer.d.ts +2 -0
- package/dist/utils/copy-transfer.js.map +1 -1
- package/dist/utils/remote-executor.d.ts +3 -4
- package/dist/utils/remote-executor.js +8 -18
- package/dist/utils/remote-executor.js.map +1 -1
- package/dist/utils/remote-target.js +1 -1
- package/dist/utils/remote-target.js.map +1 -1
- package/docs/AGENT_GUIDE.md +31 -103
- package/docs/CONFIGURATION.md +39 -10
- package/docs/GUIDE.md +186 -0
- package/docs/PARADI_ACCESS_PLAN.md +6 -6
- package/docs/TODO.md +4 -11
- package/docs/USER_GUIDE.zh-CN.md +38 -69
- package/docs/host-execution.yaml +92 -0
- package/docs/paradi-gateway-interactive.png +0 -0
- package/package.json +67 -65
- package/dist/ssh/bastion-client.d.ts +0 -60
- package/dist/ssh/bastion-client.js +0 -423
- package/dist/ssh/bastion-client.js.map +0 -1
- package/dist/ssh/bastion-errors.d.ts +0 -62
- package/dist/ssh/bastion-errors.js +0 -190
- package/dist/ssh/bastion-errors.js.map +0 -1
- package/dist/ssh/hop1-sftp.d.ts +0 -14
- package/dist/ssh/hop1-sftp.js +0 -437
- 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
|
|
4
|
-
.
|
|
5
|
-
.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
17
|
+
.describe("Container name when the pod has multiple containers"),
|
|
13
18
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return
|
|
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(
|
|
57
|
-
return
|
|
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(
|
|
60
|
-
return
|
|
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
|
-
}
|
|
88
|
+
})
|
|
89
|
+
.strict();
|
|
64
90
|
}
|
|
65
|
-
|
|
66
|
-
export const
|
|
67
|
-
export
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
88
|
-
|
|
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
|
-
.
|
|
95
|
-
.describe("
|
|
96
|
-
|
|
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(
|
|
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↔
|
|
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↔
|
|
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(
|
|
155
|
-
return buildCopyObjectSchema(buildRemoteFileEndpointSchema(
|
|
164
|
+
export function buildRemoteCopyFileSchema() {
|
|
165
|
+
return buildCopyObjectSchema(buildRemoteFileEndpointSchema());
|
|
156
166
|
}
|
|
157
|
-
export const remoteCopyFileSchema = buildRemoteCopyFileSchema(
|
|
158
|
-
export function
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;
|
|
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 {
|
|
4
|
+
import type { RemoteRunTarget } from "../tools/remote-schemas.js";
|
|
5
5
|
/**
|
|
6
|
-
* Runtime routing:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|