@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,23 +1,25 @@
1
1
  import { createOpCliSecretResolver } from '@agent-vm/gondolin-adapter';
2
- import { deleteGatewayRuntimeRecord as deleteGatewayRuntimeRecordDefault } from '../gateway/gateway-runtime-record.js';
3
2
  import { startGatewayZone } from '../gateway/gateway-zone-orchestrator.js';
4
3
  import { runTaskWithResult } from '../shared/run-task.js';
5
- import { cleanToolVmWorkspace, createToolVm, resolveToolVmWorkspaceDirectory, } from '../tool-vm/tool-vm-lifecycle.js';
4
+ import { createToolVm } from '../tool-vm/tool-vm-lifecycle.js';
6
5
  import { ActiveTaskRegistry } from './active-task-registry.js';
7
6
  import { createControllerRuntimeOperations, createStopControllerOperation, } from './controller-runtime-operations.js';
8
- import { createSecretResolver, findConfiguredZone, resolveControllerGithubToken, } from './controller-runtime-support.js';
9
- import { pullDefaultForTask, PullDefaultValidationError, } from './git-pull-default-operations.js';
10
- import { pushBranchesForTask, PushBranchesValidationError, } from './git-push-operations.js';
11
- import { ControllerRuntimeAtCapacityError, ControllerTaskNotReadyError, } from './http/controller-http-route-support.js';
7
+ import { createSecretResolver, resolveControllerGithubToken, } from './controller-runtime-support.js';
12
8
  import { createControllerService } from './http/controller-http-routes.js';
13
9
  import { startControllerHttpServer } from './http/controller-http-server.js';
14
10
  import { createIdleReaper } from './leases/idle-reaper.js';
11
+ import { ttlForLeaseScope } from './leases/lease-idle-policy.js';
15
12
  import { createLeaseManager } from './leases/lease-manager.js';
16
13
  import { createTcpPool } from './leases/tcp-pool.js';
17
14
  import { RequestHeartbeatRegistry } from './request-heartbeat-registry.js';
18
- import { createTaskStateReader } from './task-state-reader.js';
19
- import { executeWorkerTask as executeWorkerTaskDefault, prepareWorkerTask as prepareWorkerTaskDefault, } from './worker-task-runner.js';
20
- const MAX_ACTIVE_TASKS_PER_RUNTIME = 1;
15
+ import { createOpenClawZoneRuntime } from './zone-runtimes/openclaw-zone-runtime.js';
16
+ import { createWorkerZoneRuntime } from './zone-runtimes/worker-zone-runtime.js';
17
+ import { createZoneRuntimeRegistry } from './zone-runtimes/zone-runtime-registry.js';
18
+ const defaultLeaseIdleTtlPolicy = {
19
+ defaultMs: 30 * 60 * 1000,
20
+ byScopeKind: {},
21
+ byScopePrefix: {},
22
+ };
21
23
  function writeControllerRuntimeLog(message) {
22
24
  process.stderr.write(`[agent-vm] ${message}\n`);
23
25
  }
@@ -27,12 +29,17 @@ function formatUnknownError(error) {
27
29
  }
28
30
  return typeof error === 'string' ? error : JSON.stringify(error);
29
31
  }
