@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.
- package/dist/cli/commands/controller-definition.d.ts +24 -24
- package/dist/cli/commands/create-app.d.ts +24 -24
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +17 -12
- package/dist/cli/init-command.js.map +1 -1
- package/dist/config/system-config.d.ts +35 -4
- package/dist/config/system-config.d.ts.map +1 -1
- package/dist/config/system-config.js +110 -19
- package/dist/config/system-config.js.map +1 -1
- package/dist/controller/active-task-registry.d.ts +4 -1
- package/dist/controller/active-task-registry.d.ts.map +1 -1
- package/dist/controller/active-task-registry.js +19 -2
- package/dist/controller/active-task-registry.js.map +1 -1
- package/dist/controller/controller-runtime-operations.d.ts +15 -31
- package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
- package/dist/controller/controller-runtime-operations.js +17 -92
- package/dist/controller/controller-runtime-operations.js.map +1 -1
- package/dist/controller/controller-runtime-types.d.ts +16 -11
- package/dist/controller/controller-runtime-types.d.ts.map +1 -1
- package/dist/controller/controller-runtime.d.ts.map +1 -1
- package/dist/controller/controller-runtime.js +124 -248
- package/dist/controller/controller-runtime.js.map +1 -1
- package/dist/controller/git-pull-default-operations.js +1 -1
- package/dist/controller/git-pull-default-operations.js.map +1 -1
- package/dist/controller/git-push-operations.js +1 -1
- package/dist/controller/git-push-operations.js.map +1 -1
- package/dist/controller/http/controller-http-route-support.d.ts +2 -2
- package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
- package/dist/controller/http/controller-http-route-support.js.map +1 -1
- package/dist/controller/http/controller-http-routes.d.ts +6 -2
- package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-http-routes.js +57 -11
- package/dist/controller/http/controller-http-routes.js.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.js +130 -11
- package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
- package/dist/controller/leases/agent-sandbox-seeding.d.ts +55 -0
- package/dist/controller/leases/agent-sandbox-seeding.d.ts.map +1 -0
- package/dist/controller/leases/agent-sandbox-seeding.js +178 -0
- package/dist/controller/leases/agent-sandbox-seeding.js.map +1 -0
- package/dist/controller/leases/idle-reaper.d.ts +4 -1
- package/dist/controller/leases/idle-reaper.d.ts.map +1 -1
- package/dist/controller/leases/idle-reaper.js +19 -8
- package/dist/controller/leases/idle-reaper.js.map +1 -1
- package/dist/controller/leases/lease-idle-policy.d.ts +12 -0
- package/dist/controller/leases/lease-idle-policy.d.ts.map +1 -0
- package/dist/controller/leases/lease-idle-policy.js +28 -0
- package/dist/controller/leases/lease-idle-policy.js.map +1 -0
- package/dist/controller/leases/lease-manager.d.ts +3 -3
- package/dist/controller/leases/lease-manager.d.ts.map +1 -1
- package/dist/controller/leases/lease-scope.d.ts +12 -0
- package/dist/controller/leases/lease-scope.d.ts.map +1 -0
- package/dist/controller/leases/lease-scope.js +19 -0
- package/dist/controller/leases/lease-scope.js.map +1 -0
- package/dist/controller/leases/lease-workspace-paths.js +4 -4
- package/dist/controller/leases/lease-workspace-paths.js.map +1 -1
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts +30 -0
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -0
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +110 -0
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -0
- package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts +33 -0
- package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts.map +1 -0
- package/dist/controller/zone-runtimes/worker-zone-runtime.js +224 -0
- package/dist/controller/zone-runtimes/worker-zone-runtime.js.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts +51 -0
- package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-errors.js +94 -0
- package/dist/controller/zone-runtimes/zone-runtime-errors.js.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts +26 -0
- package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-registry.js +84 -0
- package/dist/controller/zone-runtimes/zone-runtime-registry.js.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +89 -0
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -0
- package/dist/controller/zone-runtimes/zone-runtime-types.js +2 -0
- package/dist/controller/zone-runtimes/zone-runtime-types.js.map +1 -0
- package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-support.js +5 -2
- package/dist/gateway/gateway-zone-support.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/config-validation.d.ts.map +1 -1
- package/dist/operations/config-validation.js +48 -2
- package/dist/operations/config-validation.js.map +1 -1
- package/dist/operations/controller-status.d.ts +13 -8
- package/dist/operations/controller-status.d.ts.map +1 -1
- package/dist/operations/controller-status.js +13 -10
- package/dist/operations/controller-status.js.map +1 -1
- package/dist/operations/doctor.d.ts.map +1 -1
- package/dist/operations/doctor.js +64 -6
- package/dist/operations/doctor.js.map +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.d.ts +2 -2
- package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { resolveZoneSecrets } from '../../gateway/credential-manager.js';
|
|
2
|
+
import { deleteGatewayRuntimeRecord as deleteGatewayRuntimeRecordDefault } from '../../gateway/gateway-runtime-record.js';
|
|
3
|
+
import { startGatewayZone } from '../../gateway/gateway-zone-orchestrator.js';
|
|
4
|
+
import { runControllerCredentialsRefresh as runControllerCredentialsRefreshDefault } from '../../operations/credentials-refresh.js';
|
|
5
|
+
import { runControllerDestroy as runControllerDestroyDefault } from '../../operations/destroy-zone.js';
|
|
6
|
+
import { runControllerUpgrade as runControllerUpgradeDefault } from '../../operations/upgrade-zone.js';
|
|
7
|
+
import { runControllerLogs as runControllerLogsDefault } from '../../operations/zone-logs.js';
|
|
8
|
+
import { ControllerZoneRuntimeStartError, ControllerZoneRuntimeUnavailableError, } from './zone-runtime-errors.js';
|
|
9
|
+
function formatUnknownError(error) {
|
|
10
|
+
return error instanceof Error ? error.message : String(error);
|
|
11
|
+
}
|
|
12
|
+
export function createOpenClawZoneRuntime(options) {
|
|
13
|
+
let gateway;
|
|
14
|
+
let bootedAt;
|
|
15
|
+
let lastError;
|
|
16
|
+
const startGateway = async () => options.restartGatewayZone
|
|
17
|
+
? await options.restartGatewayZone(options.zone.id)
|
|
18
|
+
: await startGatewayZone({
|
|
19
|
+
secretResolver: options.secretResolver,
|
|
20
|
+
systemConfig: options.systemConfig,
|
|
21
|
+
zoneId: options.zone.id,
|
|
22
|
+
});
|
|
23
|
+
const requireGateway = () => {
|
|
24
|
+
if (!gateway) {
|
|
25
|
+
throw new ControllerZoneRuntimeUnavailableError(options.zone.id, lastError);
|
|
26
|
+
}
|
|
27
|
+
return gateway;
|
|
28
|
+
};
|
|
29
|
+
const stop = async () => {
|
|
30
|
+
const activeGateway = gateway;
|
|
31
|
+
gateway = undefined;
|
|
32
|
+
bootedAt = undefined;
|
|
33
|
+
lastError = undefined;
|
|
34
|
+
if (activeGateway) {
|
|
35
|
+
await activeGateway.vm.close();
|
|
36
|
+
}
|
|
37
|
+
await (options.deleteGatewayRuntimeRecord ?? deleteGatewayRuntimeRecordDefault)(options.zone.gateway.stateDir);
|
|
38
|
+
};
|
|
39
|
+
const start = async () => {
|
|
40
|
+
try {
|
|
41
|
+
const startedGateway = await startGateway();
|
|
42
|
+
gateway = startedGateway;
|
|
43
|
+
bootedAt = new Date(options.now()).toISOString();
|
|
44
|
+
lastError = undefined;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
gateway = undefined;
|
|
48
|
+
bootedAt = undefined;
|
|
49
|
+
lastError = formatUnknownError(error);
|
|
50
|
+
throw new ControllerZoneRuntimeStartError(options.zone.id, error);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const restart = async () => {
|
|
54
|
+
await stop();
|
|
55
|
+
await start();
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
destroy: async (purge) => await (options.runControllerDestroy ?? runControllerDestroyDefault)({ purge, systemConfig: options.systemConfig, zoneId: options.zone.id }, {
|
|
59
|
+
releaseZoneLeases: async (zoneId) => {
|
|
60
|
+
await Promise.all(options.leaseManager
|
|
61
|
+
.listLeases()
|
|
62
|
+
.filter((activeLease) => activeLease.zoneId === zoneId)
|
|
63
|
+
.map(async (lease) => await options.leaseManager.releaseLease(lease.id)));
|
|
64
|
+
},
|
|
65
|
+
stopGatewayZone: async () => await stop(),
|
|
66
|
+
}),
|
|
67
|
+
enableSsh: async () => await requireGateway().vm.enableSsh(),
|
|
68
|
+
exec: async (command) => await requireGateway().vm.exec(command),
|
|
69
|
+
gatewayType: 'openclaw',
|
|
70
|
+
getLogs: async () => {
|
|
71
|
+
const activeGateway = requireGateway();
|
|
72
|
+
return await (options.runControllerLogs ?? runControllerLogsDefault)({ zoneId: options.zone.id }, {
|
|
73
|
+
readGatewayLogs: async () => (await activeGateway.vm.exec(`cat ${activeGateway.processSpec.logPath} 2>/dev/null || echo ""`)).stdout,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
getSnapshot: () => {
|
|
77
|
+
if (gateway) {
|
|
78
|
+
return {
|
|
79
|
+
...(bootedAt ? { bootedAt } : {}),
|
|
80
|
+
gateway: {
|
|
81
|
+
ingress: gateway.ingress,
|
|
82
|
+
vm: { id: gateway.vm.id },
|
|
83
|
+
},
|
|
84
|
+
lifecycleState: 'running',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return lastError ? { lastError, lifecycleState: 'failed' } : { lifecycleState: 'stopped' };
|
|
88
|
+
},
|
|
89
|
+
refreshCredentials: async () => await (options.runControllerCredentialsRefresh ?? runControllerCredentialsRefreshDefault)({ zoneId: options.zone.id }, {
|
|
90
|
+
refreshZoneSecrets: async (zoneId) => {
|
|
91
|
+
await resolveZoneSecrets({
|
|
92
|
+
secretResolver: options.secretResolver,
|
|
93
|
+
systemConfig: options.systemConfig,
|
|
94
|
+
zoneId,
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
restartGatewayZone: async () => await restart(),
|
|
98
|
+
}),
|
|
99
|
+
restart,
|
|
100
|
+
shutdown: stop,
|
|
101
|
+
start,
|
|
102
|
+
stop,
|
|
103
|
+
upgrade: async () => await (options.runControllerUpgrade ?? runControllerUpgradeDefault)({ systemConfig: options.systemConfig, zoneId: options.zone.id }, {
|
|
104
|
+
rebuildGatewayImage: async () => { },
|
|
105
|
+
restartGatewayZone: async () => await restart(),
|
|
106
|
+
}),
|
|
107
|
+
zoneId: options.zone.id,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=openclaw-zone-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-zone-runtime.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/openclaw-zone-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { SecretResolver } from '@agent-vm/gondolin-adapter';
|
|
2
|
+
import type { LoadedSystemConfig } from '../../config/system-config.js';
|
|
3
|
+
import { runControllerDestroy as runControllerDestroyDefault } from '../../operations/destroy-zone.js';
|
|
4
|
+
import type { ActiveTaskRegistry, ActiveWorkerTask } from '../active-task-registry.js';
|
|
5
|
+
import type { RequestHeartbeatRegistry } from '../request-heartbeat-registry.js';
|
|
6
|
+
import { executeWorkerTask as executeWorkerTaskDefault, prepareWorkerTask as prepareWorkerTaskDefault, type PreparedWorkerTask, type WorkerTaskResult } from '../worker-task-runner.js';
|
|
7
|
+
import type { ControllerZoneConfig, WorkerZoneRuntime } from './zone-runtime-types.js';
|
|
8
|
+
type WorkerZoneConfig = ControllerZoneConfig & {
|
|
9
|
+
readonly gateway: Extract<ControllerZoneConfig['gateway'], {
|
|
10
|
+
readonly type: 'worker';
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export interface CreateWorkerZoneRuntimeOptions {
|
|
14
|
+
readonly activeTaskRegistry: Pick<ActiveTaskRegistry, 'activateReservation' | 'beginZoneDestroy' | 'clear' | 'countOccupiedForZone' | 'endZoneDestroy' | 'get' | 'listForZone' | 'releaseReservation' | 'setWorkerIngress' | 'tryReserve'>;
|
|
15
|
+
readonly controllerGithubToken: string | null;
|
|
16
|
+
readonly callerUrl?: string;
|
|
17
|
+
readonly executeWorkerTask?: (prepared: PreparedWorkerTask, dependencies: Parameters<typeof executeWorkerTaskDefault>[1]) => Promise<WorkerTaskResult>;
|
|
18
|
+
readonly onWorkerTaskFinished?: (zoneId: string, taskId: string) => void | Promise<void>;
|
|
19
|
+
readonly onWorkerTaskIngress?: (zoneId: string, taskId: string, workerIngress: {
|
|
20
|
+
readonly host: string;
|
|
21
|
+
readonly port: number;
|
|
22
|
+
}) => void | Promise<void>;
|
|
23
|
+
readonly onWorkerTaskPrepared?: (task: ActiveWorkerTask) => void | Promise<void>;
|
|
24
|
+
readonly prepareWorkerTask?: typeof prepareWorkerTaskDefault;
|
|
25
|
+
readonly requestHeartbeatRegistry: Pick<RequestHeartbeatRegistry, 'acquire' | 'release'>;
|
|
26
|
+
readonly runControllerDestroy?: typeof runControllerDestroyDefault;
|
|
27
|
+
readonly secretResolver: SecretResolver;
|
|
28
|
+
readonly systemConfig: LoadedSystemConfig;
|
|
29
|
+
readonly zone: WorkerZoneConfig;
|
|
30
|
+
}
|
|
31
|
+
export declare function createWorkerZoneRuntime(options: CreateWorkerZoneRuntimeOptions): WorkerZoneRuntime;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=worker-zone-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-zone-runtime.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/worker-zone-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EACN,iBAAiB,IAAI,wBAAwB,EAC7C,iBAAiB,IAAI,wBAAwB,EAC7C,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACrB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIvF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CACxF,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAChC,kBAAkB,EAChB,qBAAqB,GACrB,kBAAkB,GAClB,OAAO,GACP,sBAAsB,GACtB,gBAAgB,GAChB,KAAK,GACL,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,CACd,CAAC;IACF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,KACxD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAC3D,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IACzF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACnE,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CAChC;AA+CD,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,8BAA8B,GACrC,iBAAiB,CAwMnB"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { appendEvent } from '@agent-vm/agent-vm-worker';
|
|
2
|
+
import { runControllerDestroy as runControllerDestroyDefault } from '../../operations/destroy-zone.js';
|
|
3
|
+
import { pullDefaultForTask } from '../git-pull-default-operations.js';
|
|
4
|
+
import { pushBranchesForTask } from '../git-push-operations.js';
|
|
5
|
+
import { ControllerRuntimeAtCapacityError, ControllerTaskNotReadyError, } from '../http/controller-http-route-support.js';
|
|
6
|
+
import { createTaskStateReader } from '../task-state-reader.js';
|
|
7
|
+
import { executeWorkerTask as executeWorkerTaskDefault, prepareWorkerTask as prepareWorkerTaskDefault, } from '../worker-task-runner.js';
|
|
8
|
+
import { ControllerZoneConfigurationError, ControllerZoneTaskNotFoundError, ControllerZoneTaskNotReadyError, ControllerZoneWorkerCloseAggregateError, ControllerZoneWorkerCloseError, } from './zone-runtime-errors.js';
|
|
9
|
+
const MAX_ACTIVE_TASKS_PER_RUNTIME = 1;
|
|
10
|
+
async function recordActiveTaskEvent(options) {
|
|
11
|
+
await appendEvent(options.eventLogPath, options.event);
|
|
12
|
+
}
|
|
13
|
+
function writeWorkerZoneRuntimeLog(message) {
|
|
14
|
+
process.stderr.write(`[worker-zone-runtime] ${message}\n`);
|
|
15
|
+
}
|
|
16
|
+
async function closeActiveWorkerTask(activeTask) {
|
|
17
|
+
if (!activeTask.workerIngress) {
|
|
18
|
+
throw new ControllerZoneTaskNotReadyError(activeTask.zoneId, activeTask.taskId, `Task '${activeTask.taskId}' in zone '${activeTask.zoneId}' is still preparing and cannot be destroyed safely yet.`);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const response = await fetch(`http://${activeTask.workerIngress.host}:${String(activeTask.workerIngress.port)}/tasks/${activeTask.taskId}/close`, { method: 'POST' });
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
throw new ControllerZoneWorkerCloseError({
|
|
24
|
+
body: await response.text(),
|
|
25
|
+
httpStatus: response.status,
|
|
26
|
+
taskId: activeTask.taskId,
|
|
27
|
+
zoneId: activeTask.zoneId,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
if (error instanceof ControllerZoneWorkerCloseError) {
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
throw new ControllerZoneWorkerCloseError({
|
|
36
|
+
body: error instanceof Error ? error.message : String(error),
|
|
37
|
+
httpStatus: 0,
|
|
38
|
+
taskId: activeTask.taskId,
|
|
39
|
+
zoneId: activeTask.zoneId,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function createWorkerZoneRuntime(options) {
|
|
44
|
+
const readTaskState = createTaskStateReader({ systemConfig: options.systemConfig }).read;
|
|
45
|
+
return {
|
|
46
|
+
closeTaskForZone: async (taskId) => {
|
|
47
|
+
const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
|
|
48
|
+
if (!activeTask) {
|
|
49
|
+
throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
|
|
50
|
+
}
|
|
51
|
+
if (!activeTask.workerIngress) {
|
|
52
|
+
throw new ControllerTaskNotReadyError(`Task '${taskId}' in zone '${options.zone.id}' does not have a worker ingress yet.`);
|
|
53
|
+
}
|
|
54
|
+
await closeActiveWorkerTask(activeTask);
|
|
55
|
+
return { status: 'closed' };
|
|
56
|
+
},
|
|
57
|
+
destroy: async (purge) => {
|
|
58
|
+
let destroyGateAcquired = false;
|
|
59
|
+
try {
|
|
60
|
+
options.activeTaskRegistry.beginZoneDestroy(options.zone.id);
|
|
61
|
+
destroyGateAcquired = true;
|
|
62
|
+
return await (options.runControllerDestroy ?? runControllerDestroyDefault)({ purge, systemConfig: options.systemConfig, zoneId: options.zone.id }, {
|
|
63
|
+
releaseZoneLeases: async () => { },
|
|
64
|
+
stopGatewayZone: async (zoneId) => {
|
|
65
|
+
const activeTasks = options.activeTaskRegistry.listForZone(zoneId);
|
|
66
|
+
const occupiedTaskCount = options.activeTaskRegistry.countOccupiedForZone(zoneId);
|
|
67
|
+
if (occupiedTaskCount > activeTasks.length) {
|
|
68
|
+
const message = `Zone '${zoneId}' has ${String(occupiedTaskCount - activeTasks.length)} worker task reservation(s) still preparing and cannot be destroyed safely yet.`;
|
|
69
|
+
writeWorkerZoneRuntimeLog(`destroy refused: ${message}`);
|
|
70
|
+
throw new ControllerZoneTaskNotReadyError(zoneId, null, message);
|
|
71
|
+
}
|
|
72
|
+
const preparingTask = activeTasks.find((activeTask) => !activeTask.workerIngress);
|
|
73
|
+
if (preparingTask) {
|
|
74
|
+
const message = `Task '${preparingTask.taskId}' in zone '${zoneId}' is still preparing and cannot be destroyed safely yet.`;
|
|
75
|
+
writeWorkerZoneRuntimeLog(`destroy refused: ${message}`);
|
|
76
|
+
throw new ControllerZoneTaskNotReadyError(zoneId, preparingTask.taskId, message);
|
|
77
|
+
}
|
|
78
|
+
const closeResults = await Promise.allSettled(activeTasks.map(async (activeTask) => await closeActiveWorkerTask(activeTask)));
|
|
79
|
+
const closeFailures = closeResults.flatMap((result, index) => {
|
|
80
|
+
const activeTask = activeTasks[index];
|
|
81
|
+
if (result.status === 'fulfilled') {
|
|
82
|
+
if (activeTask) {
|
|
83
|
+
options.activeTaskRegistry.clear(activeTask.zoneId, activeTask.taskId);
|
|
84
|
+
}
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
if (result.reason instanceof ControllerZoneWorkerCloseError) {
|
|
88
|
+
return [result.reason];
|
|
89
|
+
}
|
|
90
|
+
return activeTask
|
|
91
|
+
? [
|
|
92
|
+
new ControllerZoneWorkerCloseError({
|
|
93
|
+
body: result.reason instanceof Error
|
|
94
|
+
? result.reason.message
|
|
95
|
+
: String(result.reason),
|
|
96
|
+
httpStatus: 0,
|
|
97
|
+
taskId: activeTask.taskId,
|
|
98
|
+
zoneId: activeTask.zoneId,
|
|
99
|
+
}),
|
|
100
|
+
]
|
|
101
|
+
: [];
|
|
102
|
+
});
|
|
103
|
+
if (closeFailures.length === 1) {
|
|
104
|
+
throw closeFailures[0];
|
|
105
|
+
}
|
|
106
|
+
if (closeFailures.length > 1) {
|
|
107
|
+
throw new ControllerZoneWorkerCloseAggregateError(zoneId, closeFailures);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
if (destroyGateAcquired) {
|
|
114
|
+
options.activeTaskRegistry.endZoneDestroy(options.zone.id);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
executeWorkerTask: async (prepared) => {
|
|
119
|
+
let heartbeatAcquired = false;
|
|
120
|
+
try {
|
|
121
|
+
if (options.callerUrl) {
|
|
122
|
+
options.requestHeartbeatRegistry.acquire(prepared.input.requestTaskId, options.callerUrl);
|
|
123
|
+
heartbeatAcquired = true;
|
|
124
|
+
}
|
|
125
|
+
return await (options.executeWorkerTask ?? executeWorkerTaskDefault)(prepared, {
|
|
126
|
+
onTaskFinished: async (finishedZoneId, taskId) => {
|
|
127
|
+
options.activeTaskRegistry.clear(finishedZoneId, taskId);
|
|
128
|
+
await options.onWorkerTaskFinished?.(finishedZoneId, taskId);
|
|
129
|
+
},
|
|
130
|
+
onWorkerTaskIngress: async (zoneId, taskId, workerIngress) => {
|
|
131
|
+
options.activeTaskRegistry.setWorkerIngress(zoneId, taskId, workerIngress);
|
|
132
|
+
await options.onWorkerTaskIngress?.(zoneId, taskId, workerIngress);
|
|
133
|
+
},
|
|
134
|
+
secretResolver: options.secretResolver,
|
|
135
|
+
systemConfig: options.systemConfig,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (options.activeTaskRegistry.get(prepared.zoneId, prepared.taskId)) {
|
|
140
|
+
options.activeTaskRegistry.clear(prepared.zoneId, prepared.taskId);
|
|
141
|
+
}
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
if (heartbeatAcquired) {
|
|
146
|
+
options.requestHeartbeatRegistry.release(prepared.input.requestTaskId);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
gatewayType: 'worker',
|
|
151
|
+
getSnapshot: () => ({
|
|
152
|
+
lifecycleState: options.activeTaskRegistry.listForZone(options.zone.id).length > 0 ? 'running' : 'stopped',
|
|
153
|
+
}),
|
|
154
|
+
getTaskState: async (taskId) => await readTaskState(options.zone.id, taskId),
|
|
155
|
+
prepareWorkerTask: async (input) => {
|
|
156
|
+
const reservationId = options.activeTaskRegistry.tryReserve(options.zone.id, MAX_ACTIVE_TASKS_PER_RUNTIME);
|
|
157
|
+
if (!reservationId) {
|
|
158
|
+
throw new ControllerRuntimeAtCapacityError(`Worker pod for zone '${options.zone.id}' is at capacity.`);
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
return await (options.prepareWorkerTask ?? prepareWorkerTaskDefault)({
|
|
162
|
+
...(options.controllerGithubToken ? { githubToken: options.controllerGithubToken } : {}),
|
|
163
|
+
input,
|
|
164
|
+
onTaskPrepared: async (task) => {
|
|
165
|
+
options.activeTaskRegistry.activateReservation(options.zone.id, reservationId, task);
|
|
166
|
+
await options.onWorkerTaskPrepared?.(task);
|
|
167
|
+
},
|
|
168
|
+
systemConfig: options.systemConfig,
|
|
169
|
+
zoneId: options.zone.id,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
options.activeTaskRegistry.releaseReservation(options.zone.id, reservationId);
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
pullDefaultForTask: async (taskId, input) => {
|
|
178
|
+
const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
|
|
179
|
+
if (!activeTask) {
|
|
180
|
+
throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
|
|
181
|
+
}
|
|
182
|
+
if (!options.controllerGithubToken) {
|
|
183
|
+
throw new ControllerZoneConfigurationError(options.zone.id, 'Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
|
|
184
|
+
}
|
|
185
|
+
return await pullDefaultForTask({
|
|
186
|
+
activeTask,
|
|
187
|
+
...(input.currentBranch !== undefined ? { currentBranch: input.currentBranch } : {}),
|
|
188
|
+
...(input.currentHead !== undefined ? { currentHead: input.currentHead } : {}),
|
|
189
|
+
githubToken: options.controllerGithubToken,
|
|
190
|
+
recordEvent: async (event) => {
|
|
191
|
+
await recordActiveTaskEvent({
|
|
192
|
+
event,
|
|
193
|
+
eventLogPath: activeTask.eventLogPath,
|
|
194
|
+
});
|
|
195
|
+
},
|
|
196
|
+
repoUrl: input.repoUrl,
|
|
197
|
+
...(input.worktreeDirty !== undefined ? { worktreeDirty: input.worktreeDirty } : {}),
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
pushTaskBranches: async (taskId, input) => {
|
|
201
|
+
const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
|
|
202
|
+
if (!activeTask) {
|
|
203
|
+
throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
|
|
204
|
+
}
|
|
205
|
+
if (!options.controllerGithubToken) {
|
|
206
|
+
throw new ControllerZoneConfigurationError(options.zone.id, 'Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
|
|
207
|
+
}
|
|
208
|
+
return await pushBranchesForTask({
|
|
209
|
+
activeTask,
|
|
210
|
+
branches: input.branches,
|
|
211
|
+
githubToken: options.controllerGithubToken,
|
|
212
|
+
recordEvent: async (event) => {
|
|
213
|
+
await recordActiveTaskEvent({
|
|
214
|
+
event,
|
|
215
|
+
eventLogPath: activeTask.eventLogPath,
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
},
|
|
220
|
+
shutdown: async () => { },
|
|
221
|
+
zoneId: options.zone.id,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=worker-zone-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-zone-runtime.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/worker-zone-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare class ControllerZoneNotFoundError extends Error {
|
|
2
|
+
readonly zoneId: string;
|
|
3
|
+
constructor(zoneId: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class ControllerZoneOperationUnsupportedError extends Error {
|
|
6
|
+
readonly gatewayType: string;
|
|
7
|
+
readonly operationName: string;
|
|
8
|
+
readonly zoneId: string;
|
|
9
|
+
constructor(zoneId: string, operationName: string, gatewayType: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class ControllerZoneConfigurationError extends Error {
|
|
12
|
+
readonly zoneId: string;
|
|
13
|
+
constructor(zoneId: string, message: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class ControllerZoneTaskNotFoundError extends Error {
|
|
16
|
+
readonly taskId: string;
|
|
17
|
+
readonly zoneId: string;
|
|
18
|
+
constructor(zoneId: string, taskId: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class ControllerZoneTaskNotReadyError extends Error {
|
|
21
|
+
readonly taskId: string | null;
|
|
22
|
+
readonly zoneId: string;
|
|
23
|
+
constructor(zoneId: string, taskId: string | null, message: string);
|
|
24
|
+
}
|
|
25
|
+
export declare class ControllerZoneWorkerCloseError extends Error {
|
|
26
|
+
readonly body: string;
|
|
27
|
+
readonly httpStatus: number;
|
|
28
|
+
readonly taskId: string;
|
|
29
|
+
readonly zoneId: string;
|
|
30
|
+
constructor(options: {
|
|
31
|
+
readonly body: string;
|
|
32
|
+
readonly httpStatus: number;
|
|
33
|
+
readonly taskId: string;
|
|
34
|
+
readonly zoneId: string;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export declare class ControllerZoneWorkerCloseAggregateError extends AggregateError {
|
|
38
|
+
readonly failures: readonly ControllerZoneWorkerCloseError[];
|
|
39
|
+
readonly zoneId: string;
|
|
40
|
+
constructor(zoneId: string, failures: readonly ControllerZoneWorkerCloseError[]);
|
|
41
|
+
}
|
|
42
|
+
export declare class ControllerZoneRuntimeUnavailableError extends Error {
|
|
43
|
+
readonly lastError: string | undefined;
|
|
44
|
+
readonly zoneId: string;
|
|
45
|
+
constructor(zoneId: string, lastError?: string);
|
|
46
|
+
}
|
|
47
|
+
export declare class ControllerZoneRuntimeStartError extends Error {
|
|
48
|
+
readonly zoneId: string;
|
|
49
|
+
constructor(zoneId: string, cause: unknown);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=zone-runtime-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-runtime-errors.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,2BAA4B,SAAQ,KAAK;IACrD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAKjC;AAED,qBAAa,uCAAwC,SAAQ,KAAK;IACjE,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO7E;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IAC1D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKlD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMjD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CAMzE;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACxD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB;CAQD;AAED,qBAAa,uCAAwC,SAAQ,cAAc;IAC1E,SAAgB,QAAQ,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACpE,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,8BAA8B,EAAE;CAStF;AAED,qBAAa,qCAAsC,SAAQ,KAAK;IAC/D,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAUrD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMjD"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export class ControllerZoneNotFoundError extends Error {
|
|
2
|
+
zoneId;
|
|
3
|
+
constructor(zoneId) {
|
|
4
|
+
super(`Unknown zone '${zoneId}'.`);
|
|
5
|
+
this.name = 'ControllerZoneNotFoundError';
|
|
6
|
+
this.zoneId = zoneId;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ControllerZoneOperationUnsupportedError extends Error {
|
|
10
|
+
gatewayType;
|
|
11
|
+
operationName;
|
|
12
|
+
zoneId;
|
|
13
|
+
constructor(zoneId, operationName, gatewayType) {
|
|
14
|
+
super(`Zone '${zoneId}' with gateway type '${gatewayType}' does not support ${operationName}.`);
|
|
15
|
+
this.name = 'ControllerZoneOperationUnsupportedError';
|
|
16
|
+
this.gatewayType = gatewayType;
|
|
17
|
+
this.operationName = operationName;
|
|
18
|
+
this.zoneId = zoneId;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class ControllerZoneConfigurationError extends Error {
|
|
22
|
+
zoneId;
|
|
23
|
+
constructor(zoneId, message) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = 'ControllerZoneConfigurationError';
|
|
26
|
+
this.zoneId = zoneId;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class ControllerZoneTaskNotFoundError extends Error {
|
|
30
|
+
taskId;
|
|
31
|
+
zoneId;
|
|
32
|
+
constructor(zoneId, taskId) {
|
|
33
|
+
super(`Task '${taskId}' is not active for zone '${zoneId}'.`);
|
|
34
|
+
this.name = 'ControllerZoneTaskNotFoundError';
|
|
35
|
+
this.zoneId = zoneId;
|
|
36
|
+
this.taskId = taskId;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class ControllerZoneTaskNotReadyError extends Error {
|
|
40
|
+
taskId;
|
|
41
|
+
zoneId;
|
|
42
|
+
constructor(zoneId, taskId, message) {
|
|
43
|
+
super(message);
|
|
44
|
+
this.name = 'ControllerZoneTaskNotReadyError';
|
|
45
|
+
this.zoneId = zoneId;
|
|
46
|
+
this.taskId = taskId;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class ControllerZoneWorkerCloseError extends Error {
|
|
50
|
+
body;
|
|
51
|
+
httpStatus;
|
|
52
|
+
taskId;
|
|
53
|
+
zoneId;
|
|
54
|
+
constructor(options) {
|
|
55
|
+
super(`worker close returned HTTP ${String(options.httpStatus)} for task '${options.taskId}'`);
|
|
56
|
+
this.name = 'ControllerZoneWorkerCloseError';
|
|
57
|
+
this.body = options.body;
|
|
58
|
+
this.httpStatus = options.httpStatus;
|
|
59
|
+
this.taskId = options.taskId;
|
|
60
|
+
this.zoneId = options.zoneId;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class ControllerZoneWorkerCloseAggregateError extends AggregateError {
|
|
64
|
+
failures;
|
|
65
|
+
zoneId;
|
|
66
|
+
constructor(zoneId, failures) {
|
|
67
|
+
super(failures, `Failed to close ${String(failures.length)} worker task(s) for zone '${zoneId}'.`);
|
|
68
|
+
this.name = 'ControllerZoneWorkerCloseAggregateError';
|
|
69
|
+
this.zoneId = zoneId;
|
|
70
|
+
this.failures = failures;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export class ControllerZoneRuntimeUnavailableError extends Error {
|
|
74
|
+
lastError;
|
|
75
|
+
zoneId;
|
|
76
|
+
constructor(zoneId, lastError) {
|
|
77
|
+
super(lastError
|
|
78
|
+
? `Gateway runtime for zone '${zoneId}' is unavailable. Last error: ${lastError}`
|
|
79
|
+
: `Gateway runtime for zone '${zoneId}' is unavailable.`);
|
|
80
|
+
this.name = 'ControllerZoneRuntimeUnavailableError';
|
|
81
|
+
this.lastError = lastError;
|
|
82
|
+
this.zoneId = zoneId;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export class ControllerZoneRuntimeStartError extends Error {
|
|
86
|
+
zoneId;
|
|
87
|
+
constructor(zoneId, cause) {
|
|
88
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
89
|
+
super(`Failed to start zone '${zoneId}': ${message}`, { cause });
|
|
90
|
+
this.name = 'ControllerZoneRuntimeStartError';
|
|
91
|
+
this.zoneId = zoneId;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=zone-runtime-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-runtime-errors.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LoadedSystemConfig } from '../../config/system-config.js';
|
|
2
|
+
import type { ControllerZoneRuntime, ControllerZoneRuntimeSnapshot, OpenClawZoneRuntime, WorkerZoneRuntime } from './zone-runtime-types.js';
|
|
3
|
+
export interface ZoneRuntimeRegistry {
|
|
4
|
+
readonly selectedZoneIds: readonly string[];
|
|
5
|
+
destroyZone(zoneId: string, purge: boolean): Promise<{
|
|
6
|
+
readonly ok: true;
|
|
7
|
+
readonly purged: boolean;
|
|
8
|
+
readonly zoneId: string;
|
|
9
|
+
}>;
|
|
10
|
+
getOpenClawRuntime(zoneId: string): OpenClawZoneRuntime;
|
|
11
|
+
getSnapshotByZone(): Readonly<Record<string, ControllerZoneRuntimeSnapshot>>;
|
|
12
|
+
getWorkerRuntime(zoneId: string): WorkerZoneRuntime;
|
|
13
|
+
startSelectedZones(): Promise<void>;
|
|
14
|
+
stopAllZones(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare function createZoneRuntimeRegistry(options: {
|
|
17
|
+
readonly createRuntimeForZone: (zone: LoadedSystemConfig['zones'][number]) => ControllerZoneRuntime;
|
|
18
|
+
readonly startupFailures?: readonly {
|
|
19
|
+
readonly lastError: string;
|
|
20
|
+
readonly zoneId: string;
|
|
21
|
+
}[];
|
|
22
|
+
readonly systemConfig: LoadedSystemConfig;
|
|
23
|
+
readonly zoneIds?: readonly string[];
|
|
24
|
+
readonly writeLog?: (message: string) => void;
|
|
25
|
+
}): ZoneRuntimeRegistry;
|
|
26
|
+
//# sourceMappingURL=zone-runtime-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-runtime-registry.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKxE,OAAO,KAAK,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,WAAW,CACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC;QACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACxD,iBAAiB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,oBAAoB,EAAE,CAC9B,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KACrC,qBAAqB,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GAAG,mBAAmB,CA2GtB"}
|