@agent-vm/agent-vm 0.0.31 → 0.0.33

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 (190) hide show
  1. package/dist/backup/backup-create-operation.d.ts +3 -1
  2. package/dist/backup/backup-create-operation.d.ts.map +1 -1
  3. package/dist/backup/backup-create-operation.js +49 -14
  4. package/dist/backup/backup-create-operation.js.map +1 -1
  5. package/dist/backup/backup-manager.d.ts +8 -6
  6. package/dist/backup/backup-manager.d.ts.map +1 -1
  7. package/dist/backup/backup-manager.js +7 -5
  8. package/dist/backup/backup-manager.js.map +1 -1
  9. package/dist/backup/backup-restore-operation.d.ts +1 -1
  10. package/dist/backup/backup-restore-operation.d.ts.map +1 -1
  11. package/dist/backup/backup-restore-operation.js +13 -9
  12. package/dist/backup/backup-restore-operation.js.map +1 -1
  13. package/dist/build/docker-image-builder.d.ts.map +1 -1
  14. package/dist/build/docker-image-builder.js +12 -6
  15. package/dist/build/docker-image-builder.js.map +1 -1
  16. package/dist/cli/backup-commands.d.ts.map +1 -1
  17. package/dist/cli/backup-commands.js +4 -2
  18. package/dist/cli/backup-commands.js.map +1 -1
  19. package/dist/cli/commands/controller-definition.d.ts +96 -78
  20. package/dist/cli/commands/controller-definition.d.ts.map +1 -1
  21. package/dist/cli/commands/controller-definition.js +20 -0
  22. package/dist/cli/commands/controller-definition.js.map +1 -1
  23. package/dist/cli/commands/create-app.d.ts +96 -78
  24. package/dist/cli/commands/create-app.d.ts.map +1 -1
  25. package/dist/cli/commands/init-definition.d.ts.map +1 -1
  26. package/dist/cli/commands/init-definition.js +3 -1
  27. package/dist/cli/commands/init-definition.js.map +1 -1
  28. package/dist/cli/commands/paths-definition.d.ts.map +1 -1
  29. package/dist/cli/commands/paths-definition.js +9 -4
  30. package/dist/cli/commands/paths-definition.js.map +1 -1
  31. package/dist/cli/controller-operation-commands.d.ts.map +1 -1
  32. package/dist/cli/controller-operation-commands.js +70 -11
  33. package/dist/cli/controller-operation-commands.js.map +1 -1
  34. package/dist/cli/init-command.d.ts.map +1 -1
  35. package/dist/cli/init-command.js +57 -35
  36. package/dist/cli/init-command.js.map +1 -1
  37. package/dist/cli/lease-commands.d.ts.map +1 -1
  38. package/dist/cli/lease-commands.js +8 -0
  39. package/dist/cli/lease-commands.js.map +1 -1
  40. package/dist/cli/run-task.js +1 -1
  41. package/dist/cli/vm-host-system-templates.d.ts +1 -0
  42. package/dist/cli/vm-host-system-templates.d.ts.map +1 -1
  43. package/dist/cli/vm-host-system-templates.js +2 -2
  44. package/dist/cli/vm-host-system-templates.js.map +1 -1
  45. package/dist/config/system-config.d.ts +57 -13
  46. package/dist/config/system-config.d.ts.map +1 -1
  47. package/dist/config/system-config.js +181 -32
  48. package/dist/config/system-config.js.map +1 -1
  49. package/dist/controller/active-task-registry.d.ts +18 -3
  50. package/dist/controller/active-task-registry.d.ts.map +1 -1
  51. package/dist/controller/active-task-registry.js +33 -2
  52. package/dist/controller/active-task-registry.js.map +1 -1
  53. package/dist/controller/controller-runtime-operations.d.ts +15 -31
  54. package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
  55. package/dist/controller/controller-runtime-operations.js +17 -92
  56. package/dist/controller/controller-runtime-operations.js.map +1 -1
  57. package/dist/controller/controller-runtime-types.d.ts +16 -11
  58. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  59. package/dist/controller/controller-runtime.d.ts.map +1 -1
  60. package/dist/controller/controller-runtime.js +126 -231
  61. package/dist/controller/controller-runtime.js.map +1 -1
  62. package/dist/controller/git-pull-default-operations.d.ts +101 -9
  63. package/dist/controller/git-pull-default-operations.d.ts.map +1 -1
  64. package/dist/controller/git-pull-default-operations.js +405 -68
  65. package/dist/controller/git-pull-default-operations.js.map +1 -1
  66. package/dist/controller/git-push-operations.d.ts +2 -0
  67. package/dist/controller/git-push-operations.d.ts.map +1 -1
  68. package/dist/controller/git-push-operations.js +267 -76
  69. package/dist/controller/git-push-operations.js.map +1 -1
  70. package/dist/controller/git-retry-support.d.ts +21 -0
  71. package/dist/controller/git-retry-support.d.ts.map +1 -0
  72. package/dist/controller/git-retry-support.js +60 -0
  73. package/dist/controller/git-retry-support.js.map +1 -0
  74. package/dist/controller/http/controller-client.d.ts +2 -0
  75. package/dist/controller/http/controller-client.d.ts.map +1 -1
  76. package/dist/controller/http/controller-client.js +13 -0
  77. package/dist/controller/http/controller-client.js.map +1 -1
  78. package/dist/controller/http/controller-http-route-support.d.ts +9 -4
  79. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
  80. package/dist/controller/http/controller-http-route-support.js +17 -1
  81. package/dist/controller/http/controller-http-route-support.js.map +1 -1
  82. package/dist/controller/http/controller-http-routes.d.ts +10 -3
  83. package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
  84. package/dist/controller/http/controller-http-routes.js +88 -15
  85. package/dist/controller/http/controller-http-routes.js.map +1 -1
  86. package/dist/controller/http/controller-lease-response-types.d.ts +17 -0
  87. package/dist/controller/http/controller-lease-response-types.d.ts.map +1 -0
  88. package/dist/controller/http/controller-lease-response-types.js +16 -0
  89. package/dist/controller/http/controller-lease-response-types.js.map +1 -0
  90. package/dist/controller/http/controller-request-schemas.d.ts +84 -13
  91. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
  92. package/dist/controller/http/controller-request-schemas.js +110 -9
  93. package/dist/controller/http/controller-request-schemas.js.map +1 -1
  94. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
  95. package/dist/controller/http/controller-zone-operation-routes.js +140 -14
  96. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
  97. package/dist/controller/leases/agent-sandbox-seeding.d.ts +55 -0
  98. package/dist/controller/leases/agent-sandbox-seeding.d.ts.map +1 -0
  99. package/dist/controller/leases/agent-sandbox-seeding.js +178 -0
  100. package/dist/controller/leases/agent-sandbox-seeding.js.map +1 -0
  101. package/dist/controller/leases/idle-reaper.d.ts +7 -2
  102. package/dist/controller/leases/idle-reaper.d.ts.map +1 -1
  103. package/dist/controller/leases/idle-reaper.js +19 -7
  104. package/dist/controller/leases/idle-reaper.js.map +1 -1
  105. package/dist/controller/leases/lease-idle-policy.d.ts +12 -0
  106. package/dist/controller/leases/lease-idle-policy.d.ts.map +1 -0
  107. package/dist/controller/leases/lease-idle-policy.js +28 -0
  108. package/dist/controller/leases/lease-idle-policy.js.map +1 -0
  109. package/dist/controller/leases/lease-manager.d.ts +21 -12
  110. package/dist/controller/leases/lease-manager.d.ts.map +1 -1
  111. package/dist/controller/leases/lease-manager.js +155 -57
  112. package/dist/controller/leases/lease-manager.js.map +1 -1
  113. package/dist/controller/leases/lease-scope.d.ts +12 -0
  114. package/dist/controller/leases/lease-scope.d.ts.map +1 -0
  115. package/dist/controller/leases/lease-scope.js +19 -0
  116. package/dist/controller/leases/lease-scope.js.map +1 -0
  117. package/dist/controller/leases/lease-workspace-paths.d.ts +14 -0
  118. package/dist/controller/leases/lease-workspace-paths.d.ts.map +1 -0
  119. package/dist/controller/leases/lease-workspace-paths.js +104 -0
  120. package/dist/controller/leases/lease-workspace-paths.js.map +1 -0
  121. package/dist/controller/runtime-instructions-builder.d.ts +1 -2
  122. package/dist/controller/runtime-instructions-builder.d.ts.map +1 -1
  123. package/dist/controller/runtime-instructions-builder.js +8 -9
  124. package/dist/controller/runtime-instructions-builder.js.map +1 -1
  125. package/dist/controller/task-config-builder.d.ts +2 -1
  126. package/dist/controller/task-config-builder.d.ts.map +1 -1
  127. package/dist/controller/task-config-builder.js +2 -1
  128. package/dist/controller/task-config-builder.js.map +1 -1
  129. package/dist/controller/worker-task-runner.d.ts +10 -4
  130. package/dist/controller/worker-task-runner.d.ts.map +1 -1
  131. package/dist/controller/worker-task-runner.js +147 -44
  132. package/dist/controller/worker-task-runner.js.map +1 -1
  133. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts +30 -0
  134. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -0
  135. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +110 -0
  136. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -0
  137. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts +33 -0
  138. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts.map +1 -0
  139. package/dist/controller/zone-runtimes/worker-zone-runtime.js +224 -0
  140. package/dist/controller/zone-runtimes/worker-zone-runtime.js.map +1 -0
  141. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts +51 -0
  142. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts.map +1 -0
  143. package/dist/controller/zone-runtimes/zone-runtime-errors.js +94 -0
  144. package/dist/controller/zone-runtimes/zone-runtime-errors.js.map +1 -0
  145. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts +26 -0
  146. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts.map +1 -0
  147. package/dist/controller/zone-runtimes/zone-runtime-registry.js +84 -0
  148. package/dist/controller/zone-runtimes/zone-runtime-registry.js.map +1 -0
  149. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +89 -0
  150. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -0
  151. package/dist/controller/zone-runtimes/zone-runtime-types.js +2 -0
  152. package/dist/controller/zone-runtimes/zone-runtime-types.js.map +1 -0
  153. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
  154. package/dist/gateway/gateway-zone-orchestrator.js +4 -2
  155. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
  156. package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
  157. package/dist/gateway/gateway-zone-support.js +22 -11
  158. package/dist/gateway/gateway-zone-support.js.map +1 -1
  159. package/dist/index.d.ts +1 -0
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +1 -0
  162. package/dist/index.js.map +1 -1
  163. package/dist/operations/config-validation.d.ts +1 -0
  164. package/dist/operations/config-validation.d.ts.map +1 -1
  165. package/dist/operations/config-validation.js +55 -5
  166. package/dist/operations/config-validation.js.map +1 -1
  167. package/dist/operations/controller-status.d.ts +13 -8
  168. package/dist/operations/controller-status.d.ts.map +1 -1
  169. package/dist/operations/controller-status.js +13 -10
  170. package/dist/operations/controller-status.js.map +1 -1
  171. package/dist/operations/destroy-zone.d.ts.map +1 -1
  172. package/dist/operations/destroy-zone.js +8 -1
  173. package/dist/operations/destroy-zone.js.map +1 -1
  174. package/dist/operations/doctor.d.ts +4 -0
  175. package/dist/operations/doctor.d.ts.map +1 -1
  176. package/dist/operations/doctor.js +187 -6
  177. package/dist/operations/doctor.js.map +1 -1
  178. package/dist/operations/runtime-config-paths.d.ts +4 -0
  179. package/dist/operations/runtime-config-paths.d.ts.map +1 -0
  180. package/dist/operations/runtime-config-paths.js +6 -0
  181. package/dist/operations/runtime-config-paths.js.map +1 -0
  182. package/dist/perf/gondolin-vfs-benchmark-support.d.ts +28 -0
  183. package/dist/perf/gondolin-vfs-benchmark-support.d.ts.map +1 -0
  184. package/dist/perf/gondolin-vfs-benchmark-support.js +50 -0
  185. package/dist/perf/gondolin-vfs-benchmark-support.js.map +1 -0
  186. package/dist/tool-vm/tool-vm-lifecycle.d.ts +7 -9
  187. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  188. package/dist/tool-vm/tool-vm-lifecycle.js +32 -27
  189. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
  190. package/package.json +7 -7
