@shravansunder/agent-vm 0.0.1 → 0.0.3
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/backup/backup-encryption.d.ts +2 -2
- package/dist/backup/backup-encryption.d.ts.map +1 -1
- package/dist/backup/backup-encryption.js +29 -7
- package/dist/backup/backup-encryption.js.map +1 -1
- package/dist/build/docker-image-builder.d.ts +3 -1
- package/dist/build/docker-image-builder.d.ts.map +1 -1
- package/dist/build/docker-image-builder.js +4 -4
- package/dist/build/docker-image-builder.js.map +1 -1
- package/dist/build/gondolin-image-builder.d.ts +2 -2
- package/dist/build/gondolin-image-builder.d.ts.map +1 -1
- package/dist/build/gondolin-image-builder.js +10 -9
- package/dist/build/gondolin-image-builder.js.map +1 -1
- package/dist/build/stale-image-cleaner.d.ts.map +1 -1
- package/dist/build/stale-image-cleaner.js +15 -11
- package/dist/build/stale-image-cleaner.js.map +1 -1
- package/dist/cli/agent-vm-cli-support.d.ts +3 -3
- package/dist/cli/agent-vm-cli-support.d.ts.map +1 -1
- package/dist/cli/agent-vm-cli-support.js +5 -8
- package/dist/cli/agent-vm-cli-support.js.map +1 -1
- package/dist/cli/agent-vm-entrypoint.js +0 -0
- package/dist/cli/auth-interactive-command.d.ts +1 -1
- package/dist/cli/auth-interactive-command.d.ts.map +1 -1
- package/dist/cli/build-command.d.ts +2 -1
- package/dist/cli/build-command.d.ts.map +1 -1
- package/dist/cli/build-command.js +29 -1
- package/dist/cli/build-command.js.map +1 -1
- package/dist/cli/commands/command-definition-support.js +5 -5
- package/dist/cli/commands/command-definition-support.js.map +1 -1
- package/dist/cli/commands/controller-definition.d.ts.map +1 -1
- package/dist/cli/commands/controller-definition.js +2 -2
- package/dist/cli/commands/controller-definition.js.map +1 -1
- package/dist/cli/commands/create-app.d.ts +139 -139
- package/dist/cli/commands/create-app.js +1 -1
- package/dist/cli/commands/init-definition.js +1 -1
- package/dist/cli/init-command.d.ts +2 -2
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +32 -49
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/openclaw-plugin-bundle.d.ts +8 -1
- package/dist/cli/openclaw-plugin-bundle.d.ts.map +1 -1
- package/dist/cli/openclaw-plugin-bundle.js +12 -7
- package/dist/cli/openclaw-plugin-bundle.js.map +1 -1
- package/dist/config/system-config.d.ts +21 -6
- package/dist/config/system-config.d.ts.map +1 -1
- package/dist/config/system-config.js +74 -8
- package/dist/config/system-config.js.map +1 -1
- package/dist/controller/composite-secret-resolver.d.ts +3 -0
- package/dist/controller/composite-secret-resolver.d.ts.map +1 -0
- package/dist/controller/composite-secret-resolver.js +38 -0
- package/dist/controller/composite-secret-resolver.js.map +1 -0
- package/dist/controller/controller-runtime-operations.d.ts +2 -2
- package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
- package/dist/controller/controller-runtime-operations.js +4 -16
- package/dist/controller/controller-runtime-operations.js.map +1 -1
- package/dist/controller/controller-runtime-support.d.ts +3 -2
- package/dist/controller/controller-runtime-support.d.ts.map +1 -1
- package/dist/controller/controller-runtime-support.js +11 -5
- package/dist/controller/controller-runtime-support.js.map +1 -1
- package/dist/controller/controller-runtime-types.d.ts +7 -3
- 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 +86 -20
- package/dist/controller/controller-runtime.js.map +1 -1
- package/dist/controller/docker-service-routing.d.ts +11 -0
- package/dist/controller/docker-service-routing.d.ts.map +1 -0
- package/dist/controller/docker-service-routing.js +148 -0
- package/dist/controller/docker-service-routing.js.map +1 -0
- package/dist/controller/http/controller-http-route-support.d.ts +8 -0
- package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
- package/dist/controller/http/controller-http-route-support.js.map +1 -1
- package/dist/controller/http/controller-http-routes.d.ts +2 -0
- package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-http-routes.js +20 -2
- package/dist/controller/http/controller-http-routes.js.map +1 -1
- package/dist/controller/http/controller-request-schemas.d.ts +8 -0
- package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
- package/dist/controller/http/controller-request-schemas.js +6 -0
- package/dist/controller/http/controller-request-schemas.js.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-zone-operation-routes.js +25 -1
- package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
- package/dist/controller/leases/lease-manager.d.ts +1 -1
- package/dist/controller/leases/lease-manager.d.ts.map +1 -1
- package/dist/controller/leases/lease-manager.js +1 -3
- package/dist/controller/leases/lease-manager.js.map +1 -1
- package/dist/controller/worker-task-runner.d.ts +39 -0
- package/dist/controller/worker-task-runner.d.ts.map +1 -0
- package/dist/controller/worker-task-runner.js +242 -0
- package/dist/controller/worker-task-runner.js.map +1 -0
- package/dist/gateway/credential-manager.d.ts +1 -1
- package/dist/gateway/credential-manager.d.ts.map +1 -1
- package/dist/gateway/credential-manager.js +26 -7
- package/dist/gateway/credential-manager.js.map +1 -1
- package/dist/gateway/gateway-image-builder.d.ts +1 -1
- package/dist/gateway/gateway-image-builder.d.ts.map +1 -1
- package/dist/gateway/gateway-lifecycle-loader.d.ts +1 -1
- package/dist/gateway/gateway-lifecycle-loader.d.ts.map +1 -1
- package/dist/gateway/gateway-lifecycle-loader.js +3 -3
- package/dist/gateway/gateway-lifecycle-loader.js.map +1 -1
- package/dist/gateway/gateway-recovery.d.ts +19 -0
- package/dist/gateway/gateway-recovery.d.ts.map +1 -0
- package/dist/gateway/gateway-recovery.js +147 -0
- package/dist/gateway/gateway-recovery.js.map +1 -0
- package/dist/gateway/gateway-runtime-record.d.ts +33 -0
- package/dist/gateway/gateway-runtime-record.d.ts.map +1 -0
- package/dist/gateway/gateway-runtime-record.js +114 -0
- package/dist/gateway/gateway-runtime-record.js.map +1 -0
- package/dist/gateway/gateway-zone-orchestrator.d.ts +6 -2
- package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-orchestrator.js +61 -16
- package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
- package/dist/gateway/gateway-zone-support.d.ts +7 -4
- package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-support.js +34 -0
- package/dist/gateway/gateway-zone-support.js.map +1 -1
- package/dist/operations/doctor.d.ts.map +1 -1
- package/dist/operations/doctor.js +22 -11
- package/dist/operations/doctor.js.map +1 -1
- package/dist/operations/upgrade-zone.d.ts +0 -1
- package/dist/operations/upgrade-zone.d.ts.map +1 -1
- package/dist/operations/upgrade-zone.js +0 -1
- package/dist/operations/upgrade-zone.js.map +1 -1
- package/dist/runtime/project-namespace.d.ts +5 -0
- package/dist/runtime/project-namespace.d.ts.map +1 -0
- package/dist/runtime/project-namespace.js +22 -0
- package/dist/runtime/project-namespace.js.map +1 -0
- package/dist/tool-vm/tool-vm-lifecycle.d.ts +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.js +3 -2
- package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
- package/package.json +42 -40
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type GatewayProcessSpec, type GatewayType } from '@shravansunder/gateway-interface';
|
|
2
|
+
import { type ManagedVm } from '@shravansunder/gondolin-core';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export declare const gatewayRuntimeRecordSchema: z.ZodObject<{
|
|
5
|
+
createdAt: z.ZodString;
|
|
6
|
+
gatewayType: z.ZodEnum<{
|
|
7
|
+
openclaw: "openclaw";
|
|
8
|
+
worker: "worker";
|
|
9
|
+
}>;
|
|
10
|
+
guestListenPort: z.ZodNumber;
|
|
11
|
+
ingressPort: z.ZodNumber;
|
|
12
|
+
projectNamespace: z.ZodString;
|
|
13
|
+
qemuPid: z.ZodNumber;
|
|
14
|
+
sessionLabel: z.ZodString;
|
|
15
|
+
vmId: z.ZodString;
|
|
16
|
+
zoneId: z.ZodString;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type GatewayRuntimeRecord = z.infer<typeof gatewayRuntimeRecordSchema>;
|
|
19
|
+
export type GatewayRuntimeLog = (message: string) => void;
|
|
20
|
+
export declare function loadGatewayRuntimeRecord(stateDirectory: string, options?: {
|
|
21
|
+
readonly log?: GatewayRuntimeLog;
|
|
22
|
+
}): Promise<GatewayRuntimeRecord | null>;
|
|
23
|
+
export declare function writeGatewayRuntimeRecord(stateDirectory: string, record: GatewayRuntimeRecord): Promise<void>;
|
|
24
|
+
export declare function deleteGatewayRuntimeRecord(stateDirectory: string): Promise<void>;
|
|
25
|
+
export declare function buildGatewayRuntimeRecord(options: {
|
|
26
|
+
readonly gatewayType: GatewayType;
|
|
27
|
+
readonly ingressPort: number;
|
|
28
|
+
readonly managedVm: ManagedVm;
|
|
29
|
+
readonly processSpec: GatewayProcessSpec;
|
|
30
|
+
readonly projectNamespace: string;
|
|
31
|
+
readonly zoneId: string;
|
|
32
|
+
}): GatewayRuntimeRecord;
|
|
33
|
+
//# sourceMappingURL=gateway-runtime-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-runtime-record.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-runtime-record.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAY,CAAC,EAAE,MAAM,KAAK,CAAC;AAElC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAUrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAwC1D,wBAAsB,wBAAwB,CAC7C,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE;IACR,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC;CAC5B,GACJ,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAyBtC;AAED,wBAAsB,yBAAyB,CAC9C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAmCD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,oBAAoB,CAcvB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { buildGatewaySessionLabel, gatewayTypeValues, } from '@shravansunder/gateway-interface';
|
|
4
|
+
import { writeFileAtomically } from '@shravansunder/gondolin-core';
|
|
5
|
+
import { ZodError, z } from 'zod';
|
|
6
|
+
export const gatewayRuntimeRecordSchema = z.object({
|
|
7
|
+
createdAt: z.string().datetime(),
|
|
8
|
+
gatewayType: z.enum(gatewayTypeValues),
|
|
9
|
+
guestListenPort: z.number().int().positive(),
|
|
10
|
+
ingressPort: z.number().int().positive(),
|
|
11
|
+
projectNamespace: z.string().min(1),
|
|
12
|
+
qemuPid: z.number().int().positive(),
|
|
13
|
+
sessionLabel: z.string().min(1),
|
|
14
|
+
vmId: z.string().min(1),
|
|
15
|
+
zoneId: z.string().min(1),
|
|
16
|
+
});
|
|
17
|
+
const gatewayRuntimeRecordFileName = 'gateway-runtime.json';
|
|
18
|
+
function resolveGatewayRuntimeRecordPath(stateDirectory) {
|
|
19
|
+
return path.join(stateDirectory, gatewayRuntimeRecordFileName);
|
|
20
|
+
}
|
|
21
|
+
function resolveInvalidGatewayRuntimeRecordPath(stateDirectory) {
|
|
22
|
+
return path.join(stateDirectory, `gateway-runtime.invalid.${Date.now()}.json`);
|
|
23
|
+
}
|
|
24
|
+
function isObjectRecord(value) {
|
|
25
|
+
return typeof value === 'object' && value !== null;
|
|
26
|
+
}
|
|
27
|
+
async function quarantineMalformedGatewayRuntimeRecord(stateDirectory, runtimeRecordPath, log) {
|
|
28
|
+
const invalidRuntimeRecordPath = resolveInvalidGatewayRuntimeRecordPath(stateDirectory);
|
|
29
|
+
try {
|
|
30
|
+
await fs.rename(runtimeRecordPath, invalidRuntimeRecordPath);
|
|
31
|
+
log(`Quarantined malformed gateway runtime record '${runtimeRecordPath}' to '${invalidRuntimeRecordPath}'.`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
await fs.rm(runtimeRecordPath, { force: true });
|
|
36
|
+
log(`Deleted malformed gateway runtime record '${runtimeRecordPath}' after quarantine rename failed: ${error instanceof Error ? error.message : JSON.stringify(error)}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function writeGatewayRuntimeLog(message) {
|
|
40
|
+
process.stderr.write(`[agent-vm] ${message}\n`);
|
|
41
|
+
}
|
|
42
|
+
export async function loadGatewayRuntimeRecord(stateDirectory, options = {}) {
|
|
43
|
+
const runtimeRecordPath = resolveGatewayRuntimeRecordPath(stateDirectory);
|
|
44
|
+
let rawRuntimeRecord;
|
|
45
|
+
try {
|
|
46
|
+
rawRuntimeRecord = await fs.readFile(runtimeRecordPath, 'utf8');
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT') {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
return gatewayRuntimeRecordSchema.parse(JSON.parse(rawRuntimeRecord));
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (!(error instanceof SyntaxError) && !(error instanceof ZodError)) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
await quarantineMalformedGatewayRuntimeRecord(stateDirectory, runtimeRecordPath, options.log ?? writeGatewayRuntimeLog);
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export async function writeGatewayRuntimeRecord(stateDirectory, record) {
|
|
66
|
+
const runtimeRecordPath = resolveGatewayRuntimeRecordPath(stateDirectory);
|
|
67
|
+
await fs.mkdir(stateDirectory, { recursive: true });
|
|
68
|
+
await writeFileAtomically(runtimeRecordPath, `${JSON.stringify(gatewayRuntimeRecordSchema.parse(record), null, 2)}\n`, { mode: 0o600 });
|
|
69
|
+
}
|
|
70
|
+
export async function deleteGatewayRuntimeRecord(stateDirectory) {
|
|
71
|
+
await fs.rm(resolveGatewayRuntimeRecordPath(stateDirectory), { force: true });
|
|
72
|
+
}
|
|
73
|
+
function resolveManagedVmQemuPid(managedVm) {
|
|
74
|
+
const vmInstance = managedVm.getVmInstance();
|
|
75
|
+
if (!isObjectRecord(vmInstance)) {
|
|
76
|
+
throw new Error('Gateway VM runtime is missing its live VM instance.');
|
|
77
|
+
}
|
|
78
|
+
// Level 1 currently relies on Gondolin's live runtime object graph:
|
|
79
|
+
// VM -> SandboxServer -> SandboxController -> child_process.ChildProcess.
|
|
80
|
+
// If Gondolin refactors that structure, we fail closed here instead of
|
|
81
|
+
// silently persisting an invalid pid into gateway-runtime.json.
|
|
82
|
+
const server = vmInstance.server;
|
|
83
|
+
if (!isObjectRecord(server)) {
|
|
84
|
+
throw new Error('Gateway VM runtime is missing its live sandbox server.');
|
|
85
|
+
}
|
|
86
|
+
const controller = server.controller;
|
|
87
|
+
if (!isObjectRecord(controller)) {
|
|
88
|
+
throw new Error('Gateway VM runtime is missing its live sandbox controller.');
|
|
89
|
+
}
|
|
90
|
+
const child = controller.child;
|
|
91
|
+
if (!isObjectRecord(child)) {
|
|
92
|
+
throw new Error('Gateway VM runtime is missing its live QEMU child process.');
|
|
93
|
+
}
|
|
94
|
+
const qemuPid = child.pid;
|
|
95
|
+
if (typeof qemuPid !== 'number' || !Number.isInteger(qemuPid) || qemuPid <= 0) {
|
|
96
|
+
throw new Error('Gateway VM runtime is missing its live QEMU pid.');
|
|
97
|
+
}
|
|
98
|
+
return qemuPid;
|
|
99
|
+
}
|
|
100
|
+
export function buildGatewayRuntimeRecord(options) {
|
|
101
|
+
const gatewayType = gatewayRuntimeRecordSchema.shape.gatewayType.parse(options.gatewayType);
|
|
102
|
+
return {
|
|
103
|
+
createdAt: new Date().toISOString(),
|
|
104
|
+
gatewayType,
|
|
105
|
+
guestListenPort: options.processSpec.guestListenPort,
|
|
106
|
+
ingressPort: options.ingressPort,
|
|
107
|
+
projectNamespace: options.projectNamespace,
|
|
108
|
+
qemuPid: resolveManagedVmQemuPid(options.managedVm),
|
|
109
|
+
sessionLabel: buildGatewaySessionLabel(options.projectNamespace, options.zoneId),
|
|
110
|
+
vmId: options.managedVm.id,
|
|
111
|
+
zoneId: options.zoneId,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=gateway-runtime-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-runtime-record.js","sourceRoot":"","sources":["../../src/gateway/gateway-runtime-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import type { GatewayLifecycle, GatewayZoneConfig } from '@shravansunder/
|
|
2
|
-
import { type ManagedVm } from '@shravansunder/
|
|
1
|
+
import type { GatewayLifecycle, GatewayZoneConfig } from '@shravansunder/gateway-interface';
|
|
2
|
+
import { type ManagedVm } from '@shravansunder/gondolin-core';
|
|
3
3
|
import { type GatewayImageBuilderDependencies } from './gateway-image-builder.js';
|
|
4
|
+
import { cleanupOrphanedGatewayIfPresent } from './gateway-recovery.js';
|
|
5
|
+
import { type GatewayRuntimeRecord } from './gateway-runtime-record.js';
|
|
4
6
|
import { type GatewayManagedVmFactoryOptions, type GatewayZoneStartResult, type StartGatewayZoneOptions } from './gateway-zone-support.js';
|
|
5
7
|
export interface GatewayManagerDependencies extends GatewayImageBuilderDependencies {
|
|
8
|
+
readonly cleanupOrphanedGatewayIfPresent?: typeof cleanupOrphanedGatewayIfPresent;
|
|
6
9
|
readonly createManagedVm?: (options: GatewayManagedVmFactoryOptions) => Promise<ManagedVm>;
|
|
7
10
|
readonly loadGatewayLifecycle?: (type: GatewayZoneConfig['gateway']['type']) => GatewayLifecycle;
|
|
11
|
+
readonly writeGatewayRuntimeRecord?: (stateDirectory: string, record: GatewayRuntimeRecord) => Promise<void>;
|
|
8
12
|
}
|
|
9
13
|
export declare function startGatewayZone(options: StartGatewayZoneOptions, dependencies?: GatewayManagerDependencies): Promise<GatewayZoneStartResult>;
|
|
10
14
|
//# sourceMappingURL=gateway-zone-orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-orchestrator.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway-zone-orchestrator.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAEN,KAAK,+BAA+B,EACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGN,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,0BAA2B,SAAQ,+BAA+B;IAClF,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,+BAA+B,CAAC;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3F,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC;IACjG,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CACpC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,oBAAoB,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AA4CD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,0BAA+B,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CA0HjC"}
|
|
@@ -1,32 +1,50 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { createManagedVm as createManagedVmFromCore, } from '@shravansunder/
|
|
3
|
+
import { createManagedVm as createManagedVmFromCore, } from '@shravansunder/gondolin-core';
|
|
4
4
|
import { runTaskWithResult } from '../shared/run-task.js';
|
|
5
5
|
import { resolveZoneSecrets } from './credential-manager.js';
|
|
6
6
|
import { buildGatewayImage, } from './gateway-image-builder.js';
|
|
7
7
|
import { loadGatewayLifecycle } from './gateway-lifecycle-loader.js';
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import { cleanupOrphanedGatewayIfPresent } from './gateway-recovery.js';
|
|
9
|
+
import { buildGatewayRuntimeRecord, writeGatewayRuntimeRecord, } from './gateway-runtime-record.js';
|
|
10
|
+
import { findGatewayZone, mapSystemGatewayZoneToLifecycleZone, } from './gateway-zone-support.js';
|
|
11
|
+
async function waitForHealth(options) {
|
|
12
|
+
const attempt = options.attempt ?? 0;
|
|
13
|
+
const maxAttempts = options.maxAttempts ?? 30;
|
|
14
|
+
const lastObservation = options.lastObservation ?? 'none';
|
|
10
15
|
if (attempt >= maxAttempts) {
|
|
11
16
|
throw new Error(`Gateway readiness check failed after ${maxAttempts} attempts. Last observation: ${lastObservation}.`);
|
|
12
17
|
}
|
|
13
|
-
const healthCommand = healthCheck.type === 'http'
|
|
14
|
-
? `curl -sS -o /dev/null -w "%{http_code}" --max-time 2 http://127.0.0.1:${healthCheck.port}${healthCheck.path} 2>/dev/null || echo 000`
|
|
15
|
-
: healthCheck.command;
|
|
16
|
-
const result = await managedVm.exec(healthCommand);
|
|
17
|
-
const currentObservation = healthCheck.type === 'http'
|
|
18
|
+
const healthCommand = options.healthCheck.type === 'http'
|
|
19
|
+
? `curl -sS -o /dev/null -w "%{http_code}" --max-time 2 http://127.0.0.1:${options.healthCheck.port}${options.healthCheck.path} 2>/dev/null || echo 000`
|
|
20
|
+
: options.healthCheck.command;
|
|
21
|
+
const result = await options.managedVm.exec(healthCommand);
|
|
22
|
+
const currentObservation = options.healthCheck.type === 'http'
|
|
18
23
|
? `http ${result.stdout.trim() || '(empty)'}`
|
|
19
24
|
: `exit ${result.exitCode}`;
|
|
20
|
-
if ((healthCheck.type === 'http' && result.stdout.trim().startsWith('2')) ||
|
|
21
|
-
(healthCheck.type === 'command' && result.exitCode === 0)) {
|
|
25
|
+
if ((options.healthCheck.type === 'http' && result.stdout.trim().startsWith('2')) ||
|
|
26
|
+
(options.healthCheck.type === 'command' && result.exitCode === 0)) {
|
|
22
27
|
return;
|
|
23
28
|
}
|
|
24
29
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
25
|
-
await waitForHealth(
|
|
30
|
+
await waitForHealth({
|
|
31
|
+
attempt: attempt + 1,
|
|
32
|
+
healthCheck: options.healthCheck,
|
|
33
|
+
lastObservation: currentObservation,
|
|
34
|
+
managedVm: options.managedVm,
|
|
35
|
+
maxAttempts,
|
|
36
|
+
});
|
|
26
37
|
}
|
|
27
38
|
export async function startGatewayZone(options, dependencies = {}) {
|
|
28
39
|
const runTaskStep = options.runTask ?? (async (_title, fn) => await fn());
|
|
29
|
-
const zone = findGatewayZone(options.systemConfig, options.zoneId);
|
|
40
|
+
const zone = options.zoneOverride ?? findGatewayZone(options.systemConfig, options.zoneId);
|
|
41
|
+
const lifecycleZone = mapSystemGatewayZoneToLifecycleZone(zone);
|
|
42
|
+
await runTaskStep('Cleaning orphaned gateway runtime', async () => {
|
|
43
|
+
await (dependencies.cleanupOrphanedGatewayIfPresent ?? cleanupOrphanedGatewayIfPresent)({
|
|
44
|
+
stateDir: zone.gateway.stateDir,
|
|
45
|
+
zoneId: zone.id,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
30
48
|
const lifecycle = (dependencies.loadGatewayLifecycle ?? loadGatewayLifecycle)(zone.gateway.type);
|
|
31
49
|
const resolvedSecrets = await runTaskWithResult(runTaskStep, 'Resolving zone secrets', async () => await resolveZoneSecrets({
|
|
32
50
|
systemConfig: options.systemConfig,
|
|
@@ -45,10 +63,16 @@ export async function startGatewayZone(options, dependencies = {}) {
|
|
|
45
63
|
await fs.mkdir(zone.gateway.stateDir, { recursive: true });
|
|
46
64
|
await fs.mkdir(zone.gateway.workspaceDir, { recursive: true });
|
|
47
65
|
await runTaskStep('Preparing host state', async () => {
|
|
48
|
-
await lifecycle.prepareHostState?.(
|
|
66
|
+
await lifecycle.prepareHostState?.(lifecycleZone, options.secretResolver);
|
|
67
|
+
});
|
|
68
|
+
const vmSpec = lifecycle.buildVmSpec({
|
|
69
|
+
controllerPort: options.systemConfig.host.controllerPort,
|
|
70
|
+
projectNamespace: options.systemConfig.host.projectNamespace,
|
|
71
|
+
resolvedSecrets,
|
|
72
|
+
tcpPool: options.systemConfig.tcpPool,
|
|
73
|
+
zone: lifecycleZone,
|
|
49
74
|
});
|
|
50
|
-
const
|
|
51
|
-
const processSpec = lifecycle.buildProcessSpec(zone, resolvedSecrets);
|
|
75
|
+
const processSpec = lifecycle.buildProcessSpec(lifecycleZone, resolvedSecrets);
|
|
52
76
|
const createManagedVm = dependencies.createManagedVm ?? createManagedVmFromCore;
|
|
53
77
|
const managedVm = await runTaskWithResult(runTaskStep, 'Booting gateway VM', async () => await createManagedVm({
|
|
54
78
|
allowedHosts: vmSpec.allowedHosts,
|
|
@@ -69,7 +93,10 @@ export async function startGatewayZone(options, dependencies = {}) {
|
|
|
69
93
|
await managedVm.exec(processSpec.startCommand);
|
|
70
94
|
});
|
|
71
95
|
await runTaskStep('Waiting for readiness', async () => {
|
|
72
|
-
await waitForHealth(
|
|
96
|
+
await waitForHealth({
|
|
97
|
+
healthCheck: processSpec.healthCheck,
|
|
98
|
+
managedVm,
|
|
99
|
+
});
|
|
73
100
|
});
|
|
74
101
|
managedVm.setIngressRoutes([
|
|
75
102
|
{
|
|
@@ -81,6 +108,24 @@ export async function startGatewayZone(options, dependencies = {}) {
|
|
|
81
108
|
const ingress = await managedVm.enableIngress({
|
|
82
109
|
listenPort: zone.gateway.port,
|
|
83
110
|
});
|
|
111
|
+
try {
|
|
112
|
+
await runTaskStep('Recording gateway runtime', async () => {
|
|
113
|
+
await (dependencies.writeGatewayRuntimeRecord ?? writeGatewayRuntimeRecord)(zone.gateway.stateDir, buildGatewayRuntimeRecord({
|
|
114
|
+
gatewayType: zone.gateway.type,
|
|
115
|
+
ingressPort: ingress.port,
|
|
116
|
+
managedVm,
|
|
117
|
+
processSpec,
|
|
118
|
+
projectNamespace: options.systemConfig.host.projectNamespace,
|
|
119
|
+
zoneId: zone.id,
|
|
120
|
+
}));
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
await managedVm.close().catch((closeError) => {
|
|
125
|
+
process.stderr.write(`[agent-vm] Failed to close gateway VM after runtime-record write failure: ${closeError instanceof Error ? closeError.message : JSON.stringify(closeError)}\n`);
|
|
126
|
+
});
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
84
129
|
return {
|
|
85
130
|
image,
|
|
86
131
|
ingress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-orchestrator.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EACN,eAAe,IAAI,uBAAuB,GAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway-zone-orchestrator.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import type { GatewayProcessSpec } from '@shravansunder/
|
|
1
|
+
import type { GatewayProcessSpec, GatewayZoneConfig } from '@shravansunder/gateway-interface';
|
|
2
2
|
import type { SystemConfig } from '../config/system-config.js';
|
|
3
3
|
import type { RunTaskFn } from '../shared/run-task.js';
|
|
4
4
|
export type GatewayZone = SystemConfig['zones'][number];
|
|
5
5
|
export interface StartGatewayZoneOptions {
|
|
6
6
|
readonly runTask?: RunTaskFn;
|
|
7
|
-
readonly secretResolver: import('@shravansunder/
|
|
7
|
+
readonly secretResolver: import('@shravansunder/gondolin-core').SecretResolver;
|
|
8
8
|
readonly systemConfig: SystemConfig;
|
|
9
|
+
readonly tcpHostsOverride?: Record<string, string>;
|
|
9
10
|
readonly zoneId: string;
|
|
11
|
+
readonly zoneOverride?: GatewayZone;
|
|
10
12
|
}
|
|
11
13
|
export interface GatewayZoneStartResult {
|
|
12
|
-
readonly image: import('@shravansunder/
|
|
14
|
+
readonly image: import('@shravansunder/gondolin-core').BuildImageResult;
|
|
13
15
|
readonly ingress: {
|
|
14
16
|
readonly host: string;
|
|
15
17
|
readonly port: number;
|
|
16
18
|
};
|
|
17
19
|
readonly processSpec: GatewayProcessSpec;
|
|
18
|
-
readonly vm: import('@shravansunder/
|
|
20
|
+
readonly vm: import('@shravansunder/gondolin-core').ManagedVm;
|
|
19
21
|
readonly zone: GatewayZone;
|
|
20
22
|
}
|
|
21
23
|
export interface GatewayBuildImageOptions {
|
|
@@ -46,4 +48,5 @@ export interface GatewayManagedVmFactoryOptions {
|
|
|
46
48
|
}>;
|
|
47
49
|
}
|
|
48
50
|
export declare function findGatewayZone(systemConfig: SystemConfig, zoneId: string): GatewayZone;
|
|
51
|
+
export declare function mapSystemGatewayZoneToLifecycleZone(zone: GatewayZone): GatewayZoneConfig;
|
|
49
52
|
//# sourceMappingURL=gateway-zone-support.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-support.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway-zone-support.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-zone-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,8BAA8B,EAAE,cAAc,CAAC;IAC/E,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,8BAA8B,EAAE,gBAAgB,CAAC;IACxE,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,OAAO,8BAA8B,EAAE,SAAS,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CACvB,MAAM,EACN;QACC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACvB,CACD,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CACzB,MAAM,EACN;QACC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE;YACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;SAClC,CAAC;KACF,CACD,CAAC;CACF;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAOvF;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,CAmCxF"}
|
|
@@ -5,4 +5,38 @@ export function findGatewayZone(systemConfig, zoneId) {
|
|
|
5
5
|
}
|
|
6
6
|
return zone;
|
|
7
7
|
}
|
|
8
|
+
export function mapSystemGatewayZoneToLifecycleZone(zone) {
|
|
9
|
+
return {
|
|
10
|
+
id: zone.id,
|
|
11
|
+
gateway: {
|
|
12
|
+
cpus: zone.gateway.cpus,
|
|
13
|
+
gatewayConfig: zone.gateway.gatewayConfig,
|
|
14
|
+
memory: zone.gateway.memory,
|
|
15
|
+
port: zone.gateway.port,
|
|
16
|
+
stateDir: zone.gateway.stateDir,
|
|
17
|
+
type: zone.gateway.type,
|
|
18
|
+
workspaceDir: zone.gateway.workspaceDir,
|
|
19
|
+
authProfilesRef: zone.gateway.authProfilesRef,
|
|
20
|
+
},
|
|
21
|
+
secrets: Object.fromEntries(Object.entries(zone.secrets).map(([secretName, secretConfig]) => [
|
|
22
|
+
secretName,
|
|
23
|
+
secretConfig.source === 'environment'
|
|
24
|
+
? {
|
|
25
|
+
source: 'environment',
|
|
26
|
+
...(secretConfig.hosts ? { hosts: secretConfig.hosts } : {}),
|
|
27
|
+
injection: secretConfig.injection,
|
|
28
|
+
envVar: secretConfig.envVar,
|
|
29
|
+
}
|
|
30
|
+
: {
|
|
31
|
+
source: '1password',
|
|
32
|
+
...(secretConfig.hosts ? { hosts: secretConfig.hosts } : {}),
|
|
33
|
+
injection: secretConfig.injection,
|
|
34
|
+
ref: secretConfig.ref,
|
|
35
|
+
},
|
|
36
|
+
])),
|
|
37
|
+
allowedHosts: zone.allowedHosts,
|
|
38
|
+
toolProfile: zone.toolProfile,
|
|
39
|
+
websocketBypass: zone.websocketBypass,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
8
42
|
//# sourceMappingURL=gateway-zone-support.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-zone-support.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-support.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gateway-zone-support.js","sourceRoot":"","sources":["../../src/gateway/gateway-zone-support.ts"],"names":[],"mappings":"AA8DA,MAAM,UAAU,eAAe,CAAC,YAA0B,EAAE,MAAc;IACzE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACrF,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,IAAiB;IACpE,OAAO;QACN,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;SAC7C;QACD,OAAO,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;YAChE,UAAU;YACV,YAAY,CAAC,MAAM,KAAK,aAAa;gBACpC,CAAC,CAAC;oBACA,MAAM,EAAE,aAAsB;oBAC9B,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,MAAM,EAAE,YAAY,CAAC,MAAM;iBAC3B;gBACF,CAAC,CAAC;oBACA,MAAM,EAAE,WAAoB;oBAC5B,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,GAAG,EAAE,YAAY,CAAC,GAAG;iBACrB;SACH,CAAC,CACF;QACD,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;KACrC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAC/B;AAeD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAC/B;AAeD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CA+F/F"}
|
|
@@ -20,8 +20,11 @@ export function runControllerDoctor(options) {
|
|
|
20
20
|
const multiplier = (memoryMatch[2] ?? '').toLowerCase() === 'g' ? 1024 * 1024 * 1024 : 1024 * 1024;
|
|
21
21
|
return totalBytes + numericValue * multiplier;
|
|
22
22
|
}, 0);
|
|
23
|
-
const tokenSource = options.systemConfig.host.secretsProvider
|
|
23
|
+
const tokenSource = options.systemConfig.host.secretsProvider?.tokenSource;
|
|
24
24
|
const tokenSourceReady = (() => {
|
|
25
|
+
if (!tokenSource) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
25
28
|
switch (tokenSource.type) {
|
|
26
29
|
case 'env': {
|
|
27
30
|
const envVar = tokenSource.envVar ?? 'OP_SERVICE_ACCOUNT_TOKEN';
|
|
@@ -31,6 +34,8 @@ export function runControllerDoctor(options) {
|
|
|
31
34
|
return availableBinaries.has('op');
|
|
32
35
|
case 'keychain':
|
|
33
36
|
return availableBinaries.has('security');
|
|
37
|
+
default:
|
|
38
|
+
return false;
|
|
34
39
|
}
|
|
35
40
|
})();
|
|
36
41
|
const checks = [
|
|
@@ -39,16 +44,22 @@ export function runControllerDoctor(options) {
|
|
|
39
44
|
ok: nodeMajorVersion >= 24,
|
|
40
45
|
...(nodeMajorVersion < 24 ? { hint: 'Requires Node.js >= 24. Install via nvm or fnm.' } : {}),
|
|
41
46
|
},
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
...(tokenSource
|
|
48
|
+
? [
|
|
49
|
+
{
|
|
50
|
+
name: '1password-token-source',
|
|
51
|
+
ok: tokenSourceReady,
|
|
52
|
+
...(!tokenSourceReady && tokenSource.type === 'env'
|
|
53
|
+
? {
|
|
54
|
+
hint: `Set ${tokenSource.envVar ?? 'OP_SERVICE_ACCOUNT_TOKEN'} environment variable`,
|
|
55
|
+
}
|
|
56
|
+
: {}),
|
|
57
|
+
...(!tokenSourceReady && tokenSource.type === 'op-cli'
|
|
58
|
+
? { hint: 'Install 1Password CLI: brew install 1password-cli' }
|
|
59
|
+
: {}),
|
|
60
|
+
},
|
|
61
|
+
]
|
|
62
|
+
: []),
|
|
52
63
|
checkBinary('qemu', 'qemu-system-aarch64', 'brew install qemu', availableBinaries),
|
|
53
64
|
checkBinary('age', 'age', 'brew install age', availableBinaries),
|
|
54
65
|
checkBinary('1password-cli', 'op', 'brew install 1password-cli', availableBinaries),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAwBA,SAAS,WAAW,CACnB,IAAY,EACZ,UAAkB,EAClB,WAAmB,EACnB,iBAAsC;IAEtC,OAAO;QACN,IAAI;QACJ,EAAE,EAAE,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;QACrC,GAAG,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACtE,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CACvC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAC3D,EAAE,CACF,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,GAAG,EAAU,CAAC;IACjE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,iBAAiB,CAAC;IACxE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC;IAC9E,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,GAAG,EAAU,CAAC;IACzE,MAAM,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QACrF,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,UAAU,GACf,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACjF,OAAO,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;IAC/C,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export declare function runControllerUpgrade(options: {
|
|
|
5
5
|
}, dependencies: {
|
|
6
6
|
readonly rebuildGatewayImage: (zoneId: string) => Promise<void>;
|
|
7
7
|
readonly restartGatewayZone: (zoneId: string) => Promise<void>;
|
|
8
|
-
readonly stopGatewayZone: (zoneId: string) => Promise<void>;
|
|
9
8
|
}): Promise<{
|
|
10
9
|
readonly ok: true;
|
|
11
10
|
readonly zoneId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-zone.d.ts","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,wBAAsB,oBAAoB,CACzC,OAAO,EAAE;IACR,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade-zone.d.ts","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,wBAAsB,oBAAoB,CACzC,OAAO,EAAE;IACR,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,GACC,OAAO,CAAC;IACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC,CASD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export async function runControllerUpgrade(options, dependencies) {
|
|
2
2
|
void options.systemConfig;
|
|
3
3
|
await dependencies.rebuildGatewayImage(options.zoneId);
|
|
4
|
-
await dependencies.stopGatewayZone(options.zoneId);
|
|
5
4
|
await dependencies.restartGatewayZone(options.zoneId);
|
|
6
5
|
return {
|
|
7
6
|
ok: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-zone.js","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAGC,EACD,
|
|
1
|
+
{"version":3,"file":"upgrade-zone.js","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAGC,EACD,YAGC;IAKD,KAAK,OAAO,CAAC,YAAY,CAAC;IAC1B,MAAM,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;QACN,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function buildDefaultProjectNamespace(targetDirectory: string, dependencies?: {
|
|
2
|
+
readonly realpath?: (targetDirectory: string) => Promise<string>;
|
|
3
|
+
readonly resolvePath?: (targetDirectory: string) => string;
|
|
4
|
+
}): Promise<string>;
|
|
5
|
+
//# sourceMappingURL=project-namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-namespace.d.ts","sourceRoot":"","sources":["../../src/runtime/project-namespace.ts"],"names":[],"mappings":"AAcA,wBAAsB,4BAA4B,CACjD,eAAe,EAAE,MAAM,EACvB,YAAY,GAAE;IACb,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;CACtD,GACJ,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
function slugifyProjectName(projectName) {
|
|
5
|
+
const normalizedProjectName = projectName
|
|
6
|
+
.toLowerCase()
|
|
7
|
+
.replace(/[^a-z0-9]+/gu, '-')
|
|
8
|
+
.replace(/^-+/u, '')
|
|
9
|
+
.replace(/-+$/u, '');
|
|
10
|
+
return normalizedProjectName.length > 0 ? normalizedProjectName : 'agent-vm';
|
|
11
|
+
}
|
|
12
|
+
export async function buildDefaultProjectNamespace(targetDirectory, dependencies = {}) {
|
|
13
|
+
const resolvedTargetDirectory = await (dependencies.realpath ?? fs.realpath)(targetDirectory).catch(() => (dependencies.resolvePath ?? path.resolve)(targetDirectory));
|
|
14
|
+
const projectName = slugifyProjectName(path.basename(resolvedTargetDirectory));
|
|
15
|
+
const projectHash = crypto
|
|
16
|
+
.createHash('sha1')
|
|
17
|
+
.update(resolvedTargetDirectory)
|
|
18
|
+
.digest('hex')
|
|
19
|
+
.slice(0, 8);
|
|
20
|
+
return `${projectName}-${projectHash}`;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=project-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-namespace.js","sourceRoot":"","sources":["../../src/runtime/project-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,kBAAkB,CAAC,WAAmB;IAC9C,MAAM,qBAAqB,GAAG,WAAW;SACvC,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEtB,OAAO,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,eAAuB,EACvB,eAGI,EAAE;IAEN,MAAM,uBAAuB,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAC3E,eAAe,CACf,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,MAAM;SACxB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEd,OAAO,GAAG,WAAW,IAAI,WAAW,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createManagedVm as createManagedVmFromCore, type ManagedVm } from '@shravansunder/
|
|
1
|
+
import { createManagedVm as createManagedVmFromCore, type ManagedVm } from '@shravansunder/gondolin-core';
|
|
2
2
|
import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
|
|
3
3
|
import type { SystemConfig } from '../config/system-config.js';
|
|
4
4
|
import type { ToolProfile } from '../controller/leases/lease-manager.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,eAAe,IAAI,uBAAuB,EAC1C,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC7B,KAAK,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,uBAAuB,CAAC;CAC1D;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAET;AAED,wBAAsB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF;AAED,wBAAsB,YAAY,CACjC,OAAO,EAAE;IACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,GAAE,2BAAgC,GAC5C,OAAO,CAAC,SAAS,CAAC,CAoCpB"}
|