@agent-vm/agent-vm 0.0.32 → 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 (96) hide show
  1. package/dist/cli/commands/controller-definition.d.ts +24 -24
  2. package/dist/cli/commands/create-app.d.ts +24 -24
  3. package/dist/cli/init-command.d.ts.map +1 -1
  4. package/dist/cli/init-command.js +17 -12
  5. package/dist/cli/init-command.js.map +1 -1
  6. package/dist/config/system-config.d.ts +35 -4
  7. package/dist/config/system-config.d.ts.map +1 -1
  8. package/dist/config/system-config.js +110 -19
  9. package/dist/config/system-config.js.map +1 -1
  10. package/dist/controller/active-task-registry.d.ts +4 -1
  11. package/dist/controller/active-task-registry.d.ts.map +1 -1
  12. package/dist/controller/active-task-registry.js +19 -2
  13. package/dist/controller/active-task-registry.js.map +1 -1
  14. package/dist/controller/controller-runtime-operations.d.ts +15 -31
  15. package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
  16. package/dist/controller/controller-runtime-operations.js +17 -92
  17. package/dist/controller/controller-runtime-operations.js.map +1 -1
  18. package/dist/controller/controller-runtime-types.d.ts +16 -11
  19. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  20. package/dist/controller/controller-runtime.d.ts.map +1 -1
  21. package/dist/controller/controller-runtime.js +124 -248
  22. package/dist/controller/controller-runtime.js.map +1 -1
  23. package/dist/controller/git-pull-default-operations.js +1 -1
  24. package/dist/controller/git-pull-default-operations.js.map +1 -1
  25. package/dist/controller/git-push-operations.js +1 -1
  26. package/dist/controller/git-push-operations.js.map +1 -1
  27. package/dist/controller/http/controller-http-route-support.d.ts +2 -2
  28. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
  29. package/dist/controller/http/controller-http-route-support.js.map +1 -1
  30. package/dist/controller/http/controller-http-routes.d.ts +6 -2
  31. package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
  32. package/dist/controller/http/controller-http-routes.js +57 -11
  33. package/dist/controller/http/controller-http-routes.js.map +1 -1
  34. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
  35. package/dist/controller/http/controller-zone-operation-routes.js +130 -11
  36. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
  37. package/dist/controller/leases/agent-sandbox-seeding.d.ts +55 -0
  38. package/dist/controller/leases/agent-sandbox-seeding.d.ts.map +1 -0
  39. package/dist/controller/leases/agent-sandbox-seeding.js +178 -0
  40. package/dist/controller/leases/agent-sandbox-seeding.js.map +1 -0
  41. package/dist/controller/leases/idle-reaper.d.ts +4 -1
  42. package/dist/controller/leases/idle-reaper.d.ts.map +1 -1
  43. package/dist/controller/leases/idle-reaper.js +19 -8
  44. package/dist/controller/leases/idle-reaper.js.map +1 -1
  45. package/dist/controller/leases/lease-idle-policy.d.ts +12 -0
  46. package/dist/controller/leases/lease-idle-policy.d.ts.map +1 -0
  47. package/dist/controller/leases/lease-idle-policy.js +28 -0
  48. package/dist/controller/leases/lease-idle-policy.js.map +1 -0
  49. package/dist/controller/leases/lease-manager.d.ts +3 -3
  50. package/dist/controller/leases/lease-manager.d.ts.map +1 -1
  51. package/dist/controller/leases/lease-scope.d.ts +12 -0
  52. package/dist/controller/leases/lease-scope.d.ts.map +1 -0
  53. package/dist/controller/leases/lease-scope.js +19 -0
  54. package/dist/controller/leases/lease-scope.js.map +1 -0
  55. package/dist/controller/leases/lease-workspace-paths.js +4 -4
  56. package/dist/controller/leases/lease-workspace-paths.js.map +1 -1
  57. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts +30 -0
  58. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -0
  59. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +110 -0
  60. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -0
  61. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts +33 -0
  62. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts.map +1 -0
  63. package/dist/controller/zone-runtimes/worker-zone-runtime.js +224 -0
  64. package/dist/controller/zone-runtimes/worker-zone-runtime.js.map +1 -0
  65. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts +51 -0
  66. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts.map +1 -0
  67. package/dist/controller/zone-runtimes/zone-runtime-errors.js +94 -0
  68. package/dist/controller/zone-runtimes/zone-runtime-errors.js.map +1 -0
  69. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts +26 -0
  70. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts.map +1 -0
  71. package/dist/controller/zone-runtimes/zone-runtime-registry.js +84 -0
  72. package/dist/controller/zone-runtimes/zone-runtime-registry.js.map +1 -0
  73. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +89 -0
  74. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -0
  75. package/dist/controller/zone-runtimes/zone-runtime-types.js +2 -0
  76. package/dist/controller/zone-runtimes/zone-runtime-types.js.map +1 -0
  77. package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
  78. package/dist/gateway/gateway-zone-support.js +5 -2
  79. package/dist/gateway/gateway-zone-support.js.map +1 -1
  80. package/dist/index.d.ts +1 -0
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +1 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/operations/config-validation.d.ts.map +1 -1
  85. package/dist/operations/config-validation.js +48 -2
  86. package/dist/operations/config-validation.js.map +1 -1
  87. package/dist/operations/controller-status.d.ts +13 -8
  88. package/dist/operations/controller-status.d.ts.map +1 -1
  89. package/dist/operations/controller-status.js +13 -10
  90. package/dist/operations/controller-status.js.map +1 -1
  91. package/dist/operations/doctor.d.ts.map +1 -1
  92. package/dist/operations/doctor.js +64 -6
  93. package/dist/operations/doctor.js.map +1 -1
  94. package/dist/tool-vm/tool-vm-lifecycle.d.ts +2 -2
  95. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  96. package/package.json +7 -7