@@ -1,3 +1,4 @@
1
+ import type { BuildGatewayVmSpecOptions, GatewayVmSpec } from '@agent-vm/gateway-interface';
1
2
  import type { LoadedSystemConfig, SystemConfig } from '../config/system-config.js';
2
3
  export interface DoctorCheck {
3
4
  readonly name: string;
@@ -15,6 +16,7 @@ export interface RunControllerDoctorOptions {
15
16
  readonly requiredZigVersion?: string;
16
17
  readonly systemConfig: SystemConfig;
17
18
  readonly totalMemoryBytes?: number;
19
+ readonly workerGatewayVmSpecBuilder?: (options: BuildGatewayVmSpecOptions) => Pick<GatewayVmSpec, 'vfsMounts'>;
18
20
  readonly zigVersion?: string;
19
21
  }
20
22
  export interface ControllerDoctorResult {
@@ -24,6 +26,8 @@ export interface ControllerDoctorResult {
24
26
  export declare function isVersionAtLeast(version: string, minimumVersion: string): boolean;
25
27
  export declare function buildZigInstallHint(requiredZigVersion: string | undefined): string;
26
28
  export declare function buildZigUpgradeHint(requiredZigVersion: string): string;
29
+ export declare function buildRuntimePathIsolationChecks(systemConfig: SystemConfig): readonly DoctorCheck[];
30
+ export declare function buildRuntimePathIsolationCheck(systemConfig: SystemConfig): DoctorCheck;
27
31
  export declare function collectVmHostSystemDoctorCheck(systemConfig: LoadedSystemConfig): Promise<DoctorCheck | null>;
28
32
  export declare function runControllerDoctor(options: RunControllerDoctorOptions): ControllerDoctorResult;
29
33
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEnF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAC/B;AA8BD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAgBjF;AAED,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIlF;AAED,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAEtE;AAiGD,wBAAsB,8BAA8B,CACnD,YAAY,EAAE,kBAAkB,GAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAsC7B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAqK/F"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,yBAAyB,EACzB,aAAa,EAEb,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGnF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CACrC,OAAO,EAAE,yBAAyB,KAC9B,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAC/B;AA8BD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAgBjF;AAED,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIlF;AAED,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAEtE;AA4GD,wBAAgB,+BAA+B,CAC9C,YAAY,EAAE,YAAY,GACxB,SAAS,WAAW,EAAE,CAqCxB;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,YAAY,GAAG,WAAW,CAQtF;AAgHD,wBAAsB,8BAA8B,CACnD,YAAY,EAAE,kBAAkB,GAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqE7B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAiL/F"}
@@ -1,6 +1,8 @@
1
- import fs from 'node:fs/promises';
1
+ import { access } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
+ import { workerLifecycle } from '@agent-vm/worker-gateway';
3
4
  import { loadSystemCacheIdentifier } from '../config/system-cache-identifier.js';
5
+ import { isRuntimeSystemConfigPath } from './runtime-config-paths.js';
4
6
  function checkAnyBinary(name, binaryNames, installHint, availableBinaries) {
5
7
  const foundBinary = binaryNames.find((binaryName) => availableBinaries.has(binaryName));
6
8
  return {
@@ -121,6 +123,147 @@ function buildOpenClawCliCheck(systemConfig, availableBinaries) {
121
123
  },
122
124
  ];
123
125
  }
126
+ function isSameOrDescendantPath(childPath, parentPath) {
127
+ const relativePath = path.relative(path.resolve(parentPath), path.resolve(childPath));
128
+ return relativePath === '' || (!relativePath.startsWith('..') && !path.isAbsolute(relativePath));
129
+ }
130
+ function pathsOverlap(firstPath, secondPath) {
131
+ return (isSameOrDescendantPath(firstPath, secondPath) || isSameOrDescendantPath(secondPath, firstPath));
132
+ }
133
+ export function buildRuntimePathIsolationChecks(systemConfig) {
134
+ const failedChecks = [];
135
+ if (pathsOverlap(systemConfig.runtimeDir, systemConfig.cacheDir)) {
136
+ failedChecks.push({
137
+ name: 'runtime-path-isolation-cacheDir',
138
+ ok: false,
139
+ hint: 'runtimeDir must not overlap cacheDir',
140
+ });
141
+ }
142
+ for (const zone of systemConfig.zones) {
143
+ if (pathsOverlap(systemConfig.runtimeDir, zone.gateway.stateDir)) {
144
+ failedChecks.push({
145
+ name: `runtime-path-isolation-stateDir-${zone.id}`,
146
+ ok: false,
147
+ hint: `runtimeDir must not overlap stateDir for zone '${zone.id}'`,
148
+ });
149
+ }
150
+ if (zone.gateway.type === 'openclaw' &&
151
+ pathsOverlap(systemConfig.runtimeDir, zone.gateway.zoneFilesDir)) {
152
+ failedChecks.push({
153
+ name: `runtime-path-isolation-zoneFilesDir-${zone.id}`,
154
+ ok: false,
155
+ hint: `runtimeDir must not overlap zoneFilesDir for zone '${zone.id}'`,
156
+ });
157
+ }
158
+ }
159
+ return failedChecks.length > 0
160
+ ? failedChecks
161
+ : [
162
+ {
163
+ name: 'runtime-path-isolation',
164
+ ok: true,
165
+ hint: systemConfig.runtimeDir,
166
+ },
167
+ ];
168
+ }
169
+ export function buildRuntimePathIsolationCheck(systemConfig) {
170
+ return (buildRuntimePathIsolationChecks(systemConfig)[0] ?? {
171
+ name: 'runtime-path-isolation',
172
+ ok: true,
173
+ hint: systemConfig.runtimeDir,
174
+ });
175
+ }
176
+ function isWorkerRootfsWorkMountPath(guestPath) {
177
+ return guestPath === '/work' || guestPath.startsWith('/work/');
178
+ }
179
+ function buildWorkerWorkRootfsChecks(systemConfig, buildWorkerVmSpec) {
180
+ return systemConfig.zones
181
+ .filter((zone) => zone.gateway.type === 'worker')
182
+ .map((zone) => {
183
+ const gatewayZone = {
184
+ id: zone.id,
185
+ gateway: {
186
+ type: 'worker',
187
+ cpus: zone.gateway.cpus,
188
+ config: zone.gateway.config,
189
+ memory: zone.gateway.memory,
190
+ port: zone.gateway.port,
191
+ stateDir: zone.gateway.stateDir,
192
+ ...(zone.gateway.authProfilesRef
193
+ ? { authProfilesRef: zone.gateway.authProfilesRef }
194
+ : {}),
195
+ },
196
+ secrets: zone.secrets,
197
+ allowedHosts: zone.allowedHosts,
198
+ websocketBypass: zone.websocketBypass,
199
+ };
200
+ const vmSpec = buildWorkerVmSpec({
201
+ controllerPort: systemConfig.host.controllerPort,
202
+ gatewayCacheDir: systemConfig.cacheDir,
203
+ projectNamespace: systemConfig.host.projectNamespace,
204
+ resolvedSecrets: {},
205
+ tcpPool: systemConfig.tcpPool,
206
+ zone: gatewayZone,
207
+ });
208
+ const vfsWorkMount = Object.keys(vmSpec.vfsMounts).find(isWorkerRootfsWorkMountPath);
209
+ if (vfsWorkMount) {
210
+ return {
211
+ name: `worker-work-rootfs-${zone.id}`,
212
+ ok: false,
213
+ hint: `Worker zone '${zone.id}' mounts '${vfsWorkMount}' through VFS; /work must stay on rootfs/COW.`,
214
+ };
215
+ }
216
+ return {
217
+ name: `worker-work-rootfs-${zone.id}`,
218
+ ok: true,
219
+ hint: '/work stays on rootfs/COW',
220
+ };
221
+ });
222
+ }
223
+ function buildZoneToolVmProfileChecks(systemConfig) {
224
+ return systemConfig.zones.flatMap((zone) => {
225
+ if (zone.gateway.type !== 'openclaw') {
226
+ return [];
227
+ }
228
+ const agentToolVmProfileChecks = Object.entries(zone.agentToolVmProfiles ?? {}).map(([agentId, toolVmProfileId]) => ({
229
+ name: `zone-agent-tool-vm-profile-${zone.id}-${agentId}`,
230
+ ok: true,
231
+ hint: toolVmProfileId,
232
+ }));
233
+ return [
234
+ zone.defaultToolVmProfile
235
+ ? {
236
+ name: `zone-default-tool-vm-profile-${zone.id}`,
237
+ ok: true,
238
+ hint: zone.defaultToolVmProfile,
239
+ }
240
+ : {
241
+ name: `zone-default-tool-vm-profile-${zone.id}`,
242
+ ok: false,
243
+ hint: 'missing defaultToolVmProfile',
244
+ },
245
+ ...agentToolVmProfileChecks,
246
+ ];
247
+ });
248
+ }
249
+ function buildOpenClawAgentSetupChecks(systemConfig) {
250
+ return systemConfig.zones.flatMap((zone) => {
251
+ if (zone.gateway.type !== 'openclaw') {
252
+ return [];
253
+ }
254
+ const authProfileChecks = Object.keys(zone.gateway.authProfilesByAgent ?? {}).map((agentId) => ({
255
+ name: `zone-agent-auth-profile-${zone.id}-${agentId}`,
256
+ ok: true,
257
+ hint: 'configured',
258
+ }));
259
+ const sandboxSeedChecks = Object.entries(zone.agentSandboxSeeds ?? {}).flatMap(([agentId, seeds]) => seeds.map((seed, seedIndex) => ({
260
+ name: `zone-agent-sandbox-seed-${zone.id}-${agentId}-${String(seedIndex)}`,
261
+ ok: true,
262
+ hint: seed.target,
263
+ })));
264
+ return [...authProfileChecks, ...sandboxSeedChecks];
265
+ });
266
+ }
124
267
  export async function collectVmHostSystemDoctorCheck(systemConfig) {
125
268
  let identifier;
126
269
  try {
@@ -128,25 +271,56 @@ export async function collectVmHostSystemDoctorCheck(systemConfig) {
128
271
  filePath: systemConfig.systemCacheIdentifierPath,
129
272
  });
130
273
  }
131
- catch {
132
- return null;
274
+ catch (error) {
275
+ const message = error instanceof Error ? error.message : String(error);
276
+ return {
277
+ name: 'vm-host-system',
278
+ ok: false,
279
+ hint: `Cannot read ${systemConfig.systemCacheIdentifierPath}: ${message}`,
280
+ };
133
281
  }
134
282
  if (!isObjectRecord(identifier) || identifier.hostSystemType !== 'container') {
135
283
  return null;
136
284
  }
285
+ if (isRuntimeSystemConfigPath(systemConfig)) {
286
+ const requiredRuntimeFiles = [
287
+ '/usr/local/bin/start.sh',
288
+ '/etc/systemd/system/agent-vm-controller.service',
289
+ ];
290
+ for (const requiredRuntimeFile of requiredRuntimeFiles) {
291
+ try {
292
+ // oxlint-disable-next-line no-await-in-loop -- report the first missing file in stable order
293
+ await access(requiredRuntimeFile);
294
+ }
295
+ catch (error) {
296
+ const message = error instanceof Error ? error.message : String(error);
297
+ return {
298
+ name: 'vm-host-system',
299
+ ok: false,
300
+ hint: `Cannot access ${requiredRuntimeFile}: ${message}`,
301
+ };
302
+ }
303
+ }
304
+ return {
305
+ name: 'vm-host-system',
306
+ ok: true,
307
+ hint: '/etc/agent-vm runtime host files',
308
+ };
309
+ }
137
310
  const vmHostSystemPath = path.resolve(path.dirname(systemConfig.systemConfigPath), '..', 'vm-host-system');
138
311
  const requiredFiles = ['Dockerfile', 'start.sh', 'agent-vm-controller.service'];
139
312
  for (const requiredFile of requiredFiles) {
140
313
  const requiredFilePath = path.join(vmHostSystemPath, requiredFile);
141
314
  try {
142
315
  // oxlint-disable-next-line no-await-in-loop -- report the first missing file in stable order
143
- await fs.access(requiredFilePath);
316
+ await access(requiredFilePath);
144
317
  }
145
- catch {
318
+ catch (error) {
319
+ const message = error instanceof Error ? error.message : String(error);
146
320
  return {
147
321
  name: 'vm-host-system',
148
322
  ok: false,
149
- hint: `Missing ${requiredFilePath}`,
323
+ hint: `Cannot access ${requiredFilePath}: ${message}`,
150
324
  };
151
325
  }
152
326
  }
@@ -164,6 +338,9 @@ export function runControllerDoctor(options) {
164
338
  const availableBinaries = options.availableBinaries ?? new Set();
165
339
  const dockerChecks = buildDockerChecks(options.systemConfig, availableBinaries, options.dockerDaemonReady);
166
340
  const openClawCliChecks = buildOpenClawCliCheck(options.systemConfig, availableBinaries);
341
+ const workerGatewayVmSpecBuilder = options.workerGatewayVmSpecBuilder ??
342
+ ((buildOptions) => workerLifecycle.buildVmSpec(buildOptions));
343
+ const workerWorkRootfsChecks = buildWorkerWorkRootfsChecks(options.systemConfig, workerGatewayVmSpecBuilder);
167
344
  const configuredGatewayBytes = options.systemConfig.zones.reduce((totalBytes, zone) => {
168
345
  const memoryMatch = /^(\d+)([GgMm])$/u.exec(zone.gateway.memory);
169
346
  if (!memoryMatch) {
@@ -232,6 +409,8 @@ export function runControllerDoctor(options) {
232
409
  checkAnyBinary('lz4', ['lz4'], 'Install lz4 (for example: brew install lz4).', availableBinaries),
233
410
  ...dockerChecks,
234
411
  ...openClawCliChecks,
412
+ ...buildRuntimePathIsolationChecks(options.systemConfig),
413
+ ...workerWorkRootfsChecks,
235
414
  {
236
415
  name: 'controller-port',
237
416
  ok: options.systemConfig.host.controllerPort > 0 &&
@@ -252,6 +431,8 @@ export function runControllerDoctor(options) {
252
431
  name: `tool-vm-image-profile-${profileName}`,
253
432
  ok: true,
254
433
  })),
434
+ ...buildZoneToolVmProfileChecks(options.systemConfig),
435
+ ...buildOpenClawAgentSetupChecks(options.systemConfig),
255
436
  ...options.systemConfig.zones.map((zone) => ({
256
437
  name: `gateway-image-profile-selected-${zone.id}`,
257
438
  ok: true,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { LoadedSystemConfig } from '../config/system-config.js';
2
+ export declare const runtimeConfigRoot = "/etc/agent-vm";
3
+ export declare function isRuntimeSystemConfigPath(systemConfig: LoadedSystemConfig): boolean;
4
+ //# sourceMappingURL=runtime-config-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-config-paths.d.ts","sourceRoot":"","sources":["../../src/operations/runtime-config-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAInF"}
@@ -0,0 +1,6 @@
1
+ import path from 'node:path';
2
+ export const runtimeConfigRoot = '/etc/agent-vm';
3
+ export function isRuntimeSystemConfigPath(systemConfig) {
4
+ return (path.resolve(systemConfig.systemConfigPath) === path.join(runtimeConfigRoot, 'system.json'));
5
+ }
6
+ //# sourceMappingURL=runtime-config-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-config-paths.js","sourceRoot":"","sources":["../../src/operations/runtime-config-paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,YAAgC;IACzE,OAAO,CACN,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAC3F,CAAC;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ export interface BenchmarkSampleTiming {
2
+ readonly largeWriteMs: number;
3
+ readonly smallReadMs: number;
4
+ readonly smallWriteMs: number;
5
+ }
6
+ export interface BenchmarkSampleSummary {
7
+ readonly largeWriteMs: number;
8
+ readonly largeWriteMsMax: number;
9
+ readonly largeWriteMsMin: number;
10
+ readonly smallReadMs: number;
11
+ readonly smallReadMsMax: number;
12
+ readonly smallReadMsMin: number;
13
+ readonly smallWriteMs: number;
14
+ readonly smallWriteMsMax: number;
15
+ readonly smallWriteMsMin: number;
16
+ }
17
+ export declare function summarizeBenchmarkSamples(samples: readonly BenchmarkSampleTiming[]): BenchmarkSampleSummary;
18
+ export declare function formatDurationRange(props: {
19
+ readonly max: number;
20
+ readonly median: number;
21
+ readonly min: number;
22
+ }): string;
23
+ export declare function assertExpectedMountToken(props: {
24
+ readonly label: string;
25
+ readonly mountInfo: string;
26
+ readonly token: string | null;
27
+ }): void;
28
+ //# sourceMappingURL=gondolin-vfs-benchmark-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gondolin-vfs-benchmark-support.d.ts","sourceRoot":"","sources":["../../src/perf/gondolin-vfs-benchmark-support.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACvC,sBAAsB,CAgBxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAQT;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,IAAI,CAOP"}
@@ -0,0 +1,50 @@
1
+ export function summarizeBenchmarkSamples(samples) {
2
+ if (samples.length === 0) {
3
+ throw new Error('Cannot summarize benchmark timings without at least one sample.');
4
+ }
5
+ return {
6
+ largeWriteMs: summarizeValues(samples.map((sample) => sample.largeWriteMs)).median,
7
+ largeWriteMsMax: summarizeValues(samples.map((sample) => sample.largeWriteMs)).max,
8
+ largeWriteMsMin: summarizeValues(samples.map((sample) => sample.largeWriteMs)).min,
9
+ smallReadMs: summarizeValues(samples.map((sample) => sample.smallReadMs)).median,
10
+ smallReadMsMax: summarizeValues(samples.map((sample) => sample.smallReadMs)).max,
11
+ smallReadMsMin: summarizeValues(samples.map((sample) => sample.smallReadMs)).min,
12
+ smallWriteMs: summarizeValues(samples.map((sample) => sample.smallWriteMs)).median,
13
+ smallWriteMsMax: summarizeValues(samples.map((sample) => sample.smallWriteMs)).max,
14
+ smallWriteMsMin: summarizeValues(samples.map((sample) => sample.smallWriteMs)).min,
15
+ };
16
+ }
17
+ export function formatDurationRange(props) {
18
+ const median = Math.round(props.median);
19
+ const min = Math.round(props.min);
20
+ const max = Math.round(props.max);
21
+ if (median === min && median === max) {
22
+ return `${median}ms`;
23
+ }
24
+ return `${median}ms median [${min}-${max}ms]`;
25
+ }
26
+ export function assertExpectedMountToken(props) {
27
+ if (props.token === null || props.mountInfo.includes(props.token)) {
28
+ return;
29
+ }
30
+ throw new Error(`Expected mount for '${props.label}' to include '${props.token}', got: ${props.mountInfo}`);
31
+ }
32
+ function summarizeValues(values) {
33
+ if (values.length === 0) {
34
+ throw new Error('Cannot summarize an empty value list.');
35
+ }
36
+ const sortedValues = values.toSorted((left, right) => left - right);
37
+ const medianIndex = Math.floor(sortedValues.length / 2);
38
+ const min = sortedValues[0];
39
+ const median = sortedValues[medianIndex];
40
+ const max = sortedValues[sortedValues.length - 1];
41
+ if (min === undefined || median === undefined || max === undefined) {
42
+ throw new Error('Cannot summarize an empty value list.');
43
+ }
44
+ return {
45
+ max,
46
+ median,
47
+ min,
48
+ };
49
+ }
50
+ //# sourceMappingURL=gondolin-vfs-benchmark-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gondolin-vfs-benchmark-support.js","sourceRoot":"","sources":["../../src/perf/gondolin-vfs-benchmark-support.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,yBAAyB,CACxC,OAAyC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO;QACN,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;QAClF,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;QAClF,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;QAClF,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;QAChF,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;QAChF,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;QAChF,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;QAClF,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;QAClF,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;KAClF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACtC,OAAO,GAAG,MAAM,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,MAAM,cAAc,GAAG,IAAI,GAAG,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAIxC;IACA,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO;IACR,CAAC;IACD,MAAM,IAAI,KAAK,CACd,uBAAuB,KAAK,CAAC,KAAK,iBAAiB,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,SAAS,EAAE,CAC1F,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAyB;IAKjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO;QACN,GAAG;QACH,MAAM;QACN,GAAG;KACH,CAAC;AACH,CAAC"}
@@ -1,7 +1,8 @@
1
- import { createManagedVm as createManagedVmFromCore, type ManagedVm } from '@agent-vm/gondolin-adapter';
1
+ import { createManagedVm as createManagedVmFromCore, type ManagedVm, type PinnedRealFsRoot } from '@agent-vm/gondolin-adapter';
2
2
  import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
3
3
  import type { LoadedSystemConfig } from '../config/system-config.js';
4
- import type { ToolProfile } from '../controller/leases/lease-manager.js';
4
+ import type { ToolVmProfile } from '../controller/leases/lease-manager.js';
5
+ import { validateResolvedToolWorkspaceDir as validateResolvedToolWorkspaceDirDefault } from '../controller/leases/lease-workspace-paths.js';
5
6
  export interface ToolVmLifecycleDependencies {
6
7
  readonly buildGondolinImage?: (options: {
7
8
  readonly buildConfigPath: string;
@@ -10,16 +11,13 @@ export interface ToolVmLifecycleDependencies {
10
11
  readonly fullReset?: boolean;
11
12
  }) => ReturnType<typeof buildGondolinImageDefault>;
12
13
  readonly createManagedVm?: typeof createManagedVmFromCore;
14
+ readonly closePinnedRealFsRoot?: (root: PinnedRealFsRoot) => void;
15
+ readonly pinRealFsRoot?: (hostPath: string) => PinnedRealFsRoot;
16
+ readonly validateResolvedToolWorkspaceDir?: typeof validateResolvedToolWorkspaceDirDefault;
13
17
  }
14
- export declare function resolveToolVmWorkspaceDirectory(options: {
15
- readonly profile: ToolProfile;
16
- readonly tcpSlot: number;
17
- readonly zoneId: string;
18
- }): string;
19
- export declare function cleanToolVmWorkspace(workspaceDirectory: string): Promise<void>;
20
18
  export declare function createToolVm(options: {
21
19
  readonly cacheDir: string;
22
- readonly profile: ToolProfile;
20
+ readonly profile: ToolVmProfile;
23
21
  readonly systemConfig: LoadedSystemConfig;
24
22
  readonly tcpSlot: number;
25
23
  readonly workspaceDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,eAAe,IAAI,uBAAuB,EAC1C,KAAK,SAAS,EACd,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,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE,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;CAC1D;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAET;AAED,wBAAsB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF;AAED,wBAAsB,YAAY,CACjC,OAAO,EAAE;IACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,GAAE,2BAAgC,GAC5C,OAAO,CAAC,SAAS,CAAC,CAyCpB"}
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,+CAA+C,CAAC;AAE5I,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,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,GAAE,2BAAgC,GAC5C,OAAO,CAAC,SAAS,CAAC,CAkEpB"}
@@ -1,45 +1,49 @@
1
- import fs from 'node:fs/promises';
2
1
  import path from 'node:path';
3
2
  import { buildToolSessionLabel } from '@agent-vm/gateway-interface';
4
- import { createManagedVm as createManagedVmFromCore, } from '@agent-vm/gondolin-adapter';
3
+ import { closePinnedRealFsRoot as closePinnedRealFsRootDefault, createManagedVm as createManagedVmFromCore, pinRealFsRoot as pinRealFsRootDefault, } from '@agent-vm/gondolin-adapter';
5
4
  import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
6
- export function resolveToolVmWorkspaceDirectory(options) {
7
- return path.resolve(options.profile.workspaceRoot, `${options.zoneId}-${options.tcpSlot}`);
8
- }
9
- export async function cleanToolVmWorkspace(workspaceDirectory) {
10
- let entryNames;
11
- try {
12
- entryNames = await fs.readdir(workspaceDirectory);
13
- }
14
- catch {
15
- return;
16
- }
17
- for (const entryName of entryNames) {
18
- // oxlint-disable-next-line eslint/no-await-in-loop -- cleanup must be deterministic per entry
19
- await fs.rm(path.join(workspaceDirectory, entryName), {
20
- force: true,
21
- recursive: true,
22
- });
23
- }
24
- }
5
+ import { validateResolvedToolWorkspaceDir as validateResolvedToolWorkspaceDirDefault } from '../controller/leases/lease-workspace-paths.js';
25
6
  export async function createToolVm(options, dependencies = {}) {
26
7
  const buildGondolinImage = dependencies.buildGondolinImage ?? buildGondolinImageDefault;
27
8
  const createManagedVm = dependencies.createManagedVm ?? createManagedVmFromCore;
9
+ const closePinnedRealFsRoot = dependencies.closePinnedRealFsRoot ?? closePinnedRealFsRootDefault;
10
+ const pinRealFsRoot = dependencies.pinRealFsRoot ?? pinRealFsRootDefault;
11
+ const validateResolvedToolWorkspaceDir = dependencies.validateResolvedToolWorkspaceDir ?? validateResolvedToolWorkspaceDirDefault;
12
+ const zone = options.systemConfig.zones.find((configuredZone) => configuredZone.id === options.zoneId);
13
+ if (!zone) {
14
+ throw new Error(`Zone '${options.zoneId}' is not configured.`);
15
+ }
28
16
  const toolImageProfile = options.systemConfig.imageProfiles.toolVms[options.profile.imageProfile];
29
17
  if (!toolImageProfile) {
30
18
  throw new Error(`Tool VM image profile '${options.profile.imageProfile}' is not configured.`);
31
19
  }
20
+ // Fail bad lease paths before doing any expensive image work.
21
+ await validateResolvedToolWorkspaceDir({
22
+ workspaceDir: options.workspaceDir,
23
+ zone,
24
+ });
32
25
  const toolImage = await buildGondolinImage({
33
26
  buildConfigPath: toolImageProfile.buildConfig,
34
27
  systemCacheIdentifierPath: options.systemConfig.systemCacheIdentifierPath,
35
28
  cacheDir: path.join(options.cacheDir, 'tool-vm-images', options.profile.imageProfile),
36
29
  });
37
- const hostWorkspaceDirectory = resolveToolVmWorkspaceDirectory({
38
- profile: options.profile,
39
- tcpSlot: options.tcpSlot,
40
- zoneId: options.zoneId,
30
+ // Internal createToolVm callers bypass the /lease route; validate and pin
31
+ // immediately before handing the RealFS root to the VM adapter.
32
+ const hostWorkspaceDirectory = await validateResolvedToolWorkspaceDir({
33
+ workspaceDir: options.workspaceDir,
34
+ zone,
41
35
  });
42
- await fs.mkdir(hostWorkspaceDirectory, { recursive: true });
36
+ const pinnedWorkspaceRoot = pinRealFsRoot(hostWorkspaceDirectory);
37
+ try {
38
+ await validateResolvedToolWorkspaceDir({
39
+ workspaceDir: pinnedWorkspaceRoot.realPath,
40
+ zone,
41
+ });
42
+ }
43
+ catch (error) {
44
+ closePinnedRealFsRoot(pinnedWorkspaceRoot);
45
+ throw error;
46
+ }
43
47
  const toolVm = await createManagedVm({
44
48
  allowedHosts: [],
45
49
  cpus: options.profile.cpus,
@@ -49,9 +53,10 @@ export async function createToolVm(options, dependencies = {}) {
49
53
  sessionLabel: buildToolSessionLabel(options.systemConfig.host.projectNamespace, options.zoneId, options.tcpSlot),
50
54
  secrets: {},
51
55
  vfsMounts: {
52
- '/workspace': {
56
+ '/work': {
53
57
  hostPath: hostWorkspaceDirectory,
54
58
  kind: 'realfs',
59
+ pinnedHostRoot: pinnedWorkspaceRoot,
55
60
  },
56
61
  },
57
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tool-vm-lifecycle.js","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"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"}
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.31",
3
+ "version": "0.0.33",
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": {
@@ -38,12 +38,12 @@
38
38
  "hono": "^4.12.14",
39
39
  "tasuku": "^2.3.0",
40
40
  "zod": "^4",
41
- "@agent-vm/gondolin-adapter": "0.0.31",
42
- "@agent-vm/agent-vm-worker": "0.0.31",
43
- "@agent-vm/openclaw-agent-vm-plugin": "0.0.31",
44
- "@agent-vm/worker-gateway": "0.0.31",
45
- "@agent-vm/gateway-interface": "0.0.31",
46
- "@agent-vm/openclaw-gateway": "0.0.31"
41
+ "@agent-vm/agent-vm-worker": "0.0.33",
42
+ "@agent-vm/gondolin-adapter": "0.0.33",
43
+ "@agent-vm/openclaw-gateway": "0.0.33",
44
+ "@agent-vm/worker-gateway": "0.0.33",
45
+ "@agent-vm/openclaw-agent-vm-plugin": "0.0.33",
46
+ "@agent-vm/gateway-interface": "0.0.33"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "rm -rf dist && tsc -p tsconfig.build.json",