@agent-vm/agent-vm 0.0.33 → 0.0.35
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/dist/build/gondolin-image-builder.d.ts.map +1 -1
- package/dist/build/gondolin-image-builder.js +7 -12
- package/dist/build/gondolin-image-builder.js.map +1 -1
- package/dist/cli/agent-vm-cli-support.d.ts +7 -0
- package/dist/cli/agent-vm-cli-support.d.ts.map +1 -1
- package/dist/cli/agent-vm-cli-support.js +2 -0
- package/dist/cli/agent-vm-cli-support.js.map +1 -1
- package/dist/cli/build-command.d.ts.map +1 -1
- package/dist/cli/build-command.js +15 -7
- package/dist/cli/build-command.js.map +1 -1
- package/dist/cli/commands/command-definition-support.js +1 -1
- package/dist/cli/commands/command-definition-support.js.map +1 -1
- package/dist/cli/commands/create-app.d.ts +36 -0
- package/dist/cli/commands/create-app.d.ts.map +1 -1
- package/dist/cli/commands/create-app.js +2 -0
- package/dist/cli/commands/create-app.js.map +1 -1
- package/dist/cli/commands/manual-definition.d.ts +31 -0
- package/dist/cli/commands/manual-definition.d.ts.map +1 -0
- package/dist/cli/commands/manual-definition.js +64 -0
- package/dist/cli/commands/manual-definition.js.map +1 -0
- package/dist/cli/controller-operation-commands.d.ts.map +1 -1
- package/dist/cli/controller-operation-commands.js +2 -1
- package/dist/cli/controller-operation-commands.js.map +1 -1
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +68 -42
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/manual-commands.d.ts +10 -0
- package/dist/cli/manual-commands.d.ts.map +1 -0
- package/dist/cli/manual-commands.js +25 -0
- package/dist/cli/manual-commands.js.map +1 -0
- package/dist/cli/manual-templates.d.ts +12 -0
- package/dist/cli/manual-templates.d.ts.map +1 -0
- package/dist/cli/manual-templates.js +214 -0
- package/dist/cli/manual-templates.js.map +1 -0
- package/dist/config/json-config-file.d.ts +2 -0
- package/dist/config/json-config-file.d.ts.map +1 -0
- package/dist/config/json-config-file.js +32 -0
- package/dist/config/json-config-file.js.map +1 -0
- package/dist/config/system-config.d.ts.map +1 -1
- package/dist/config/system-config.js +19 -10
- package/dist/config/system-config.js.map +1 -1
- package/dist/controller/controller-runtime-operations.d.ts +6 -1
- package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
- package/dist/controller/controller-runtime-operations.js +1 -0
- package/dist/controller/controller-runtime-operations.js.map +1 -1
- package/dist/controller/controller-runtime-types.d.ts +1 -1
- package/dist/controller/controller-runtime-types.d.ts.map +1 -1
- package/dist/controller/controller-runtime.js +2 -2
- package/dist/controller/controller-runtime.js.map +1 -1
- package/dist/controller/http/controller-http-route-support.d.ts +3 -0
- package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
- package/dist/controller/http/controller-http-route-support.js.map +1 -1
- package/dist/controller/http/controller-http-routes.d.ts +2 -2
- package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-http-routes.js +55 -25
- package/dist/controller/http/controller-http-routes.js.map +1 -1
- package/dist/controller/http/controller-request-schemas.d.ts +2 -2
- package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
- package/dist/controller/http/controller-request-schemas.js +2 -2
- package/dist/controller/http/controller-request-schemas.js.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.js +12 -0
- package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
- package/dist/controller/leases/agent-sandbox-seeding.d.ts +11 -5
- package/dist/controller/leases/agent-sandbox-seeding.d.ts.map +1 -1
- package/dist/controller/leases/agent-sandbox-seeding.js +28 -20
- package/dist/controller/leases/agent-sandbox-seeding.js.map +1 -1
- package/dist/controller/leases/lease-manager.d.ts +3 -3
- package/dist/controller/leases/lease-manager.d.ts.map +1 -1
- package/dist/controller/leases/lease-manager.js +23 -6
- package/dist/controller/leases/lease-manager.js.map +1 -1
- package/dist/controller/leases/lease-work-mount-paths.d.ts +17 -0
- package/dist/controller/leases/lease-work-mount-paths.d.ts.map +1 -0
- package/dist/controller/leases/lease-work-mount-paths.js +120 -0
- package/dist/controller/leases/lease-work-mount-paths.js.map +1 -0
- package/dist/controller/worker-task-runner.d.ts.map +1 -1
- package/dist/controller/worker-task-runner.js +32 -10
- package/dist/controller/worker-task-runner.js.map +1 -1
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -1
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +13 -0
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -1
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +6 -1
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -1
- package/dist/gateway/gateway-health-check.d.ts +19 -0
- package/dist/gateway/gateway-health-check.d.ts.map +1 -0
- package/dist/gateway/gateway-health-check.js +19 -0
- package/dist/gateway/gateway-health-check.js.map +1 -0
- package/dist/gateway/gateway-image-builder.d.ts.map +1 -1
- package/dist/gateway/gateway-image-builder.js +2 -2
- package/dist/gateway/gateway-image-builder.js.map +1 -1
- package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-orchestrator.js +7 -10
- package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.d.ts +3 -3
- package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.js +12 -12
- package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
- package/package.json +8 -7
- package/dist/controller/leases/lease-workspace-paths.d.ts +0 -14
- package/dist/controller/leases/lease-workspace-paths.d.ts.map +0 -1
- package/dist/controller/leases/lease-workspace-paths.js +0 -104
- package/dist/controller/leases/lease-workspace-paths.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function buildGatewayHealthCommand(healthCheck) {
|
|
2
|
+
return healthCheck.type === 'http'
|
|
3
|
+
? `curl -sS -o /dev/null -w "%{http_code}" --max-time 2 http://127.0.0.1:${healthCheck.port}${healthCheck.path} 2>/dev/null || true`
|
|
4
|
+
: healthCheck.command;
|
|
5
|
+
}
|
|
6
|
+
export async function runGatewayHealthCheck(options) {
|
|
7
|
+
const result = await options.exec(buildGatewayHealthCommand(options.healthCheck));
|
|
8
|
+
const stdout = result.stdout.trim();
|
|
9
|
+
const observation = options.healthCheck.type === 'http' ? `http ${stdout || '(empty)'}` : `exit ${result.exitCode}`;
|
|
10
|
+
const ok = options.healthCheck.type === 'http' ? stdout.startsWith('2') : result.exitCode === 0;
|
|
11
|
+
return {
|
|
12
|
+
exitCode: result.exitCode,
|
|
13
|
+
observation,
|
|
14
|
+
ok,
|
|
15
|
+
stderr: result.stderr,
|
|
16
|
+
stdout: result.stdout,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=gateway-health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-health-check.js","sourceRoot":"","sources":["../../src/gateway/gateway-health-check.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,yBAAyB,CAAC,WAA+B;IACxE,OAAO,WAAW,CAAC,IAAI,KAAK,MAAM;QACjC,CAAC,CAAC,yEAAyE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,sBAAsB;QACpI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAG3C;IACA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,WAAW,GAChB,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;IACjG,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAEhG,OAAO;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW;QACX,EAAE;QACF,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-image-builder.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-image-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gateway-image-builder.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-image-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,EAEN,KAAK,gCAAgC,EACrC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,YAAY,CAAC,CAAC;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;CAC/E;AAMD,wBAAsB,iBAAiB,CACtC,OAAO,EAAE;IACR,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,EACD,YAAY,GAAE,+BAAoC,GAChD,OAAO,CAAC,gBAAgB,CAAC,CAkC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
1
|
import { buildGondolinImage as buildGondolinImageDefault, } from '../build/gondolin-image-builder.js';
|
|
2
|
+
import { loadJsonConfigFile } from '../config/json-config-file.js';
|
|
3
3
|
async function loadBuildConfigFromJson(buildConfigPath) {
|
|
4
|
-
return
|
|
4
|
+
return (await loadJsonConfigFile(buildConfigPath));
|
|
5
5
|
}
|
|
6
6
|
export async function buildGatewayImage(options, dependencies = {}) {
|
|
7
7
|
const buildImage = dependencies.buildImage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-image-builder.js","sourceRoot":"","sources":["../../src/gateway/gateway-image-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gateway-image-builder.js","sourceRoot":"","sources":["../../src/gateway/gateway-image-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,kBAAkB,IAAI,yBAAyB,GAE/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE,KAAK,UAAU,uBAAuB,CAAC,eAAuB;IAC7D,OAAO,CAAC,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAgB,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,OAIC,EACD,eAAgD,EAAE;IAElD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IAC3C,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,uBAAuB,CAAC;QAChF,OAAO,MAAM,yBAAyB,CACrC;YACC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,yBAAyB,EAAE,OAAO,CAAC,yBAAyB;YAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,EACD;YACC,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CACvC,MAAM,UAAU,CAAC;gBAChB,WAAW,EAAE,iBAAiB,CAAC,WAAW;gBAC1C,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;gBACpC,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB;gBACpD,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;YACH,eAAe;SACf,CACD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,yBAAyB,CACrC;QACC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,yBAAyB,EAAE,OAAO,CAAC,yBAAyB;QAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC1B,EACD;QACC,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CACD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-orchestrator.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEN,KAAK,SAAS,EACd,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-zone-orchestrator.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEN,KAAK,SAAS,EACd,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEN,KAAK,+BAA+B,EACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIN,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC;AAQnC,MAAM,WAAW,0BAA2B,SAAQ,+BAA+B;IAClF,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,+BAA+B,CAAC;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3F,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC;IACjG,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CACpC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,oBAAoB,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAiHD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,0BAA+B,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CA6JjC"}
|
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { createManagedVm as createManagedVmFromCore, } from '@agent-vm/gondolin-adapter';
|
|
4
4
|
import { runTaskWithResult } from '../shared/run-task.js';
|
|
5
5
|
import { resolveZoneSecrets } from './credential-manager.js';
|
|
6
|
+
import { runGatewayHealthCheck } from './gateway-health-check.js';
|
|
6
7
|
import { buildGatewayImage, } from './gateway-image-builder.js';
|
|
7
8
|
import { loadGatewayLifecycle } from './gateway-lifecycle-loader.js';
|
|
8
9
|
import { cleanupOrphanedGatewayIfPresent } from './gateway-recovery.js';
|
|
@@ -60,22 +61,18 @@ async function waitForHealth(options) {
|
|
|
60
61
|
});
|
|
61
62
|
throw new Error(`Gateway readiness check failed after ${maxAttempts} attempts over ${formatElapsedSeconds(startedAtMs)}s. Last probe: ${lastObservation}. Gateway process may still be booting, or it may have crashed before opening its health port.${logTail ? `\nGateway log tail (${options.logPath}):\n${logTail}` : ''}`);
|
|
62
63
|
}
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
: options.healthCheck
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
? `http ${result.stdout.trim() || '(empty)'}`
|
|
69
|
-
: `exit ${result.exitCode}`;
|
|
70
|
-
if ((options.healthCheck.type === 'http' && result.stdout.trim().startsWith('2')) ||
|
|
71
|
-
(options.healthCheck.type === 'command' && result.exitCode === 0)) {
|
|
64
|
+
const result = await runGatewayHealthCheck({
|
|
65
|
+
exec: async (command) => await options.managedVm.exec(command),
|
|
66
|
+
healthCheck: options.healthCheck,
|
|
67
|
+
});
|
|
68
|
+
if (result.ok) {
|
|
72
69
|
return;
|
|
73
70
|
}
|
|
74
71
|
await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
|
|
75
72
|
await waitForHealth({
|
|
76
73
|
attempt: attempt + 1,
|
|
77
74
|
healthCheck: options.healthCheck,
|
|
78
|
-
lastObservation:
|
|
75
|
+
lastObservation: result.observation,
|
|
79
76
|
logPath: options.logPath,
|
|
80
77
|
managedVm: options.managedVm,
|
|
81
78
|
maxAttempts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-orchestrator.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EACN,eAAe,IAAI,uBAAuB,GAE1C,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACN,iBAAiB,GAEjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EACN,yBAAyB,EACzB,yBAAyB,GAEzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,eAAe,EACf,mCAAmC,GAKnC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,mCAAmC,GAAG,GAAG,CAAC;AAChD,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,kCAAkC,GAAG,IAAI,CAAC,IAAI,CACnD,gCAAgC,GAAG,mCAAmC,CACtE,CAAC;AAoBF,SAAS,yBAAyB,CAAC,OAGlC;IACA,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/F,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,0BAA0B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,sBAAsB,CACjF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACvD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,2BAA2B,CACnC,QAAgB,EAChB,OAAe,EACf,MAA4B;IAE5B,OAAO,GAAG,QAAQ,qBAAqB,MAAM,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,OAAO,EAAE,CAAC;AAC/K,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAIjC;IACA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAGjC;IACA,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAC1C,cAAc,OAAO,CAAC,OAAO,sBAAsB,CACnD,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAChD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAS5B;IACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mCAAmC,CAAC;IACjF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kCAAkC,CAAC;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC;IAC1D,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACd,wCAAwC,WAAW,kBAAkB,oBAAoB,CAAC,WAAW,CAAC,kBAAkB,eAAe,iGAAiG,OAAO,CAAC,CAAC,CAAC,uBAAuB,OAAO,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/S,CAAC;IACH,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway-zone-orchestrator.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { createManagedVm as createManagedVmFromCore, type ManagedVm, type Pinned
|
|
|
2
2
|
import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
|
|
3
3
|
import type { LoadedSystemConfig } from '../config/system-config.js';
|
|
4
4
|
import type { ToolVmProfile } from '../controller/leases/lease-manager.js';
|
|
5
|
-
import {
|
|
5
|
+
import { validateResolvedToolWorkMountDir as validateResolvedToolWorkMountDirDefault } from '../controller/leases/lease-work-mount-paths.js';
|
|
6
6
|
export interface ToolVmLifecycleDependencies {
|
|
7
7
|
readonly buildGondolinImage?: (options: {
|
|
8
8
|
readonly buildConfigPath: string;
|
|
@@ -13,14 +13,14 @@ export interface ToolVmLifecycleDependencies {
|
|
|
13
13
|
readonly createManagedVm?: typeof createManagedVmFromCore;
|
|
14
14
|
readonly closePinnedRealFsRoot?: (root: PinnedRealFsRoot) => void;
|
|
15
15
|
readonly pinRealFsRoot?: (hostPath: string) => PinnedRealFsRoot;
|
|
16
|
-
readonly
|
|
16
|
+
readonly validateResolvedToolWorkMountDir?: typeof validateResolvedToolWorkMountDirDefault;
|
|
17
17
|
}
|
|
18
18
|
export declare function createToolVm(options: {
|
|
19
19
|
readonly cacheDir: string;
|
|
20
20
|
readonly profile: ToolVmProfile;
|
|
21
21
|
readonly systemConfig: LoadedSystemConfig;
|
|
22
22
|
readonly tcpSlot: number;
|
|
23
|
-
readonly
|
|
23
|
+
readonly hostWorkMountDir: string;
|
|
24
24
|
readonly zoneId: string;
|
|
25
25
|
}, dependencies?: ToolVmLifecycleDependencies): Promise<ManagedVm>;
|
|
26
26
|
//# sourceMappingURL=tool-vm-lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,eAAe,IAAI,uBAAuB,EAE1C,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gCAAgC,IAAI,uCAAuC,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,eAAe,IAAI,uBAAuB,EAE1C,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gCAAgC,IAAI,uCAAuC,EAAE,MAAM,gDAAgD,CAAC;AAE7I,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;QAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC7B,KAAK,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,uBAAuB,CAAC;IAC1D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAChE,QAAQ,CAAC,gCAAgC,CAAC,EAAE,OAAO,uCAAuC,CAAC;CAC3F;AAED,wBAAsB,YAAY,CACjC,OAAO,EAAE;IACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,GAAE,2BAAgC,GAC5C,OAAO,CAAC,SAAS,CAAC,CAkEpB"}
|
|
@@ -2,13 +2,13 @@ import path from 'node:path';
|
|
|
2
2
|
import { buildToolSessionLabel } from '@agent-vm/gateway-interface';
|
|
3
3
|
import { closePinnedRealFsRoot as closePinnedRealFsRootDefault, createManagedVm as createManagedVmFromCore, pinRealFsRoot as pinRealFsRootDefault, } from '@agent-vm/gondolin-adapter';
|
|
4
4
|
import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
|
|
5
|
-
import {
|
|
5
|
+
import { validateResolvedToolWorkMountDir as validateResolvedToolWorkMountDirDefault } from '../controller/leases/lease-work-mount-paths.js';
|
|
6
6
|
export async function createToolVm(options, dependencies = {}) {
|
|
7
7
|
const buildGondolinImage = dependencies.buildGondolinImage ?? buildGondolinImageDefault;
|
|
8
8
|
const createManagedVm = dependencies.createManagedVm ?? createManagedVmFromCore;
|
|
9
9
|
const closePinnedRealFsRoot = dependencies.closePinnedRealFsRoot ?? closePinnedRealFsRootDefault;
|
|
10
10
|
const pinRealFsRoot = dependencies.pinRealFsRoot ?? pinRealFsRootDefault;
|
|
11
|
-
const
|
|
11
|
+
const validateResolvedToolWorkMountDir = dependencies.validateResolvedToolWorkMountDir ?? validateResolvedToolWorkMountDirDefault;
|
|
12
12
|
const zone = options.systemConfig.zones.find((configuredZone) => configuredZone.id === options.zoneId);
|
|
13
13
|
if (!zone) {
|
|
14
14
|
throw new Error(`Zone '${options.zoneId}' is not configured.`);
|
|
@@ -18,8 +18,8 @@ export async function createToolVm(options, dependencies = {}) {
|
|
|
18
18
|
throw new Error(`Tool VM image profile '${options.profile.imageProfile}' is not configured.`);
|
|
19
19
|
}
|
|
20
20
|
// Fail bad lease paths before doing any expensive image work.
|
|
21
|
-
await
|
|
22
|
-
|
|
21
|
+
await validateResolvedToolWorkMountDir({
|
|
22
|
+
hostWorkMountDir: options.hostWorkMountDir,
|
|
23
23
|
zone,
|
|
24
24
|
});
|
|
25
25
|
const toolImage = await buildGondolinImage({
|
|
@@ -29,19 +29,19 @@ export async function createToolVm(options, dependencies = {}) {
|
|
|
29
29
|
});
|
|
30
30
|
// Internal createToolVm callers bypass the /lease route; validate and pin
|
|
31
31
|
// immediately before handing the RealFS root to the VM adapter.
|
|
32
|
-
const
|
|
33
|
-
|
|
32
|
+
const hostWorkMountDirectory = await validateResolvedToolWorkMountDir({
|
|
33
|
+
hostWorkMountDir: options.hostWorkMountDir,
|
|
34
34
|
zone,
|
|
35
35
|
});
|
|
36
|
-
const
|
|
36
|
+
const pinnedWorkMountRoot = pinRealFsRoot(hostWorkMountDirectory);
|
|
37
37
|
try {
|
|
38
|
-
await
|
|
39
|
-
|
|
38
|
+
await validateResolvedToolWorkMountDir({
|
|
39
|
+
hostWorkMountDir: pinnedWorkMountRoot.realPath,
|
|
40
40
|
zone,
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
catch (error) {
|
|
44
|
-
closePinnedRealFsRoot(
|
|
44
|
+
closePinnedRealFsRoot(pinnedWorkMountRoot);
|
|
45
45
|
throw error;
|
|
46
46
|
}
|
|
47
47
|
const toolVm = await createManagedVm({
|
|
@@ -54,9 +54,9 @@ export async function createToolVm(options, dependencies = {}) {
|
|
|
54
54
|
secrets: {},
|
|
55
55
|
vfsMounts: {
|
|
56
56
|
'/work': {
|
|
57
|
-
hostPath:
|
|
57
|
+
hostPath: hostWorkMountDirectory,
|
|
58
58
|
kind: 'realfs',
|
|
59
|
-
pinnedHostRoot:
|
|
59
|
+
pinnedHostRoot: pinnedWorkMountRoot,
|
|
60
60
|
},
|
|
61
61
|
},
|
|
62
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-vm-lifecycle.js","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACN,qBAAqB,IAAI,4BAA4B,EACrD,eAAe,IAAI,uBAAuB,EAC1C,aAAa,IAAI,oBAAoB,GAGrC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAGrG,OAAO,EAAE,gCAAgC,IAAI,uCAAuC,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"tool-vm-lifecycle.js","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-vm/agent-vm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.35",
|
|
4
4
|
"description": "Controller CLI and HTTP server for sandboxed VM coding agents.",
|
|
5
5
|
"homepage": "https://github.com/ShravanSunder/agent-vm#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
"cmd-ts": "^0.14.0",
|
|
37
37
|
"execa": "^9.5.2",
|
|
38
38
|
"hono": "^4.12.14",
|
|
39
|
+
"jsonc-parser": "^3.3.1",
|
|
39
40
|
"tasuku": "^2.3.0",
|
|
40
41
|
"zod": "^4",
|
|
41
|
-
"@agent-vm/agent-vm-worker": "0.0.
|
|
42
|
-
"@agent-vm/gondolin-adapter": "0.0.
|
|
43
|
-
"@agent-vm/
|
|
44
|
-
"@agent-vm/worker-gateway": "0.0.
|
|
45
|
-
"@agent-vm/openclaw-agent-vm-plugin": "0.0.
|
|
46
|
-
"@agent-vm/gateway
|
|
42
|
+
"@agent-vm/agent-vm-worker": "0.0.35",
|
|
43
|
+
"@agent-vm/gondolin-adapter": "0.0.35",
|
|
44
|
+
"@agent-vm/gateway-interface": "0.0.35",
|
|
45
|
+
"@agent-vm/worker-gateway": "0.0.35",
|
|
46
|
+
"@agent-vm/openclaw-agent-vm-plugin": "0.0.35",
|
|
47
|
+
"@agent-vm/openclaw-gateway": "0.0.35"
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|
|
49
50
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { SystemConfig } from '../../config/system-config.js';
|
|
2
|
-
type ZoneConfig = SystemConfig['zones'][number];
|
|
3
|
-
export declare class LeaseWorkspaceValidationError extends Error {
|
|
4
|
-
}
|
|
5
|
-
export declare function validateResolvedToolWorkspaceDir(options: {
|
|
6
|
-
readonly workspaceDir: string;
|
|
7
|
-
readonly zone: ZoneConfig;
|
|
8
|
-
}): Promise<string>;
|
|
9
|
-
export declare function resolveLeaseWorkspaceDir(options: {
|
|
10
|
-
readonly workspaceDir: string;
|
|
11
|
-
readonly zone: ZoneConfig;
|
|
12
|
-
}): Promise<string>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=lease-workspace-paths.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lease-workspace-paths.d.ts","sourceRoot":"","sources":["../../../src/controller/leases/lease-workspace-paths.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQlE,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,qBAAa,6BAA8B,SAAQ,KAAK;CAAG;AA8E3D,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsClB"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { realpath } from 'node:fs/promises';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
// These guest roots are mounted by the OpenClaw gateway image. Lease callers
|
|
4
|
-
// must speak in gateway paths; the controller owns translation to host paths.
|
|
5
|
-
const OPENCLAW_STATE_VM_ROOT = '/home/openclaw/.openclaw/state';
|
|
6
|
-
const OPENCLAW_STATE_SANDBOXES_VM_ROOT = `${OPENCLAW_STATE_VM_ROOT}/sandboxes`;
|
|
7
|
-
const OPENCLAW_ZONE_FILES_VM_ROOT = '/zone';
|
|
8
|
-
export class LeaseWorkspaceValidationError extends Error {
|
|
9
|
-
}
|
|
10
|
-
function pathContainsParentTraversal(inputPath) {
|
|
11
|
-
return inputPath.split(/[\\/]+/u).includes('..');
|
|
12
|
-
}
|
|
13
|
-
function isPathWithin(candidatePath, rootPath) {
|
|
14
|
-
const relativePath = path.relative(rootPath, candidatePath);
|
|
15
|
-
return relativePath === '' || (!relativePath.startsWith('..') && !path.isAbsolute(relativePath));
|
|
16
|
-
}
|
|
17
|
-
function mapGuestPathToHostPath(options) {
|
|
18
|
-
const normalizedWorkspaceDir = path.posix.normalize(options.workspaceDir);
|
|
19
|
-
if (normalizedWorkspaceDir !== options.guestRoot &&
|
|
20
|
-
!normalizedWorkspaceDir.startsWith(`${options.guestRoot}/`)) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
const relativePath = path.posix.relative(options.guestRoot, normalizedWorkspaceDir);
|
|
24
|
-
return path.join(options.hostRoot, relativePath);
|
|
25
|
-
}
|
|
26
|
-
async function realpathIfDirectory(directoryPath) {
|
|
27
|
-
try {
|
|
28
|
-
return await realpath(directoryPath);
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
const code = error && typeof error === 'object' && 'code' in error ? String(error.code) : 'UNKNOWN';
|
|
32
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
33
|
-
throw new LeaseWorkspaceValidationError(`Lease workspace path '${directoryPath}' failed directory realpath check (${code}): ${message}`, { cause: error });
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async function realpathAllowedRoot(directoryPath) {
|
|
37
|
-
try {
|
|
38
|
-
return await realpath(directoryPath);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
async function validateResolvedLeaseWorkspaceDir(options) {
|
|
48
|
-
if (options.zone.gateway.type !== 'openclaw') {
|
|
49
|
-
throw new LeaseWorkspaceValidationError(`Zone '${options.zone.id}' does not support OpenClaw tool VM leases.`);
|
|
50
|
-
}
|
|
51
|
-
const hostSandboxRoot = path.join(options.zone.gateway.stateDir, 'sandboxes');
|
|
52
|
-
const [realCandidatePath, realSandboxRoot, realZoneFilesRoot] = await Promise.all([
|
|
53
|
-
realpathIfDirectory(options.workspaceDir),
|
|
54
|
-
realpathAllowedRoot(hostSandboxRoot),
|
|
55
|
-
realpathAllowedRoot(options.zone.gateway.zoneFilesDir),
|
|
56
|
-
]);
|
|
57
|
-
const allowedRoots = [realSandboxRoot, realZoneFilesRoot].filter((root) => root !== null);
|
|
58
|
-
if (!allowedRoots.some((root) => isPathWithin(realCandidatePath, root))) {
|
|
59
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' resolves outside allowed OpenClaw tool workspace roots for zone '${options.zone.id}'.`);
|
|
60
|
-
}
|
|
61
|
-
return realCandidatePath;
|
|
62
|
-
}
|
|
63
|
-
export async function validateResolvedToolWorkspaceDir(options) {
|
|
64
|
-
if (options.zone.gateway.type !== 'openclaw') {
|
|
65
|
-
throw new LeaseWorkspaceValidationError(`Zone '${options.zone.id}' does not support OpenClaw tool VM leases.`);
|
|
66
|
-
}
|
|
67
|
-
if (!path.isAbsolute(options.workspaceDir)) {
|
|
68
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' must be absolute.`);
|
|
69
|
-
}
|
|
70
|
-
if (pathContainsParentTraversal(options.workspaceDir)) {
|
|
71
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' must not contain '..' path segments.`);
|
|
72
|
-
}
|
|
73
|
-
return await validateResolvedLeaseWorkspaceDir(options);
|
|
74
|
-
}
|
|
75
|
-
export async function resolveLeaseWorkspaceDir(options) {
|
|
76
|
-
if (options.zone.gateway.type !== 'openclaw') {
|
|
77
|
-
throw new LeaseWorkspaceValidationError(`Zone '${options.zone.id}' does not support OpenClaw tool VM leases.`);
|
|
78
|
-
}
|
|
79
|
-
if (!path.isAbsolute(options.workspaceDir)) {
|
|
80
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' must be absolute.`);
|
|
81
|
-
}
|
|
82
|
-
if (pathContainsParentTraversal(options.workspaceDir)) {
|
|
83
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' must not contain '..' path segments.`);
|
|
84
|
-
}
|
|
85
|
-
const hostSandboxRoot = path.join(options.zone.gateway.stateDir, 'sandboxes');
|
|
86
|
-
const candidatePath = mapGuestPathToHostPath({
|
|
87
|
-
guestRoot: OPENCLAW_STATE_SANDBOXES_VM_ROOT,
|
|
88
|
-
hostRoot: hostSandboxRoot,
|
|
89
|
-
workspaceDir: options.workspaceDir,
|
|
90
|
-
}) ??
|
|
91
|
-
mapGuestPathToHostPath({
|
|
92
|
-
guestRoot: OPENCLAW_ZONE_FILES_VM_ROOT,
|
|
93
|
-
hostRoot: options.zone.gateway.zoneFilesDir,
|
|
94
|
-
workspaceDir: options.workspaceDir,
|
|
95
|
-
});
|
|
96
|
-
if (!candidatePath) {
|
|
97
|
-
throw new LeaseWorkspaceValidationError(`Lease workspaceDir '${options.workspaceDir}' must be under ${OPENCLAW_STATE_SANDBOXES_VM_ROOT} or ${OPENCLAW_ZONE_FILES_VM_ROOT}.`);
|
|
98
|
-
}
|
|
99
|
-
return await validateResolvedLeaseWorkspaceDir({
|
|
100
|
-
workspaceDir: candidatePath,
|
|
101
|
-
zone: options.zone,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=lease-workspace-paths.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lease-workspace-paths.js","sourceRoot":"","sources":["../../../src/controller/leases/lease-workspace-paths.ts"],"names":[],"mappings":"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"}
|