@agent-vm/agent-vm 0.0.56 → 0.0.58
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-create-operation.d.ts +2 -0
- package/dist/backup/backup-create-operation.d.ts.map +1 -1
- package/dist/backup/backup-create-operation.js +23 -0
- package/dist/backup/backup-create-operation.js.map +1 -1
- package/dist/backup/backup-manager.d.ts +2 -0
- package/dist/backup/backup-manager.d.ts.map +1 -1
- package/dist/backup/backup-manager.js +1 -0
- package/dist/backup/backup-manager.js.map +1 -1
- package/dist/build/gondolin-image-builder.d.ts +1 -3
- package/dist/build/gondolin-image-builder.d.ts.map +1 -1
- package/dist/build/gondolin-image-builder.js +1 -9
- package/dist/build/gondolin-image-builder.js.map +1 -1
- package/dist/build/managed-image-dockerfile.d.ts +33 -3
- package/dist/build/managed-image-dockerfile.d.ts.map +1 -1
- package/dist/build/managed-image-dockerfile.js +174 -15
- package/dist/build/managed-image-dockerfile.js.map +1 -1
- package/dist/cli/agent-vm-entrypoint.js +1 -1
- package/dist/cli/agent-vm-entrypoint.js.map +1 -1
- package/dist/cli/backup-commands.d.ts.map +1 -1
- package/dist/cli/backup-commands.js +18 -0
- package/dist/cli/backup-commands.js.map +1 -1
- package/dist/cli/build-command.d.ts +3 -5
- package/dist/cli/build-command.d.ts.map +1 -1
- package/dist/cli/build-command.js +39 -15
- package/dist/cli/build-command.js.map +1 -1
- package/dist/cli/cache-commands.d.ts +1 -1
- package/dist/cli/cache-commands.d.ts.map +1 -1
- package/dist/cli/cache-commands.js +2 -3
- package/dist/cli/cache-commands.js.map +1 -1
- package/dist/cli/commands/controller-definition.d.ts +8 -8
- package/dist/cli/commands/controller-definition.d.ts.map +1 -1
- package/dist/cli/commands/controller-definition.js +1 -1
- package/dist/cli/commands/controller-definition.js.map +1 -1
- package/dist/cli/commands/create-app.d.ts +120 -46
- package/dist/cli/commands/create-app.d.ts.map +1 -1
- package/dist/cli/commands/create-app.js +2 -0
- package/dist/cli/commands/create-app.js.map +1 -1
- package/dist/cli/commands/init-definition.d.ts +4 -2
- package/dist/cli/commands/init-definition.d.ts.map +1 -1
- package/dist/cli/commands/init-definition.js +24 -1
- package/dist/cli/commands/init-definition.js.map +1 -1
- package/dist/cli/commands/resources-definition.d.ts +8 -8
- package/dist/cli/commands/zone-git-definition.d.ts +67 -0
- package/dist/cli/commands/zone-git-definition.d.ts.map +1 -0
- package/dist/cli/commands/zone-git-definition.js +46 -0
- package/dist/cli/commands/zone-git-definition.js.map +1 -0
- package/dist/cli/controller-operation-commands.d.ts.map +1 -1
- package/dist/cli/controller-operation-commands.js +20 -23
- package/dist/cli/controller-operation-commands.js.map +1 -1
- package/dist/cli/init-command.d.ts +2 -1
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +48 -30
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/manual-templates.d.ts.map +1 -1
- package/dist/cli/manual-templates.js +76 -16
- package/dist/cli/manual-templates.js.map +1 -1
- package/dist/cli/run-task.d.ts.map +1 -1
- package/dist/cli/run-task.js +4 -1
- package/dist/cli/run-task.js.map +1 -1
- package/dist/cli/zone-git-commands.d.ts +13 -0
- package/dist/cli/zone-git-commands.d.ts.map +1 -0
- package/dist/cli/zone-git-commands.js +89 -0
- package/dist/cli/zone-git-commands.js.map +1 -0
- package/dist/config/system-config.d.ts +8 -1
- package/dist/config/system-config.d.ts.map +1 -1
- package/dist/config/system-config.js +22 -4
- package/dist/config/system-config.js.map +1 -1
- package/dist/controller/controller-runtime-types.d.ts +6 -0
- 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 +49 -1
- package/dist/controller/controller-runtime.js.map +1 -1
- package/dist/controller/git-auth-support.d.ts +4 -0
- package/dist/controller/git-auth-support.d.ts.map +1 -1
- package/dist/controller/git-auth-support.js +17 -0
- package/dist/controller/git-auth-support.js.map +1 -1
- package/dist/controller/git-push-operations.d.ts.map +1 -1
- package/dist/controller/git-push-operations.js +9 -13
- package/dist/controller/git-push-operations.js.map +1 -1
- package/dist/controller/http/controller-http-route-support.d.ts +6 -1
- package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
- package/dist/controller/http/controller-http-route-support.js +1 -1
- package/dist/controller/http/controller-http-route-support.js.map +1 -1
- package/dist/controller/http/controller-http-routes.d.ts +2 -1
- package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
- package/dist/controller/http/controller-http-routes.js +11 -5
- package/dist/controller/http/controller-http-routes.js.map +1 -1
- package/dist/controller/http/controller-request-schemas.d.ts +3 -0
- package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
- package/dist/controller/http/controller-request-schemas.js +5 -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 +54 -1
- package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
- package/dist/controller/leases/lease-manager.d.ts +7 -0
- package/dist/controller/leases/lease-manager.d.ts.map +1 -1
- package/dist/controller/leases/lease-manager.js +15 -0
- package/dist/controller/leases/lease-manager.js.map +1 -1
- package/dist/controller/leases/lease-work-mount-paths.d.ts +8 -1
- package/dist/controller/leases/lease-work-mount-paths.d.ts.map +1 -1
- package/dist/controller/leases/lease-work-mount-paths.js +22 -2
- package/dist/controller/leases/lease-work-mount-paths.js.map +1 -1
- package/dist/controller/zone-git/zone-git-capability-store.d.ts +16 -0
- package/dist/controller/zone-git/zone-git-capability-store.d.ts.map +1 -0
- package/dist/controller/zone-git/zone-git-capability-store.js +47 -0
- package/dist/controller/zone-git/zone-git-capability-store.js.map +1 -0
- package/dist/controller/zone-git/zone-git-operation-locks.d.ts +5 -0
- package/dist/controller/zone-git/zone-git-operation-locks.d.ts.map +1 -0
- package/dist/controller/zone-git/zone-git-operation-locks.js +23 -0
- package/dist/controller/zone-git/zone-git-operation-locks.js.map +1 -0
- package/dist/controller/zone-git/zone-git-operations.d.ts +50 -0
- package/dist/controller/zone-git/zone-git-operations.d.ts.map +1 -0
- package/dist/controller/zone-git/zone-git-operations.js +323 -0
- package/dist/controller/zone-git/zone-git-operations.js.map +1 -0
- package/dist/controller/zone-git/zone-git-paths.d.ts +28 -0
- package/dist/controller/zone-git/zone-git-paths.d.ts.map +1 -0
- package/dist/controller/zone-git/zone-git-paths.js +17 -0
- package/dist/controller/zone-git/zone-git-paths.js.map +1 -0
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -1
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +10 -1
- package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -1
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +2 -0
- package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -1
- package/dist/gateway/gateway-image-builder.d.ts +0 -1
- package/dist/gateway/gateway-image-builder.d.ts.map +1 -1
- package/dist/gateway/gateway-image-builder.js +0 -3
- package/dist/gateway/gateway-image-builder.js.map +1 -1
- package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-orchestrator.js +16 -2
- package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
- package/dist/gateway/gateway-zone-support.d.ts +2 -1
- package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
- package/dist/gateway/gateway-zone-support.js.map +1 -1
- package/dist/gateway-api-client/gateway-api-client.d.ts +1 -0
- package/dist/gateway-api-client/gateway-api-client.d.ts.map +1 -1
- package/dist/gateway-api-client/gateway-api-client.js +2 -1
- package/dist/gateway-api-client/gateway-api-client.js.map +1 -1
- package/dist/integration-tests/smoke-harness.d.ts +59 -0
- package/dist/integration-tests/smoke-harness.d.ts.map +1 -0
- package/dist/integration-tests/smoke-harness.js +244 -0
- package/dist/integration-tests/smoke-harness.js.map +1 -0
- package/dist/operations/config-validation.d.ts.map +1 -1
- package/dist/operations/config-validation.js +4 -28
- package/dist/operations/config-validation.js.map +1 -1
- package/dist/operations/destroy-zone.d.ts.map +1 -1
- package/dist/operations/destroy-zone.js +4 -0
- package/dist/operations/destroy-zone.js.map +1 -1
- package/dist/operations/doctor.d.ts.map +1 -1
- package/dist/operations/doctor.js +26 -23
- package/dist/operations/doctor.js.map +1 -1
- package/dist/operations/openclaw-deployment-doctor.d.ts +5 -0
- package/dist/operations/openclaw-deployment-doctor.d.ts.map +1 -1
- package/dist/operations/openclaw-deployment-doctor.js +63 -8
- package/dist/operations/openclaw-deployment-doctor.js.map +1 -1
- package/dist/operations/runtime-config-paths.d.ts +2 -0
- package/dist/operations/runtime-config-paths.d.ts.map +1 -1
- package/dist/operations/runtime-config-paths.js +13 -0
- package/dist/operations/runtime-config-paths.js.map +1 -1
- package/dist/operations/zone-git-doctor.d.ts +7 -0
- package/dist/operations/zone-git-doctor.d.ts.map +1 -0
- package/dist/operations/zone-git-doctor.js +94 -0
- package/dist/operations/zone-git-doctor.js.map +1 -0
- package/dist/tool-vm/tool-vm-lifecycle.d.ts +2 -1
- package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
- package/dist/tool-vm/tool-vm-lifecycle.js +86 -23
- package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
- package/managed-images.json +1 -2
- package/package.json +12 -12
- package/dist/config/system-cache-identifier.d.ts +0 -19
- package/dist/config/system-cache-identifier.d.ts.map +0 -1
- package/dist/config/system-cache-identifier.js +0 -67
- package/dist/config/system-cache-identifier.js.map +0 -1
|
@@ -13,10 +13,23 @@ function assertReusableScopeLease(existingLease, requestedLease) {
|
|
|
13
13
|
if (existingLease.hostWorkMountDir !== requestedLease.hostWorkMountDir) {
|
|
14
14
|
throw new LeaseScopeConflictError(`Tool VM lease scope conflict for zone '${requestedLease.zoneId}' scopeKey '${requestedLease.scopeKey}': existing hostWorkMountDir '${existingLease.hostWorkMountDir}' does not match requested hostWorkMountDir '${requestedLease.hostWorkMountDir}'.`);
|
|
15
15
|
}
|
|
16
|
+
if (existingLease.guestWorkdir !== requestedLease.guestWorkdir) {
|
|
17
|
+
throw new LeaseScopeConflictError(`Tool VM lease scope conflict for zone '${requestedLease.zoneId}' scopeKey '${requestedLease.scopeKey}': existing guestWorkdir '${existingLease.guestWorkdir}' does not match requested guestWorkdir '${requestedLease.guestWorkdir}'.`);
|
|
18
|
+
}
|
|
19
|
+
if (!zoneGitMountsEqual(existingLease.zoneGitMount, requestedLease.zoneGitMount)) {
|
|
20
|
+
throw new LeaseScopeConflictError(`Tool VM lease scope conflict for zone '${requestedLease.zoneId}' scopeKey '${requestedLease.scopeKey}': existing zoneGitMount does not match requested zoneGitMount.`);
|
|
21
|
+
}
|
|
16
22
|
if (existingLease.agentWorkspaceDir !== requestedLease.agentWorkspaceDir) {
|
|
17
23
|
throw new LeaseScopeConflictError(`Tool VM lease scope conflict for zone '${requestedLease.zoneId}' scopeKey '${requestedLease.scopeKey}': existing agentWorkspaceDir '${existingLease.agentWorkspaceDir}' does not match requested agentWorkspaceDir '${requestedLease.agentWorkspaceDir}'.`);
|
|
18
24
|
}
|
|
19
25
|
}
|
|
26
|
+
function zoneGitMountsEqual(leftMount, rightMount) {
|
|
27
|
+
if (!leftMount || !rightMount) {
|
|
28
|
+
return leftMount === rightMount;
|
|
29
|
+
}
|
|
30
|
+
return (leftMount.hostZoneFilesDir === rightMount.hostZoneFilesDir &&
|
|
31
|
+
leftMount.hostZoneGitRoot === rightMount.hostZoneGitRoot);
|
|
32
|
+
}
|
|
20
33
|
async function isLeaseVmLive(lease) {
|
|
21
34
|
try {
|
|
22
35
|
const result = await lease.vm.exec('true');
|
|
@@ -115,6 +128,7 @@ export function createLeaseManager(options) {
|
|
|
115
128
|
const lease = {
|
|
116
129
|
agentWorkspaceDir: leaseOptions.agentWorkspaceDir,
|
|
117
130
|
createdAt,
|
|
131
|
+
guestWorkdir: leaseOptions.guestWorkdir,
|
|
118
132
|
id: `${leaseOptions.zoneId}-${leaseOptions.scopeKey}-${createdAt}`,
|
|
119
133
|
lastUsedAt: createdAt,
|
|
120
134
|
profileId: leaseOptions.profileId,
|
|
@@ -123,6 +137,7 @@ export function createLeaseManager(options) {
|
|
|
123
137
|
tcpSlot,
|
|
124
138
|
vm,
|
|
125
139
|
hostWorkMountDir: leaseOptions.hostWorkMountDir,
|
|
140
|
+
...(leaseOptions.zoneGitMount ? { zoneGitMount: leaseOptions.zoneGitMount } : {}),
|
|
126
141
|
zoneId: leaseOptions.zoneId,
|
|
127
142
|
};
|
|
128
143
|
storeLease(lease);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease-manager.js","sourceRoot":"","sources":["../../../src/controller/leases/lease-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lease-manager.js","sourceRoot":"","sources":["../../../src/controller/leases/lease-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import type { SystemConfig } from '../../config/system-config.js';
|
|
2
|
+
import { type ZoneGitToolVmMount } from '../zone-git/zone-git-paths.js';
|
|
2
3
|
type ZoneConfig = SystemConfig['zones'][number];
|
|
3
4
|
export type LeaseWorkMountValidationErrorKind = 'allowed-root-realpath-failed' | 'host-not-absolute' | 'host-outside-allowed-roots' | 'host-parent-traversal' | 'outside-allowed-roots' | 'realpath-failed' | 'root-mount-target' | 'unsupported-gateway' | 'work-mount-not-absolute' | 'work-mount-parent-traversal';
|
|
4
5
|
export declare class LeaseWorkMountValidationError extends Error {
|
|
5
6
|
readonly kind: LeaseWorkMountValidationErrorKind;
|
|
6
7
|
constructor(kind: LeaseWorkMountValidationErrorKind, message: string, options?: ErrorOptions);
|
|
7
8
|
}
|
|
9
|
+
export interface ResolvedLeaseWorkMount {
|
|
10
|
+
readonly guestWorkdir: string;
|
|
11
|
+
readonly hostWorkMountDir: string;
|
|
12
|
+
readonly zoneGitMount?: ZoneGitToolVmMount;
|
|
13
|
+
}
|
|
8
14
|
export declare function validateResolvedToolWorkMountDir(options: {
|
|
9
15
|
readonly hostWorkMountDir: string;
|
|
10
16
|
readonly zone: ZoneConfig;
|
|
11
17
|
}): Promise<string>;
|
|
12
18
|
export declare function resolveLeaseWorkMountDir(options: {
|
|
19
|
+
readonly runtimeDir: string;
|
|
13
20
|
readonly workMountDir: string;
|
|
14
21
|
readonly zone: ZoneConfig;
|
|
15
|
-
}): Promise<
|
|
22
|
+
}): Promise<ResolvedLeaseWorkMount>;
|
|
16
23
|
export {};
|
|
17
24
|
//# sourceMappingURL=lease-work-mount-paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease-work-mount-paths.d.ts","sourceRoot":"","sources":["../../../src/controller/leases/lease-work-mount-paths.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"lease-work-mount-paths.d.ts","sourceRoot":"","sources":["../../../src/controller/leases/lease-work-mount-paths.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAIN,KAAK,kBAAkB,EACvB,MAAM,+BAA+B,CAAC;AAQvC,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,iCAAiC,GAC1C,8BAA8B,GAC9B,mBAAmB,GACnB,4BAA4B,GAC5B,uBAAuB,GACvB,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,yBAAyB,GACzB,6BAA6B,CAAC;AAEjC,qBAAa,6BAA8B,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;gBAErC,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAI5F;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AA2FD,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlB;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyElC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { realpath } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { OPENCLAW_ZONE_FILES_GUEST_ROOT, isOpenClawZoneGitConfigured, resolveZoneGitPaths, } from '../zone-git/zone-git-paths.js';
|
|
3
4
|
// These guest roots are mounted by the OpenClaw gateway image. Lease callers
|
|
4
5
|
// must speak in gateway paths; the controller owns translation to host paths.
|
|
5
6
|
const OPENCLAW_STATE_VM_ROOT = '/home/openclaw/.openclaw/state';
|
|
6
7
|
const OPENCLAW_STATE_SANDBOXES_VM_ROOT = `${OPENCLAW_STATE_VM_ROOT}/sandboxes`;
|
|
7
|
-
const OPENCLAW_ZONE_FILES_VM_ROOT =
|
|
8
|
+
const OPENCLAW_ZONE_FILES_VM_ROOT = OPENCLAW_ZONE_FILES_GUEST_ROOT;
|
|
8
9
|
export class LeaseWorkMountValidationError extends Error {
|
|
9
10
|
kind;
|
|
10
11
|
constructor(kind, message, options) {
|
|
@@ -112,9 +113,28 @@ export async function resolveLeaseWorkMountDir(options) {
|
|
|
112
113
|
if (!hostWorkMountDir) {
|
|
113
114
|
throw new LeaseWorkMountValidationError('outside-allowed-roots', `Lease workMountDir '${options.workMountDir}' must be under ${OPENCLAW_STATE_SANDBOXES_VM_ROOT} or ${OPENCLAW_ZONE_FILES_VM_ROOT}.`);
|
|
114
115
|
}
|
|
115
|
-
|
|
116
|
+
const realHostWorkMountDir = await validateResolvedLeaseWorkMountDir({
|
|
116
117
|
hostWorkMountDir,
|
|
117
118
|
zone: options.zone,
|
|
118
119
|
});
|
|
120
|
+
if (isOpenClawZoneGitConfigured(options.zone) &&
|
|
121
|
+
normalizedWorkMountDir.startsWith(`${OPENCLAW_ZONE_FILES_VM_ROOT}/`)) {
|
|
122
|
+
const zoneGitPaths = resolveZoneGitPaths({
|
|
123
|
+
runtimeDir: options.runtimeDir,
|
|
124
|
+
zoneId: options.zone.id,
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
guestWorkdir: normalizedWorkMountDir,
|
|
128
|
+
hostWorkMountDir: realHostWorkMountDir,
|
|
129
|
+
zoneGitMount: {
|
|
130
|
+
hostZoneFilesDir: options.zone.gateway.zoneFilesDir,
|
|
131
|
+
hostZoneGitRoot: zoneGitPaths.hostZoneGitRoot,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
guestWorkdir: '/work',
|
|
137
|
+
hostWorkMountDir: realHostWorkMountDir,
|
|
138
|
+
};
|
|
119
139
|
}
|
|
120
140
|
//# sourceMappingURL=lease-work-mount-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease-work-mount-paths.js","sourceRoot":"","sources":["../../../src/controller/leases/lease-work-mount-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"lease-work-mount-paths.js","sourceRoot":"","sources":["../../../src/controller/leases/lease-work-mount-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const ZONE_GIT_CAPABILITY_HEADER = "x-agent-vm-zone-git-token";
|
|
2
|
+
export declare const ZONE_GIT_CAPABILITY_ENV_VAR = "AGENT_VM_ZONE_GIT_TOKEN";
|
|
3
|
+
export type ZoneGitRuntimePluginConfig = Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
4
|
+
export interface ZoneGitCapabilityStoreProps {
|
|
5
|
+
readonly generateToken?: () => string;
|
|
6
|
+
}
|
|
7
|
+
export declare class ZoneGitCapabilityStore {
|
|
8
|
+
private readonly generateToken;
|
|
9
|
+
private readonly tokensByZoneId;
|
|
10
|
+
constructor(props?: ZoneGitCapabilityStoreProps);
|
|
11
|
+
issueTokenForZone(zoneId: string): string;
|
|
12
|
+
buildRuntimePluginConfig(zoneId: string): ZoneGitRuntimePluginConfig;
|
|
13
|
+
buildRuntimeEnvironment(zoneId: string): Readonly<Record<string, string>>;
|
|
14
|
+
verifyTokenForZone(zoneId: string, token: string | undefined): boolean;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=zone-git-capability-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-git-capability-store.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-capability-store.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,8BAA8B,CAAC;AACtE,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAChD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CACjD,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;CACtC;AAYD,qBAAa,sBAAsB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAEzC,KAAK,GAAE,2BAAgC;IAInD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAUzC,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,0BAA0B;IASpE,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMzE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;CAQ7E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
2
|
+
export const ZONE_GIT_CAPABILITY_HEADER = 'x-agent-vm-zone-git-token';
|
|
3
|
+
export const ZONE_GIT_CAPABILITY_ENV_VAR = 'AGENT_VM_ZONE_GIT_TOKEN';
|
|
4
|
+
function generateDefaultToken() {
|
|
5
|
+
return randomBytes(32).toString('base64url');
|
|
6
|
+
}
|
|
7
|
+
function constantTimeStringEquals(left, right) {
|
|
8
|
+
const leftBuffer = Buffer.from(left);
|
|
9
|
+
const rightBuffer = Buffer.from(right);
|
|
10
|
+
return leftBuffer.length === rightBuffer.length && timingSafeEqual(leftBuffer, rightBuffer);
|
|
11
|
+
}
|
|
12
|
+
export class ZoneGitCapabilityStore {
|
|
13
|
+
generateToken;
|
|
14
|
+
tokensByZoneId = new Map();
|
|
15
|
+
constructor(props = {}) {
|
|
16
|
+
this.generateToken = props.generateToken ?? generateDefaultToken;
|
|
17
|
+
}
|
|
18
|
+
issueTokenForZone(zoneId) {
|
|
19
|
+
const existingToken = this.tokensByZoneId.get(zoneId);
|
|
20
|
+
if (existingToken) {
|
|
21
|
+
return existingToken;
|
|
22
|
+
}
|
|
23
|
+
const token = this.generateToken();
|
|
24
|
+
this.tokensByZoneId.set(zoneId, token);
|
|
25
|
+
return token;
|
|
26
|
+
}
|
|
27
|
+
buildRuntimePluginConfig(zoneId) {
|
|
28
|
+
this.issueTokenForZone(zoneId);
|
|
29
|
+
return {
|
|
30
|
+
gondolin: {
|
|
31
|
+
zoneGitTokenEnv: ZONE_GIT_CAPABILITY_ENV_VAR,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
buildRuntimeEnvironment(zoneId) {
|
|
36
|
+
return {
|
|
37
|
+
[ZONE_GIT_CAPABILITY_ENV_VAR]: this.issueTokenForZone(zoneId),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
verifyTokenForZone(zoneId, token) {
|
|
41
|
+
const expectedToken = this.tokensByZoneId.get(zoneId);
|
|
42
|
+
return (expectedToken !== undefined &&
|
|
43
|
+
token !== undefined &&
|
|
44
|
+
constantTimeStringEquals(token, expectedToken));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=zone-git-capability-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-git-capability-store.js","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-capability-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AACtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AAUrE,SAAS,oBAAoB;IAC5B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,OAAO,sBAAsB;IACjB,aAAa,CAAe;IAC5B,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5D,YAAmB,QAAqC,EAAE;QACzD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,oBAAoB,CAAC;IAClE,CAAC;IAEM,iBAAiB,CAAC,MAAc;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,aAAa,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,wBAAwB,CAAC,MAAc;QAC7C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO;YACN,QAAQ,EAAE;gBACT,eAAe,EAAE,2BAA2B;aAC5C;SACD,CAAC;IACH,CAAC;IAEM,uBAAuB,CAAC,MAAc;QAC5C,OAAO;YACN,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;SAC7D,CAAC;IACH,CAAC;IAEM,kBAAkB,CAAC,MAAc,EAAE,KAAyB;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CACN,aAAa,KAAK,SAAS;YAC3B,KAAK,KAAK,SAAS;YACnB,wBAAwB,CAAC,KAAK,EAAE,aAAa,CAAC,CAC9C,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-git-operation-locks.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-operation-locks.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IAEtD,YAAY,CAAC,MAAM,EAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAkBlB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class ZoneGitOperationLocks {
|
|
2
|
+
queuesByZoneId = new Map();
|
|
3
|
+
async runExclusive(zoneId, operation) {
|
|
4
|
+
const previousQueue = this.queuesByZoneId.get(zoneId) ?? Promise.resolve();
|
|
5
|
+
let releaseCurrentQueue;
|
|
6
|
+
const currentQueue = new Promise((resolve) => {
|
|
7
|
+
releaseCurrentQueue = resolve;
|
|
8
|
+
});
|
|
9
|
+
const chainedQueue = previousQueue.then(async () => await currentQueue);
|
|
10
|
+
this.queuesByZoneId.set(zoneId, chainedQueue);
|
|
11
|
+
await previousQueue;
|
|
12
|
+
try {
|
|
13
|
+
return await operation();
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
releaseCurrentQueue();
|
|
17
|
+
if (this.queuesByZoneId.get(zoneId) === chainedQueue) {
|
|
18
|
+
this.queuesByZoneId.delete(zoneId);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=zone-git-operation-locks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-git-operation-locks.js","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-operation-locks.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAChB,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,KAAK,CAAC,YAAY,CACxB,MAAc,EACd,SAAgC;QAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3E,IAAI,mBAAgC,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClD,mBAAmB,GAAG,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,YAAY,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,aAAa,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,MAAM,SAAS,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACV,mBAAmB,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,YAAY,EAAE,CAAC;gBACtD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface ZoneGitReadConfig {
|
|
2
|
+
readonly branch: string;
|
|
3
|
+
readonly githubToken?: string;
|
|
4
|
+
readonly remoteUrl: string;
|
|
5
|
+
readonly runtimeDir: string;
|
|
6
|
+
readonly zoneFilesDir: string;
|
|
7
|
+
readonly zoneId: string;
|
|
8
|
+
}
|
|
9
|
+
interface InitializedZoneGitStatus {
|
|
10
|
+
readonly aheadOfRemote: number;
|
|
11
|
+
readonly behindRemote: number;
|
|
12
|
+
readonly branch: string;
|
|
13
|
+
readonly dirty: boolean;
|
|
14
|
+
readonly initialized: true;
|
|
15
|
+
readonly kind: 'initialized';
|
|
16
|
+
readonly localHead: string | null;
|
|
17
|
+
readonly remoteHead: string | null;
|
|
18
|
+
}
|
|
19
|
+
interface UninitializedZoneGitStatus {
|
|
20
|
+
readonly aheadOfRemote: 0;
|
|
21
|
+
readonly behindRemote: 0;
|
|
22
|
+
readonly branch: string;
|
|
23
|
+
readonly dirty: false;
|
|
24
|
+
readonly initialized: false;
|
|
25
|
+
readonly kind: 'uninitialized';
|
|
26
|
+
readonly localHead: null;
|
|
27
|
+
readonly remoteHead: null;
|
|
28
|
+
}
|
|
29
|
+
export type ZoneGitStatus = InitializedZoneGitStatus | UninitializedZoneGitStatus;
|
|
30
|
+
export interface ZoneGitCommitSummary {
|
|
31
|
+
readonly sha: string;
|
|
32
|
+
readonly subject: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ZoneGitPushResult {
|
|
35
|
+
readonly branch: string;
|
|
36
|
+
readonly localHead: string;
|
|
37
|
+
readonly pushedCommits: readonly ZoneGitCommitSummary[];
|
|
38
|
+
readonly remoteHead: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ZoneGitPushOptions extends ZoneGitReadConfig {
|
|
41
|
+
readonly expectedHead: string;
|
|
42
|
+
}
|
|
43
|
+
export declare class ZoneGitConflictError extends Error {
|
|
44
|
+
constructor(message: string);
|
|
45
|
+
}
|
|
46
|
+
export declare function ensureZoneGitRepository(options: ZoneGitReadConfig): Promise<void>;
|
|
47
|
+
export declare function getZoneGitStatus(options: ZoneGitReadConfig): Promise<ZoneGitStatus>;
|
|
48
|
+
export declare function pushZoneGit(options: ZoneGitPushOptions): Promise<ZoneGitPushResult>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=zone-git-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zone-git-operations.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-operations.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,wBAAwB;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,UAAU,0BAA0B;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAIlC;AAmMD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEvF;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+DzF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiDzF"}
|