32
+ function isOpenClawZone(zone) {
33
+ return zone.gateway.type === 'openclaw';
34
+ }
35
+ function isWorkerZone(zone) {
36
+ return zone.gateway.type === 'worker';
37
+ }
30
38
  export async function startControllerRuntime(options, dependencies) {
31
39
  const now = dependencies.now ?? Date.now;
32
40
  const runTaskStep = dependencies.runTask ?? (async (_title, fn) => await fn());
33
41
  const secretResolver = await runTaskWithResult(runTaskStep, 'Resolving 1Password secrets', async () => await createSecretResolver(options.systemConfig, dependencies.createSecretResolver ?? createOpCliSecretResolver));
34
42
  const controllerGithubToken = await resolveControllerGithubToken(options.systemConfig, secretResolver);
35
- const callerUrl = process.env.CALLER_URL;
36
43
  const createManagedToolVm = dependencies.createManagedToolVm ??
37
44
  (async (toolVmOptions) => await createToolVm({
38
45
  cacheDir: options.systemConfig.cacheDir,
@@ -45,15 +52,7 @@ export async function startControllerRuntime(options, dependencies) {
45
52
  const tcpPool = createTcpPool(options.systemConfig.tcpPool);
46
53
  const activeTaskRegistry = new ActiveTaskRegistry();
47
54
  const requestHeartbeatRegistry = new RequestHeartbeatRegistry();
48
- const activeZone = findConfiguredZone(options.systemConfig, options.zoneId);
49
55
  const leaseManager = createLeaseManager({
50
- cleanWorkspace: async ({ profile, tcpSlot, zoneId }) => {
51
- await cleanToolVmWorkspace(resolveToolVmWorkspaceDirectory({
52
- profile,
53
- tcpSlot,
54
- zoneId,
55
- }));
56
- },
57
56
  createManagedVm: async (leaseOptions) => await createManagedToolVm({
58
57
  profile: leaseOptions.profile,
59
58
  tcpSlot: leaseOptions.tcpSlot,
@@ -66,234 +65,122 @@ export async function startControllerRuntime(options, dependencies) {
66
65
  const idleReaper = createIdleReaper({
67
66
  getLeases: () => leaseManager.listLeases(),
68
67
  now,
69
- releaseLease: async (leaseId) => {
70
- await leaseManager.releaseLease(leaseId);
68
+ releaseLease: async (leaseId, releaseOptions) => {
69
+ await leaseManager.releaseLease(leaseId, releaseOptions);
71
70
  },
72
- ttlMs: 30 * 60 * 1000,
71
+ ttlForLease: (lease) => ttlForLeaseScope({
72
+ policy: options.systemConfig.leaseIdleTtl ?? defaultLeaseIdleTtlPolicy,
73
+ scopeKey: lease.scopeKey,
74
+ }),
73
75
  });
74
- const reaperTimer = (dependencies.setIntervalImpl ?? setInterval)(() => void idleReaper.reapExpiredLeases(), 60_000);
76
+ const reaperTimer = (dependencies.setIntervalImpl ?? setInterval)(() => void idleReaper
77
+ .reapExpiredLeases()
78
+ .catch((error) => writeControllerRuntimeLog(`Idle lease reaper failed: ${error instanceof Error ? error.message : String(error)}`)), 60_000);
75
79
  const clearReaperTimer = () => (dependencies.clearIntervalImpl ?? clearInterval)(reaperTimer);
76
80
  const releaseAllLeases = async () => {
77
- let releaseError;
81
+ const releaseErrors = [];
78
82
  for (const lease of leaseManager.listLeases()) {
79
83
  try {
80
84
  // oxlint-disable-next-line eslint/no-await-in-loop -- sequential release avoids TCP slot races
81
85
  await leaseManager.releaseLease(lease.id);
82
86
  }
83
87
  catch (error) {
84
- releaseError ??= error instanceof Error ? error : new Error(formatUnknownError(error));
88
+ releaseErrors.push(error instanceof Error ? error : new Error(formatUnknownError(error)));
85
89
  writeControllerRuntimeLog(`Failed to release lease '${lease.id}' during controller shutdown: ${formatUnknownError(error)}`);
86
90
  }
87
91
  }
88
- return releaseError;
92
+ return releaseErrors.length === 0
93
+ ? undefined
94
+ : new AggregateError(releaseErrors, 'Failed to release one or more leases.');
89
95
  };
90
- const startGateway = async () => await (dependencies.startGatewayZone ?? startGatewayZone)({
91
- runTask: runTaskStep,
92
- secretResolver,
96
+ const registry = createZoneRuntimeRegistry({
97
+ createRuntimeForZone: (zone) => isOpenClawZone(zone)
98
+ ? createOpenClawZoneRuntime({
99
+ ...(dependencies.deleteGatewayRuntimeRecord
100
+ ? { deleteGatewayRuntimeRecord: dependencies.deleteGatewayRuntimeRecord }
101
+ : {}),
102
+ leaseManager,
103
+ now,
104
+ restartGatewayZone: async (zoneId) => await (dependencies.startGatewayZone ?? startGatewayZone)({
105
+ runTask: runTaskStep,
106
+ secretResolver,
107
+ systemConfig: options.systemConfig,
108
+ zoneId,
109
+ }),
110
+ secretResolver,
111
+ systemConfig: options.systemConfig,
112
+ zone,
113
+ })
114
+ : isWorkerZone(zone)
115
+ ? createWorkerZoneRuntime({
116
+ activeTaskRegistry,
117
+ ...(process.env.CALLER_URL ? { callerUrl: process.env.CALLER_URL } : {}),
118
+ controllerGithubToken,
119
+ ...(dependencies.executeWorkerTask
120
+ ? { executeWorkerTask: dependencies.executeWorkerTask }
121
+ : {}),
122
+ ...(dependencies.onWorkerTaskFinished
123
+ ? { onWorkerTaskFinished: dependencies.onWorkerTaskFinished }
124
+ : {}),
125
+ ...(dependencies.onWorkerTaskIngress
126
+ ? { onWorkerTaskIngress: dependencies.onWorkerTaskIngress }
127
+ : {}),
128
+ ...(dependencies.onWorkerTaskPrepared
129
+ ? { onWorkerTaskPrepared: dependencies.onWorkerTaskPrepared }
130
+ : {}),
131
+ ...(dependencies.prepareWorkerTask
132
+ ? { prepareWorkerTask: dependencies.prepareWorkerTask }
133
+ : {}),
134
+ requestHeartbeatRegistry,
135
+ secretResolver,
136
+ systemConfig: options.systemConfig,
137
+ zone,
138
+ })
139
+ : (() => {
140
+ throw new Error(`Unsupported gateway type for zone '${zone.id}'.`);
141
+ })(),
142
+ ...(options.startupFailures ? { startupFailures: options.startupFailures } : {}),
93
143
  systemConfig: options.systemConfig,
94
- zoneId: options.zoneId,
144
+ writeLog: writeControllerRuntimeLog,
145
+ ...(options.zoneIds ? { zoneIds: options.zoneIds } : {}),
146
+ });
147
+ await runTaskStep('Starting selected gateway zones', async () => {
148
+ await registry.startSelectedZones();
95
149
  });
96
- const zone = findConfiguredZone(options.systemConfig, options.zoneId);
97
- let gateway;
98
- let gatewayBootedAt;
99
- const requireGateway = () => {
100
- if (!gateway) {
101
- throw new Error('Gateway runtime is unavailable because the last restart did not complete.');
102
- }
103
- return gateway;
104
- };
105
- const setGateway = (startedGateway) => {
106
- gateway = startedGateway;
107
- gatewayBootedAt = new Date(now()).toISOString();
108
- };
109
- if (activeZone.gateway.type !== 'worker') {
110
- await runTaskStep('Starting gateway zone', async () => {
111
- setGateway(await startGateway());
112
- });
113
- }
114
- const stopGatewayZone = async () => {
115
- if (!gateway) {
116
- return;
117
- }
118
- const activeGateway = gateway;
119
- gateway = undefined;
120
- gatewayBootedAt = undefined;
121
- let closeError;
122
- try {
123
- await activeGateway.vm.close();
124
- }
125
- catch (error) {
126
- closeError = error;
127
- }
128
- let deleteRecordError;
129
- try {
130
- await (dependencies.deleteGatewayRuntimeRecord ?? deleteGatewayRuntimeRecordDefault)(zone.gateway.stateDir);
131
- }
132
- catch (error) {
133
- deleteRecordError = error;
134
- }
135
- if (closeError) {
136
- throw closeError;
137
- }
138
- if (deleteRecordError) {
139
- throw deleteRecordError;
140
- }
141
- };
142
- const restartGatewayZone = async () => {
143
- await stopGatewayZone();
144
- setGateway(await startGateway());
145
- };
146
150
  const serverRef = {};
147
151
  const stopController = createStopControllerOperation({
148
152
  clearReaperTimer,
149
- closeControllerServer: () => setTimeout(() => void serverRef.current?.close(), 100),
153
+ closeControllerServer: async () => {
154
+ setTimeout(() => {
155
+ void serverRef.current?.close().catch((error) => {
156
+ writeControllerRuntimeLog(`Failed to close controller HTTP server after stop request: ${formatUnknownError(error)}`);
157
+ });
158
+ }, 100);
159
+ },
150
160
  getLeases: () => leaseManager.listLeases(),
151
161
  releaseLease: async (leaseId) => await leaseManager.releaseLease(leaseId),
152
- stopGatewayZone,
162
+ stopAllZones: async () => await registry.stopAllZones(),
153
163
  });
154
- const controllerOperations = activeZone.gateway.type !== 'worker'
155
- ? {
156
- ...createControllerRuntimeOperations({
157
- activeZoneId: options.zoneId,
158
- getGateway: () => requireGateway(),
159
- getGatewayBootedAt: () => gatewayBootedAt,
160
- getZone: (zoneId) => findConfiguredZone(options.systemConfig, zoneId),
161
- leaseManager,
162
- restartGatewayZone,
163
- secretResolver,
164
- stopGatewayZone,
165
- systemConfig: options.systemConfig,
166
- }),
167
- stopController,
168
- }
169
- : { stopController };
170
- const prepareWorkerTaskForZone = activeZone.gateway.type === 'worker'
171
- ? async (zoneId, input) => {
172
- const reservationId = activeTaskRegistry.tryReserve(zoneId, MAX_ACTIVE_TASKS_PER_RUNTIME);
173
- if (!reservationId) {
174
- throw new ControllerRuntimeAtCapacityError(`Worker pod for zone '${zoneId}' is at capacity.`);
175
- }
176
- try {
177
- return await (dependencies.prepareWorkerTask ?? prepareWorkerTaskDefault)({
178
- input,
179
- systemConfig: options.systemConfig,
180
- zoneId,
181
- ...(controllerGithubToken ? { githubToken: controllerGithubToken } : {}),
182
- onTaskPrepared: async (task) => {
183
- activeTaskRegistry.activateReservation(zoneId, reservationId, task);
184
- try {
185
- await dependencies.onWorkerTaskPrepared?.(task);
186
- }
187
- catch (error) {
188
- activeTaskRegistry.clear(task.zoneId, task.taskId);
189
- throw error;
190
- }
191
- },
192
- });
193
- }
194
- catch (error) {
195
- activeTaskRegistry.releaseReservation(zoneId, reservationId);
196
- throw error;
197
- }
198
- }
199
- : undefined;
200
- const executePreparedWorkerTask = activeZone.gateway.type === 'worker'
201
- ? async (prepared) => {
202
- let heartbeatAcquired = false;
203
- try {
204
- if (callerUrl) {
205
- requestHeartbeatRegistry.acquire(prepared.input.requestTaskId, callerUrl);
206
- heartbeatAcquired = true;
207
- }
208
- return await (dependencies.executeWorkerTask ?? executeWorkerTaskDefault)(prepared, {
209
- secretResolver,
210
- systemConfig: options.systemConfig,
211
- onWorkerTaskIngress: async (zoneId, taskId, workerIngress) => {
212
- activeTaskRegistry.setWorkerIngress(zoneId, taskId, workerIngress);
213
- await dependencies.onWorkerTaskIngress?.(zoneId, taskId, workerIngress);
214
- },
215
- onTaskFinished: async (finishedZoneId, taskId) => {
216
- activeTaskRegistry.clear(finishedZoneId, taskId);
217
- await dependencies.onWorkerTaskFinished?.(finishedZoneId, taskId);
218
- },
219
- });
220
- }
221
- catch (error) {
222
- if (activeTaskRegistry.get(prepared.zoneId, prepared.taskId)) {
223
- activeTaskRegistry.clear(prepared.zoneId, prepared.taskId);
224
- }
225
- throw error;
226
- }
227
- finally {
228
- if (heartbeatAcquired) {
229
- requestHeartbeatRegistry.release(prepared.input.requestTaskId);
230
- }
231
- }
232
- }
233
- : undefined;
234
- const getTaskState = activeZone.gateway.type === 'worker'
235
- ? createTaskStateReader({ systemConfig: options.systemConfig }).read
236
- : undefined;
237
- const closeTaskForZone = activeZone.gateway.type === 'worker'
238
- ? async (zoneId, taskId) => {
239
- const activeTask = activeTaskRegistry.get(zoneId, taskId);
240
- if (!activeTask) {
241
- throw new Error(`Task '${taskId}' is not active for zone '${zoneId}'.`);
242
- }
243
- if (!activeTask.workerIngress) {
244
- throw new ControllerTaskNotReadyError(`Task '${taskId}' in zone '${zoneId}' does not have a worker ingress yet.`);
245
- }
246
- const response = await fetch(`http://${activeTask.workerIngress.host}:${String(activeTask.workerIngress.port)}/tasks/${taskId}/close`, { method: 'POST' });
247
- if (!response.ok) {
248
- throw new Error(`worker close returned HTTP ${String(response.status)}`);
249
- }
250
- return { status: 'closed' };
251
- }
252
- : undefined;
253
- const pushTaskBranches = activeZone.gateway.type === 'worker'
254
- ? async (zoneId, taskId, input) => {
255
- const activeTask = activeTaskRegistry.get(zoneId, taskId);
256
- if (!activeTask) {
257
- throw new PushBranchesValidationError(`Task '${taskId}' is not active for zone '${zoneId}'.`);
258
- }
259
- if (!controllerGithubToken) {
260
- throw new Error('Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
261
- }
262
- return await pushBranchesForTask({
263
- activeTask,
264
- branches: input.branches,
265
- githubToken: controllerGithubToken,
266
- });
267
- }
268
- : undefined;
269
- const pullDefaultForActiveTask = activeZone.gateway.type === 'worker'
270
- ? async (zoneId, taskId, input) => {
271
- const activeTask = activeTaskRegistry.get(zoneId, taskId);
272
- if (!activeTask) {
273
- throw new PullDefaultValidationError(`Task '${taskId}' is not active for zone '${zoneId}'.`);
274
- }
275
- if (!controllerGithubToken) {
276
- throw new Error('Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
277
- }
278
- return await pullDefaultForTask({
279
- activeTask,
280
- repoUrl: input.repoUrl,
281
- githubToken: controllerGithubToken,
282
- });
283
- }
284
- : undefined;
285
164
  const operations = {
286
- ...controllerOperations,
287
- ...(prepareWorkerTaskForZone ? { prepareWorkerTask: prepareWorkerTaskForZone } : {}),
288
- ...(executePreparedWorkerTask ? { executeWorkerTask: executePreparedWorkerTask } : {}),
289
- ...(getTaskState ? { getTaskState } : {}),
290
- ...(closeTaskForZone ? { closeTaskForZone } : {}),
291
- ...(pushTaskBranches ? { pushTaskBranches } : {}),
292
- ...(pullDefaultForActiveTask ? { pullDefaultForTask: pullDefaultForActiveTask } : {}),
165
+ ...createControllerRuntimeOperations({
166
+ destroyZoneRuntime: async (zoneId, purge) => await registry.destroyZone(zoneId, purge),
167
+ getActiveLeases: () => leaseManager.listLeases(),
168
+ getOpenClawRuntime: (zoneId) => registry.getOpenClawRuntime(zoneId),
169
+ getRuntimeStatusByZone: () => registry.getSnapshotByZone(),
170
+ systemConfig: options.systemConfig,
171
+ }),
172
+ closeTaskForZone: async (zoneId, taskId) => await registry.getWorkerRuntime(zoneId).closeTaskForZone(taskId),
173
+ executeWorkerTask: async (prepared) => await registry.getWorkerRuntime(prepared.zoneId).executeWorkerTask(prepared),
174
+ getTaskState: async (zoneId, taskId) => await registry.getWorkerRuntime(zoneId).getTaskState(taskId),
175
+ prepareWorkerTask: async (zoneId, input) => await registry.getWorkerRuntime(zoneId).prepareWorkerTask(input),
176
+ pullDefaultForTask: async (zoneId, taskId, input) => await registry.getWorkerRuntime(zoneId).pullDefaultForTask(taskId, input),
177
+ pushTaskBranches: async (zoneId, taskId, input) => await registry.getWorkerRuntime(zoneId).pushTaskBranches(taskId, input),
178
+ stopController,
293
179
  };
294
180
  const controllerApp = createControllerService({
295
181
  leaseManager,
296
182
  operations,
183
+ secretResolver,
297
184
  systemConfig: options.systemConfig,
298
185
  });
299
186
  await runTaskStep(`Controller API on :${options.systemConfig.host.controllerPort}`, async () => {
@@ -303,31 +190,39 @@ export async function startControllerRuntime(options, dependencies) {
303
190
  });
304
191
  });
305
192
  await idleReaper.reapExpiredLeases();
193
+ const snapshotByZone = registry.getSnapshotByZone();
306
194
  return {
307
195
  async close() {
308
196
  clearReaperTimer();
309
197
  requestHeartbeatRegistry.stopAll();
310
198
  const releaseError = await releaseAllLeases();
199
+ let stopError;
311
200
  try {
312
- await stopGatewayZone();
201
+ await registry.stopAllZones();
202
+ }
203
+ catch (error) {
204
+ stopError = error instanceof Error ? error : new Error(formatUnknownError(error));
313
205
  }
314
206
  finally {
315
207
  await serverRef.current?.close();
316
208
  }
317
- if (releaseError) {
318
- throw releaseError;
209
+ const closeErrors = [releaseError, stopError].filter((error) => error !== undefined);
210
+ if (closeErrors.length === 1) {
211
+ throw closeErrors[0];
212
+ }
213
+ if (closeErrors.length > 1) {
214
+ throw new AggregateError(closeErrors, 'Controller shutdown failed in multiple steps.');
319
215
  }
320
216
  },
321
217
  controllerPort: options.systemConfig.host.controllerPort,
322
- ...(gateway
323
- ? {
324
- gateway: {
325
- ingress: requireGateway().ingress,
326
- processSpec: requireGateway().processSpec,
327
- vm: requireGateway().vm,
328
- },
329
- }
330
- : {}),
218
+ zones: registry.selectedZoneIds.map((zoneId) => {
219
+ const snapshot = snapshotByZone[zoneId] ?? { lifecycleState: 'stopped' };
220
+ const runtimeZone = {
221
+ lifecycleState: snapshot.lifecycleState,
222
+ zoneId,
223
+ };
224
+ return Object.assign(runtimeZone, snapshot.gateway ? { ingress: snapshot.gateway.ingress, vmId: snapshot.gateway.vm.id } : {}, snapshot.lastError ? { lastError: snapshot.lastError } : {});
225
+ }),
331
226
  };
332
227
  }
333
228
  //# sourceMappingURL=controller-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller-runtime.js","sourceRoot":"","sources":["../../src/controller/controller-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller-runtime.js","sourceRoot":"","sources":["../../src/controller/controller-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
+ import type { TaskEvent } from '@agent-vm/agent-vm-worker';
1
2
  import type { ActiveWorkerTask } from './active-task-registry.js';
2
3
  export interface PullDefaultRequest {
3
4
  readonly repoUrl: string;
5
+ readonly currentBranch?: string | null | undefined;
6
+ readonly currentHead?: string | undefined;
7
+ readonly worktreeDirty?: boolean | undefined;
4
8
  }
5
9
  export interface PullDefaultCommitSummary {
6
10
  readonly sha: string;
@@ -8,27 +12,115 @@ export interface PullDefaultCommitSummary {
8
12
  readonly author?: string;
9
13
  readonly date?: string;
10
14
  }
11
- export interface PullDefaultResult {
15
+ interface PullDefaultResultBase {
12
16
  readonly repoUrl: string;
13
- readonly success: boolean;
14
- readonly error?: string;
15
- readonly defaultBranch?: string;
16
- readonly remoteDefaultHead?: string;
17
- readonly localDefaultHead?: string;
17
+ readonly message: string;
18
+ }
19
+ export type PullDefaultResult = PullDefaultAdvancedResult | PullDefaultRefusedNotFastForwardResult | PullDefaultFailedResult;
20
+ export interface PullDefaultAdvancedResult extends PullDefaultResultBase {
21
+ readonly kind: 'advanced';
22
+ readonly success: true;
23
+ readonly defaultBranch: string;
24
+ readonly remoteDefaultHead: string;
25
+ readonly localDefaultHead: string;
18
26
  readonly currentBranch?: string | null;
19
- readonly fetchedCommits?: readonly PullDefaultCommitSummary[];
20
- readonly commitsSinceForkPoint?: readonly PullDefaultCommitSummary[];
21
- readonly divergence?: {
27
+ readonly fetchedCommits: readonly PullDefaultCommitSummary[];
28
+ readonly commitsSinceForkPoint: readonly PullDefaultCommitSummary[];
29
+ readonly currentBranchSync?: PullCurrentBranchSyncResult;
30
+ readonly divergence: {
22
31
  readonly aheadOfDefault: number;
23
32
  readonly behindDefault: number;
24
33
  readonly forkPoint: string;
25
34
  };
26
35
  }
36
+ export interface PullDefaultRefusedNotFastForwardResult extends PullDefaultResultBase {
37
+ readonly kind: 'refused-not-fast-forward';
38
+ readonly success: false;
39
+ readonly error: string;
40
+ readonly defaultBranch: string;
41
+ readonly remoteDefaultHead: string;
42
+ }
43
+ export interface PullDefaultFailedResult extends PullDefaultResultBase {
44
+ readonly kind: 'failed';
45
+ readonly success: false;
46
+ readonly error: string;
47
+ }
48
+ export type PullCurrentBranchSyncResult = PullCurrentBranchAheadResult | PullCurrentBranchDefaultBranchResult | PullCurrentBranchDetachedResult | PullCurrentBranchDirtyWorktreeResult | PullCurrentBranchDivergedResult | PullCurrentBranchFastForwardedResult | PullCurrentBranchNoUpstreamResult | PullCurrentBranchUpToDateResult;
49
+ interface PullCurrentBranchBaseResult {
50
+ readonly status: 'ahead' | 'default-branch' | 'detached' | 'dirty-worktree' | 'diverged' | 'fast-forwarded' | 'no-upstream' | 'up-to-date';
51
+ readonly branch: string | null;
52
+ readonly upstreamTrackingRef: string | null;
53
+ }
54
+ export interface PullCurrentBranchAheadResult extends PullCurrentBranchBaseResult {
55
+ readonly status: 'ahead';
56
+ readonly branch: string;
57
+ readonly upstreamTrackingRef: string;
58
+ readonly localHead: string;
59
+ readonly remoteHead: string;
60
+ readonly reason: string;
61
+ }
62
+ export interface PullCurrentBranchDefaultBranchResult extends PullCurrentBranchBaseResult {
63
+ readonly status: 'default-branch';
64
+ readonly branch: string;
65
+ readonly upstreamTrackingRef: string;
66
+ readonly localHead: string;
67
+ readonly remoteHead: string;
68
+ readonly reason: string;
69
+ }
70
+ export interface PullCurrentBranchDetachedResult extends PullCurrentBranchBaseResult {
71
+ readonly status: 'detached';
72
+ readonly branch: null;
73
+ readonly upstreamTrackingRef: null;
74
+ readonly localHead: string;
75
+ readonly reason: string;
76
+ }
77
+ export interface PullCurrentBranchDirtyWorktreeResult extends PullCurrentBranchBaseResult {
78
+ readonly status: 'dirty-worktree';
79
+ readonly branch: string;
80
+ readonly upstreamTrackingRef: string;
81
+ readonly localHead: string;
82
+ readonly remoteHead: string;
83
+ readonly reason: string;
84
+ }
85
+ export interface PullCurrentBranchDivergedResult extends PullCurrentBranchBaseResult {
86
+ readonly status: 'diverged';
87
+ readonly branch: string;
88
+ readonly upstreamTrackingRef: string;
89
+ readonly localHead: string;
90
+ readonly remoteHead: string;
91
+ readonly reason: string;
92
+ }
93
+ export interface PullCurrentBranchFastForwardedResult extends PullCurrentBranchBaseResult {
94
+ readonly status: 'fast-forwarded';
95
+ readonly branch: string;
96
+ readonly upstreamTrackingRef: string;
97
+ readonly localHead: string;
98
+ readonly remoteHead: string;
99
+ }
100
+ export interface PullCurrentBranchNoUpstreamResult extends PullCurrentBranchBaseResult {
101
+ readonly status: 'no-upstream';
102
+ readonly branch: string;
103
+ readonly upstreamTrackingRef: null;
104
+ readonly localHead?: string;
105
+ readonly reason: string;
106
+ }
107
+ export interface PullCurrentBranchUpToDateResult extends PullCurrentBranchBaseResult {
108
+ readonly status: 'up-to-date';
109
+ readonly branch: string;
110
+ readonly upstreamTrackingRef: string;
111
+ readonly localHead: string;
112
+ readonly remoteHead: string;
113
+ }
27
114
  export declare class PullDefaultValidationError extends Error {
28
115
  }
29
116
  export declare function pullDefaultForTask(options: {
30
117
  readonly activeTask: ActiveWorkerTask;
118
+ readonly currentBranch?: string | null;
119
+ readonly currentHead?: string;
31
120
  readonly repoUrl: string;
32
121
  readonly githubToken: string;
122
+ readonly recordEvent?: (event: TaskEvent) => Promise<void>;
123
+ readonly worktreeDirty?: boolean;
33
124
  }): Promise<PullDefaultResult>;
125
+ export {};
34
126
  //# sourceMappingURL=git-pull-default-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-pull-default-operations.d.ts","sourceRoot":"","sources":["../../src/controller/git-pull-default-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE;QACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC3B,CAAC;CACF;AAED,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AAgGxD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoG7B"}
1
+ {"version":3,"file":"git-pull-default-operations.d.ts","sourceRoot":"","sources":["../../src/controller/git-pull-default-operations.ts"],"names":[],"mappings":"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"}