@@ -1,10 +1,17 @@
1
- import fs from 'node:fs/promises';
1
+ import { readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { resolveConfigPath } from './path-resolver.js';
5
5
  import { zoneResourcesPolicySchema } from './resource-contracts/index.js';
6
6
  import { resolveSystemCacheIdentifierPath } from './system-cache-identifier.js';
7
7
  const gatewayTypeValues = ['openclaw', 'worker'];
8
+ const agentIdSchema = z
9
+ .string()
10
+ .min(1)
11
+ .regex(/^[a-z0-9][a-z0-9._-]*$/u, 'agent id must start with a lowercase letter or number and contain only lowercase letters, numbers, dots, underscores, or hyphens');
12
+ function pathContainsParentTraversal(inputPath) {
13
+ return inputPath.split(/[\\/]+/u).includes('..');
14
+ }
8
15
  const secretInjectionSchema = z.enum(['env', 'http-mediation']);
9
16
  const onePasswordSecretSchema = z.object({
10
17
  source: z.literal('1password'),
@@ -65,6 +72,22 @@ const authProfilesSecretSchema = z.discriminatedUnion('source', [
65
72
  envVar: z.string().min(1),
66
73
  }),
67
74
  ]);
75
+ const agentSandboxSeedSchema = z
76
+ .object({
77
+ source: authProfilesSecretSchema,
78
+ target: z.string().min(1),
79
+ mode: z.number().int().min(0).max(0o777).default(0o600),
80
+ })
81
+ .strict()
82
+ .superRefine((seed, context) => {
83
+ if (path.posix.isAbsolute(seed.target) || pathContainsParentTraversal(seed.target)) {
84
+ context.addIssue({
85
+ code: z.ZodIssueCode.custom,
86
+ message: 'agent sandbox seed target must be a relative path without parent traversal.',
87
+ path: ['target'],
88
+ });
89
+ }
90
+ });
68
91
  const hostSecretReferenceSchema = z.discriminatedUnion('source', [
69
92
  z.object({
70
93
  source: z.literal('1password'),
@@ -89,6 +112,7 @@ const openClawZoneGatewaySchema = zoneGatewayBaseSchema
89
112
  .extend({
90
113
  type: z.literal('openclaw'),
91
114
  zoneFilesDir: z.string().min(1),
115
+ authProfilesByAgent: z.record(agentIdSchema, authProfilesSecretSchema).optional(),
92
116
  })
93
117
  .strict();
94
118
  const workerZoneGatewaySchema = zoneGatewayBaseSchema
@@ -100,13 +124,32 @@ const zoneGatewaySchema = z.discriminatedUnion('type', [
100
124
  openClawZoneGatewaySchema,
101
125
  workerZoneGatewaySchema,
102
126
  ]);
103
- const toolProfileSchema = z
127
+ const toolVmProfileSchema = z
104
128
  .object({
105
129
  memory: z.string().min(1),
106
130
  cpus: z.number().int().positive(),
107
131
  imageProfile: z.string().min(1),
108
132
  })
109
133
  .strict();
134
+ const leaseScopeKindSchema = z.enum([
135
+ 'agent',
136
+ 'discord',
137
+ 'project',
138
+ 'session',
139
+ 'shared',
140
+ 'workspace',
141
+ ]);
142
+ const leaseIdleTtlSchema = z
143
+ .object({
144
+ defaultMs: z
145
+ .number()
146
+ .int()
147
+ .positive()
148
+ .default(30 * 60 * 1000),
149
+ byScopeKind: z.partialRecord(leaseScopeKindSchema, z.number().int().positive()).default({}),
150
+ byScopePrefix: z.record(z.string().min(1), z.number().int().positive()).default({}),
151
+ })
152
+ .strict();
110
153
  const imageConfigSchema = z
111
154
  .object({
112
155
  buildConfig: z.string().min(1),
@@ -143,7 +186,8 @@ const systemConfigSchema = z
143
186
  runtimeDir: z.string().min(1).default('./runtime'),
144
187
  imageProfiles: imageProfilesSchema,
145
188
  zones: z
146
- .array(z.object({
189
+ .array(z
190
+ .object({
147
191
  id: z.string().min(1),
148
192
  gateway: zoneGatewaySchema,
149
193
  resources: zoneResourcesPolicySchema.optional(),
@@ -151,18 +195,26 @@ const systemConfigSchema = z
151
195
  runtimeAuthHints: z.array(runtimeAuthHintSchema).optional(),
152
196
  allowedHosts: z.array(z.string().min(1)).min(1),
153
197
  websocketBypass: z.array(z.string().min(1)).default([]),
154
- toolProfile: z.string().min(1).optional(),
155
- }))
198
+ defaultToolVmProfile: z.string().min(1).optional(),
199
+ agentToolVmProfiles: z.record(agentIdSchema, z.string().min(1)).optional(),
200
+ agentSandboxSeeds: z.record(agentIdSchema, z.array(agentSandboxSeedSchema)).optional(),
201
+ })
202
+ .strict())
156
203
  .min(1, 'system config must define at least one zone'),
157
- toolProfiles: z.record(z.string(), toolProfileSchema).default({}),
204
+ toolVmProfiles: z.record(z.string().min(1), toolVmProfileSchema).default({}),
158
205
  tcpPool: z.object({
159
206
  basePort: z.number().int().positive(),
160
207
  size: z.number().int().positive(),
161
208
  }),
209
+ leaseIdleTtl: leaseIdleTtlSchema.optional(),
162
210
  })
211
+ .strict()
163
212
  .superRefine((config, context) => {
164
213
  const hasOnePasswordSecrets = config.zones.some((zone) => Object.values(zone.secrets).some((secret) => secret.source === '1password') ||
165
- zone.gateway.authProfilesRef?.source === '1password');
214
+ zone.gateway.authProfilesRef?.source === '1password' ||
215
+ (zone.gateway.type === 'openclaw' &&
216
+ Object.values(zone.gateway.authProfilesByAgent ?? {}).some((secret) => secret.source === '1password')) ||
217
+ Object.values(zone.agentSandboxSeeds ?? {}).some((seeds) => seeds.some((seed) => seed.source.source === '1password')));
166
218
  const hasOnePasswordGithubToken = config.host.githubToken?.source === '1password';
167
219
  if ((hasOnePasswordSecrets || hasOnePasswordGithubToken) && !config.host.secretsProvider) {
168
220
  context.addIssue({
@@ -198,19 +250,58 @@ const systemConfigSchema = z
198
250
  path: ['zones', zoneIndex, 'gateway', 'imageProfile'],
199
251
  });
200
252
  }
201
- if (zone.gateway.type === 'openclaw' && zone.toolProfile === undefined) {
253
+ if (zone.gateway.type !== 'openclaw' && zone.defaultToolVmProfile !== undefined) {
202
254
  context.addIssue({
203
255
  code: z.ZodIssueCode.custom,
204
- message: `OpenClaw zone '${zone.id}' must declare a toolProfile.`,
205
- path: ['zones', zoneIndex, 'toolProfile'],
256
+ message: `Worker zone '${zone.id}' must not declare defaultToolVmProfile.`,
257
+ path: ['zones', zoneIndex, 'defaultToolVmProfile'],
258
+ });
259
+ }
260
+ if (zone.gateway.type !== 'openclaw' && zone.agentToolVmProfiles !== undefined) {
261
+ context.addIssue({
262
+ code: z.ZodIssueCode.custom,
263
+ message: `Worker zone '${zone.id}' must not declare agentToolVmProfiles.`,
264
+ path: ['zones', zoneIndex, 'agentToolVmProfiles'],
206
265
  });
207
- continue;
208
266
  }
209
- if (zone.toolProfile !== undefined && !config.toolProfiles[zone.toolProfile]) {
267
+ if (zone.gateway.type !== 'openclaw' &&
268
+ Object.keys(zone.agentSandboxSeeds ?? {}).length > 0) {
269
+ context.addIssue({
270
+ code: z.ZodIssueCode.custom,
271
+ message: `Worker zone '${zone.id}' must not declare agentSandboxSeeds.`,
272
+ path: ['zones', zoneIndex, 'agentSandboxSeeds'],
273
+ });
274
+ }
275
+ if (zone.gateway.type === 'openclaw' && zone.defaultToolVmProfile === undefined) {
276
+ context.addIssue({
277
+ code: z.ZodIssueCode.custom,
278
+ message: `OpenClaw zone '${zone.id}' must declare a defaultToolVmProfile.`,
279
+ path: ['zones', zoneIndex, 'defaultToolVmProfile'],
280
+ });
281
+ }
282
+ if (zone.gateway.type === 'openclaw' && zone.agentToolVmProfiles === undefined) {
283
+ context.addIssue({
284
+ code: z.ZodIssueCode.custom,
285
+ message: `OpenClaw zone '${zone.id}' must declare agentToolVmProfiles, even when it is empty.`,
286
+ path: ['zones', zoneIndex, 'agentToolVmProfiles'],
287
+ });
288
+ }
289
+ if (zone.defaultToolVmProfile !== undefined &&
290
+ !config.toolVmProfiles[zone.defaultToolVmProfile]) {
291
+ context.addIssue({
292
+ code: z.ZodIssueCode.custom,
293
+ message: `Zone '${zone.id}' references unknown defaultToolVmProfile '${zone.defaultToolVmProfile}'.`,
294
+ path: ['zones', zoneIndex, 'defaultToolVmProfile'],
295
+ });
296
+ }
297
+ for (const [agentId, toolVmProfileId] of Object.entries(zone.agentToolVmProfiles ?? {})) {
298
+ if (config.toolVmProfiles[toolVmProfileId]) {
299
+ continue;
300
+ }
210
301
  context.addIssue({
211
302
  code: z.ZodIssueCode.custom,
212
- message: `Zone '${zone.id}' references unknown toolProfile '${zone.toolProfile}'.`,
213
- path: ['zones', zoneIndex, 'toolProfile'],
303
+ message: `Zone '${zone.id}' agentToolVmProfiles['${agentId}'] references unknown toolVmProfile '${toolVmProfileId}'.`,
304
+ path: ['zones', zoneIndex, 'agentToolVmProfiles', agentId],
214
305
  });
215
306
  }
216
307
  for (const [hintIndex, hint] of (zone.runtimeAuthHints ?? []).entries()) {
@@ -240,14 +331,14 @@ const systemConfigSchema = z
240
331
  }
241
332
  }
242
333
  }
243
- for (const [profileId, profile] of Object.entries(config.toolProfiles)) {
334
+ for (const [profileId, profile] of Object.entries(config.toolVmProfiles)) {
244
335
  if (config.imageProfiles.toolVms[profile.imageProfile]) {
245
336
  continue;
246
337
  }
247
338
  context.addIssue({
248
339
  code: z.ZodIssueCode.custom,
249
- message: `Tool profile '${profileId}' references unknown tool VM imageProfile '${profile.imageProfile}'.`,
250
- path: ['toolProfiles', profileId, 'imageProfile'],
340
+ message: `Tool VM profile '${profileId}' references unknown tool VM imageProfile '${profile.imageProfile}'.`,
341
+ path: ['toolVmProfiles', profileId, 'imageProfile'],
251
342
  });
252
343
  }
253
344
  });
@@ -339,7 +430,7 @@ function resolveRelativePaths(config, configDir) {
339
430
  ...zone,
340
431
  gateway: resolveZoneGatewayPaths(zone.gateway),
341
432
  })),
342
- toolProfiles: Object.fromEntries(Object.entries(config.toolProfiles).map(([profileId, profile]) => [
433
+ toolVmProfiles: Object.fromEntries(Object.entries(config.toolVmProfiles).map(([profileId, profile]) => [
343
434
  profileId,
344
435
  { ...profile },
345
436
  ])),
@@ -348,7 +439,7 @@ function resolveRelativePaths(config, configDir) {
348
439
  export async function loadSystemConfig(configPath) {
349
440
  const absoluteConfigPath = path.resolve(configPath);
350
441
  const configDir = path.dirname(absoluteConfigPath);
351
- const rawConfig = await fs.readFile(absoluteConfigPath, 'utf8');
442
+ const rawConfig = await readFile(absoluteConfigPath, 'utf8');
352
443
  let parsedConfig;
353
444
  try {
354
445
  parsedConfig = JSON.parse(rawConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"system-config.js","sourceRoot":"","sources":["../../src/config/system-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-config.js","sourceRoot":"","sources":["../../src/config/system-config.ts"],"names":[],"mappings":"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"}
@@ -29,14 +29,17 @@ export interface ActiveWorkerTask {
29
29
  }
30
30
  export declare class ActiveTaskRegistry {
31
31
  private readonly tasksByZone;
32
+ private readonly destroyingZones;
32
33
  tryReserve(zoneId: string, maxActiveTasksPerPod: number): string | null;
33
34
  activateReservation(zoneId: string, reservationId: string, task: ActiveWorkerTask): void;
34
35
  releaseReservation(zoneId: string, reservationId: string): boolean;
35
36
  get(zoneId: string, taskId: string): ActiveWorkerTask | null;
36
37
  listForZone(zoneId: string): readonly ActiveWorkerTask[];
37
38
  countOccupiedForZone(zoneId: string): number;
39
+ beginZoneDestroy(zoneId: string): void;
40
+ endZoneDestroy(zoneId: string): void;
38
41
  setWorkerIngress(zoneId: string, taskId: string, workerIngress: ActiveWorkerTaskIngress): void;
39
- clear(zoneId: string, taskId: string): void;
42
+ clear(zoneId: string, taskId: string): boolean;
40
43
  private getOrCreateZoneState;
41
44
  private deleteZoneIfEmpty;
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"active-task-registry.d.ts","sourceRoot":"","sources":["../../src/controller/active-task-registry.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAC7C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAE/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAM1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAM1D;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAOD,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAEzD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUvE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAWxF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAUlE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAQ5D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE;IAIxD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ5C,gBAAgB,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,uBAAuB,GACpC,IAAI;IASA,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWlD,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,iBAAiB;CAKzB"}
1
+ {"version":3,"file":"active-task-registry.d.ts","sourceRoot":"","sources":["../../src/controller/active-task-registry.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAC7C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAE/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAM1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAM1D;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAOD,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAE9C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAavE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAcxF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAUlE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAQ5D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE;IAIxD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ5C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,gBAAgB,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,uBAAuB,GACpC,IAAI;IAYA,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAYrD,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,iBAAiB;CAKzB"}
@@ -15,7 +15,11 @@ export function createVmWorkPath(value) {
15
15
  }
16
16
  export class ActiveTaskRegistry {
17
17
  tasksByZone = new Map();
18
+ destroyingZones = new Set();
18
19
  tryReserve(zoneId, maxActiveTasksPerPod) {
20
+ if (this.destroyingZones.has(zoneId)) {
21
+ return null;
22
+ }
19
23
  const state = this.getOrCreateZoneState(zoneId);
20
24
  if (state.tasksById.size + state.reservations.size >= maxActiveTasksPerPod) {
21
25
  return null;
@@ -25,6 +29,9 @@ export class ActiveTaskRegistry {
25
29
  return reservationId;
26
30
  }
27
31
  activateReservation(zoneId, reservationId, task) {
32
+ if (this.destroyingZones.has(zoneId)) {
33
+ throw new Error(`Zone '${zoneId}' has a destroy in progress.`);
34
+ }
28
35
  const state = this.getOrCreateZoneState(zoneId);
29
36
  if (!state.reservations.has(reservationId)) {
30
37
  throw new Error(`Zone '${zoneId}' does not have reservation '${reservationId}' for task '${task.taskId}'.`);
@@ -58,7 +65,16 @@ export class ActiveTaskRegistry {
58
65
  }
59
66
  return state.tasksById.size + state.reservations.size;
60
67
  }
68
+ beginZoneDestroy(zoneId) {
69
+ this.destroyingZones.add(zoneId);
70
+ }
71
+ endZoneDestroy(zoneId) {
72
+ this.destroyingZones.delete(zoneId);
73
+ }
61
74
  setWorkerIngress(zoneId, taskId, workerIngress) {
75
+ if (this.destroyingZones.has(zoneId)) {
76
+ throw new Error(`Zone '${zoneId}' has a destroy in progress.`);
77
+ }
62
78
  const task = this.get(zoneId, taskId);
63
79
  if (!task) {
64
80
  throw new Error(`Zone '${zoneId}' has no active task '${taskId}' to update.`);
@@ -69,12 +85,13 @@ export class ActiveTaskRegistry {
69
85
  clear(zoneId, taskId) {
70
86
  const state = this.tasksByZone.get(zoneId);
71
87
  if (!state) {
72
- throw new Error(`Zone '${zoneId}' has no active task '${taskId}' to clear.`);
88
+ return false;
73
89
  }
74
90
  if (!state.tasksById.delete(taskId)) {
75
- throw new Error(`Zone '${zoneId}' has no active task '${taskId}' to clear.`);
91
+ return false;
76
92
  }
77
93
  this.deleteZoneIfEmpty(zoneId, state);
94
+ return true;
78
95
  }
79
96
  getOrCreateZoneState(zoneId) {
80
97
  const existingState = this.tasksByZone.get(zoneId);
@@ -1 +1 @@
1
- {"version":3,"file":"active-task-registry.js","sourceRoot":"","sources":["../../src/controller/active-task-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-task-registry.js","sourceRoot":"","sources":["../../src/controller/active-task-registry.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,6 @@
1
- import type { GatewayProcessSpec } from '@agent-vm/gateway-interface';
2
- import type { SecretResolver } from '@agent-vm/gondolin-adapter';
3
1
  import type { SystemConfig } from '../config/system-config.js';
4
- import type { LeaseManager } from './leases/lease-manager.js';
5
- interface GatewayZoneRuntime {
6
- readonly ingress: {
7
- readonly host: string;
8
- readonly port: number;
9
- };
10
- readonly processSpec: GatewayProcessSpec;
11
- readonly vm: {
12
- readonly id: string;
13
- close(): Promise<void>;
14
- enableSsh(): Promise<unknown>;
15
- exec(command: string): Promise<{
16
- readonly exitCode: number;
17
- readonly stderr: string;
18
- readonly stdout: string;
19
- }>;
20
- };
21
- }
2
+ import { type ControllerRuntimeStatus } from '../operations/controller-status.js';
3
+ import type { OpenClawZoneRuntime } from './zone-runtimes/zone-runtime-types.js';
22
4
  interface ControllerRuntimeOperations {
23
5
  readonly destroyZone: (targetZoneId: string, purge: boolean) => Promise<unknown>;
24
6
  readonly enableSshForZone: (targetZoneId: string) => Promise<unknown>;
@@ -28,11 +10,11 @@ interface ControllerRuntimeOperations {
28
10
  readonly stdout: string;
29
11
  }>;
30
12
  readonly getStatus: () => Promise<unknown>;
31
- readonly getZoneStatus: (targetZoneId: string) => Promise<unknown>;
32
13
  readonly getZoneLogs: (targetZoneId: string) => Promise<{
33
14
  readonly output: string;
34
15
  readonly zoneId: string;
35
16
  }>;
17
+ readonly getZoneStatus: (targetZoneId: string) => Promise<unknown>;
36
18
  readonly refreshZoneCredentials: (targetZoneId: string) => Promise<{
37
19
  readonly ok: true;
38
20
  readonly zoneId: string;
@@ -40,24 +22,26 @@ interface ControllerRuntimeOperations {
40
22
  readonly upgradeZone: (targetZoneId: string) => Promise<unknown>;
41
23
  }
42
24
  export declare function createControllerRuntimeOperations(options: {
43
- readonly activeZoneId: string;
44
- readonly getGateway: () => GatewayZoneRuntime;
45
- readonly getGatewayBootedAt: () => string | undefined;
46
- readonly getZone: (zoneId: string) => SystemConfig['zones'][number];
47
- readonly leaseManager: Pick<LeaseManager, 'listLeases' | 'releaseLease'>;
48
- readonly restartGatewayZone: () => Promise<void>;
49
- readonly secretResolver: SecretResolver;
50
- readonly stopGatewayZone: () => Promise<void>;
25
+ readonly getActiveLeases: () => readonly {
26
+ readonly zoneId: string;
27
+ }[];
28
+ readonly getOpenClawRuntime: (zoneId: string) => Pick<OpenClawZoneRuntime, 'destroy' | 'enableSsh' | 'exec' | 'getLogs' | 'refreshCredentials' | 'upgrade'>;
29
+ readonly destroyZoneRuntime: (zoneId: string, purge: boolean) => Promise<{
30
+ readonly ok: true;
31
+ readonly purged: boolean;
32
+ readonly zoneId: string;
33
+ }>;
34
+ readonly getRuntimeStatusByZone: () => ControllerRuntimeStatus['zones'];
51
35
  readonly systemConfig: SystemConfig;
52
36
  }): ControllerRuntimeOperations;
53
37
  export declare function createStopControllerOperation(options: {
54
38
  readonly clearReaperTimer: () => void;
55
- readonly closeControllerServer: () => void;
39
+ readonly closeControllerServer: () => Promise<void>;
56
40
  readonly getLeases: () => readonly {
57
41
  readonly id: string;
58
42
  }[];
59
43
  readonly releaseLease: (leaseId: string) => Promise<void>;
60
- readonly stopGatewayZone: () => Promise<void>;
44
+ readonly stopAllZones: () => Promise<void>;
61
45
  }): () => Promise<{
62
46
  readonly ok: true;
63
47
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"controller-runtime-operations.d.ts","sourceRoot":"","sources":["../../src/controller/controller-runtime-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAW/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,EAAE;QACZ,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;YAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;SACxB,CAAC,CAAC;KACH,CAAC;CACF;AAED,UAAU,2BAA2B;IACpC,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,CACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,KACX,OAAO,CAAC;QACZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QAClE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,kBAAkB,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;IACzE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACpC,GAAG,2BAA2B,CA8G9B;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C,GAAG,MAAM,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,CAcvC"}
1
+ {"version":3,"file":"controller-runtime-operations.d.ts","sourceRoot":"","sources":["../../src/controller/controller-runtime-operations.ts"],"names":[],"mappings":"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"}
@@ -1,102 +1,27 @@
1
- import { resolveZoneSecrets } from '../gateway/credential-manager.js';
2
1
  import { buildControllerStatus, buildControllerZoneStatus, } from '../operations/controller-status.js';
3
- import { runControllerCredentialsRefresh } from '../operations/credentials-refresh.js';
4
- import { runControllerDestroy } from '../operations/destroy-zone.js';
5
- import { runControllerUpgrade } from '../operations/upgrade-zone.js';
6
- import { runControllerLogs } from '../operations/zone-logs.js';
2
+ import { ControllerZoneNotFoundError } from './zone-runtimes/zone-runtime-errors.js';
7
3
  export function createControllerRuntimeOperations(options) {
8
- const assertActiveZone = (targetZoneId) => {
9
- if (targetZoneId !== options.activeZoneId) {
10
- throw new Error(`Controller is running zone '${options.activeZoneId}', not '${targetZoneId}'. Multi-zone runtime selection is not implemented yet.`);
11
- }
12
- };
13
- const getGatewayIfAvailable = () => {
14
- try {
15
- return options.getGateway();
16
- }
17
- catch {
18
- return undefined;
19
- }
20
- };
21
4
  const buildRuntimeStatus = () => {
22
- const gateway = getGatewayIfAvailable();
23
- const bootedAt = options.getGatewayBootedAt();
5
+ const zones = options.getRuntimeStatusByZone();
24
6
  return {
25
- activeLeases: options.leaseManager.listLeases(),
26
- activeZoneId: options.activeZoneId,
27
- ...(gateway ? { gateway } : {}),
28
- ...(gateway && bootedAt ? { bootedAt } : {}),
7
+ activeLeases: options.getActiveLeases(),
8
+ ...(zones ? { zones } : {}),
29
9
  };
30
10
  };
31
11
  return {
32
- enableSshForZone: async (targetZoneId) => {
33
- assertActiveZone(targetZoneId);
34
- return await options.getGateway().vm.enableSsh();
35
- },
36
- execInZone: async (targetZoneId, command) => {
37
- assertActiveZone(targetZoneId);
38
- const result = await options.getGateway().vm.exec(command);
39
- return {
40
- exitCode: result.exitCode,
41
- stderr: result.stderr,
42
- stdout: result.stdout,
43
- };
44
- },
45
- destroyZone: async (targetZoneId, purge) => {
46
- assertActiveZone(targetZoneId);
47
- return await runControllerDestroy({
48
- purge,
49
- systemConfig: options.systemConfig,
50
- zoneId: targetZoneId,
51
- }, {
52
- releaseZoneLeases: async () => {
53
- for (const lease of options.leaseManager
54
- .listLeases()
55
- .filter((activeLease) => activeLease.zoneId === targetZoneId)) {
56
- // oxlint-disable-next-line eslint/no-await-in-loop -- sequential release avoids TCP slot races
57
- await options.leaseManager.releaseLease(lease.id);
58
- }
59
- },
60
- stopGatewayZone: options.stopGatewayZone,
61
- });
62
- },
12
+ destroyZone: async (targetZoneId, purge) => await options.destroyZoneRuntime(targetZoneId, purge),
13
+ enableSshForZone: async (targetZoneId) => await options.getOpenClawRuntime(targetZoneId).enableSsh(),
14
+ execInZone: async (targetZoneId, command) => await options.getOpenClawRuntime(targetZoneId).exec(command),
63
15
  getStatus: async () => buildControllerStatus(options.systemConfig, buildRuntimeStatus()),
64
- getZoneStatus: async (targetZoneId) => buildControllerZoneStatus(options.systemConfig, targetZoneId, buildRuntimeStatus()),
65
- getZoneLogs: async (targetZoneId) => {
66
- assertActiveZone(targetZoneId);
67
- const gateway = options.getGateway();
68
- return await runControllerLogs({
69
- zoneId: targetZoneId,
70
- }, {
71
- readGatewayLogs: async () => (await gateway.vm.exec(`cat ${gateway.processSpec.logPath} 2>/dev/null || echo ""`))
72
- .stdout,
73
- });
74
- },
75
- refreshZoneCredentials: async (targetZoneId) => {
76
- assertActiveZone(targetZoneId);
77
- return await runControllerCredentialsRefresh({
78
- zoneId: targetZoneId,
79
- }, {
80
- refreshZoneSecrets: async (zoneId) => {
81
- await resolveZoneSecrets({
82
- secretResolver: options.secretResolver,
83
- systemConfig: options.systemConfig,
84
- zoneId,
85
- });
86
- },
87
- restartGatewayZone: async () => await options.restartGatewayZone(),
88
- });
89
- },
90
- upgradeZone: async (targetZoneId) => {
91
- assertActiveZone(targetZoneId);
92
- return await runControllerUpgrade({
93
- systemConfig: options.systemConfig,
94
- zoneId: targetZoneId,
95
- }, {
96
- rebuildGatewayImage: async () => { },
97
- restartGatewayZone: options.restartGatewayZone,
98
- });
16
+ getZoneLogs: async (targetZoneId) => await options.getOpenClawRuntime(targetZoneId).getLogs(),
17
+ getZoneStatus: async (targetZoneId) => {
18
+ if (!options.systemConfig.zones.some((zone) => zone.id === targetZoneId)) {
19
+ throw new ControllerZoneNotFoundError(targetZoneId);
20
+ }
21
+ return buildControllerZoneStatus(options.systemConfig, targetZoneId, buildRuntimeStatus());
99
22
  },
23
+ refreshZoneCredentials: async (targetZoneId) => await options.getOpenClawRuntime(targetZoneId).refreshCredentials(),
24
+ upgradeZone: async (targetZoneId) => await options.getOpenClawRuntime(targetZoneId).upgrade(),
100
25
  };
101
26
  }
102
27
  export function createStopControllerOperation(options) {
@@ -107,10 +32,10 @@ export function createStopControllerOperation(options) {
107
32
  await options.releaseLease(lease.id);
108
33
  }
109
34
  try {
110
- await options.stopGatewayZone();
35
+ await options.stopAllZones();
111
36
  }
112
37
  finally {
113
- options.closeControllerServer();
38
+ await options.closeControllerServer();
114
39
  }
115
40
  return { ok: true };
116
41
  };