@agent-vm/agent-vm 0.0.57 → 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.
Files changed (119) hide show
  1. package/dist/backup/backup-create-operation.d.ts +2 -0
  2. package/dist/backup/backup-create-operation.d.ts.map +1 -1
  3. package/dist/backup/backup-create-operation.js +23 -0
  4. package/dist/backup/backup-create-operation.js.map +1 -1
  5. package/dist/backup/backup-manager.d.ts +2 -0
  6. package/dist/backup/backup-manager.d.ts.map +1 -1
  7. package/dist/backup/backup-manager.js +1 -0
  8. package/dist/backup/backup-manager.js.map +1 -1
  9. package/dist/build/managed-image-dockerfile.d.ts.map +1 -1
  10. package/dist/build/managed-image-dockerfile.js +1 -0
  11. package/dist/build/managed-image-dockerfile.js.map +1 -1
  12. package/dist/cli/backup-commands.d.ts.map +1 -1
  13. package/dist/cli/backup-commands.js +18 -0
  14. package/dist/cli/backup-commands.js.map +1 -1
  15. package/dist/cli/commands/create-app.d.ts +112 -40
  16. package/dist/cli/commands/create-app.d.ts.map +1 -1
  17. package/dist/cli/commands/create-app.js +2 -0
  18. package/dist/cli/commands/create-app.js.map +1 -1
  19. package/dist/cli/commands/resources-definition.d.ts +8 -8
  20. package/dist/cli/commands/zone-git-definition.d.ts +67 -0
  21. package/dist/cli/commands/zone-git-definition.d.ts.map +1 -0
  22. package/dist/cli/commands/zone-git-definition.js +46 -0
  23. package/dist/cli/commands/zone-git-definition.js.map +1 -0
  24. package/dist/cli/controller-operation-commands.d.ts.map +1 -1
  25. package/dist/cli/controller-operation-commands.js +12 -0
  26. package/dist/cli/controller-operation-commands.js.map +1 -1
  27. package/dist/cli/init-command.d.ts.map +1 -1
  28. package/dist/cli/init-command.js +3 -2
  29. package/dist/cli/init-command.js.map +1 -1
  30. package/dist/cli/manual-templates.d.ts.map +1 -1
  31. package/dist/cli/manual-templates.js +17 -0
  32. package/dist/cli/manual-templates.js.map +1 -1
  33. package/dist/cli/zone-git-commands.d.ts +13 -0
  34. package/dist/cli/zone-git-commands.d.ts.map +1 -0
  35. package/dist/cli/zone-git-commands.js +89 -0
  36. package/dist/cli/zone-git-commands.js.map +1 -0
  37. package/dist/config/system-config.d.ts +7 -0
  38. package/dist/config/system-config.d.ts.map +1 -1
  39. package/dist/config/system-config.js +21 -1
  40. package/dist/config/system-config.js.map +1 -1
  41. package/dist/controller/controller-runtime-types.d.ts +6 -0
  42. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  43. package/dist/controller/controller-runtime.d.ts.map +1 -1
  44. package/dist/controller/controller-runtime.js +49 -1
  45. package/dist/controller/controller-runtime.js.map +1 -1
  46. package/dist/controller/git-auth-support.d.ts +4 -0
  47. package/dist/controller/git-auth-support.d.ts.map +1 -1
  48. package/dist/controller/git-auth-support.js +17 -0
  49. package/dist/controller/git-auth-support.js.map +1 -1
  50. package/dist/controller/git-push-operations.d.ts.map +1 -1
  51. package/dist/controller/git-push-operations.js +9 -13
  52. package/dist/controller/git-push-operations.js.map +1 -1
  53. package/dist/controller/http/controller-http-route-support.d.ts +6 -1
  54. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
  55. package/dist/controller/http/controller-http-route-support.js +1 -1
  56. package/dist/controller/http/controller-http-route-support.js.map +1 -1
  57. package/dist/controller/http/controller-http-routes.d.ts +2 -1
  58. package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
  59. package/dist/controller/http/controller-http-routes.js +11 -5
  60. package/dist/controller/http/controller-http-routes.js.map +1 -1
  61. package/dist/controller/http/controller-request-schemas.d.ts +3 -0
  62. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
  63. package/dist/controller/http/controller-request-schemas.js +5 -0
  64. package/dist/controller/http/controller-request-schemas.js.map +1 -1
  65. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
  66. package/dist/controller/http/controller-zone-operation-routes.js +54 -1
  67. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
  68. package/dist/controller/leases/lease-manager.d.ts +7 -0
  69. package/dist/controller/leases/lease-manager.d.ts.map +1 -1
  70. package/dist/controller/leases/lease-manager.js +15 -0
  71. package/dist/controller/leases/lease-manager.js.map +1 -1
  72. package/dist/controller/leases/lease-work-mount-paths.d.ts +8 -1
  73. package/dist/controller/leases/lease-work-mount-paths.d.ts.map +1 -1
  74. package/dist/controller/leases/lease-work-mount-paths.js +22 -2
  75. package/dist/controller/leases/lease-work-mount-paths.js.map +1 -1
  76. package/dist/controller/zone-git/zone-git-capability-store.d.ts +16 -0
  77. package/dist/controller/zone-git/zone-git-capability-store.d.ts.map +1 -0
  78. package/dist/controller/zone-git/zone-git-capability-store.js +47 -0
  79. package/dist/controller/zone-git/zone-git-capability-store.js.map +1 -0
  80. package/dist/controller/zone-git/zone-git-operation-locks.d.ts +5 -0
  81. package/dist/controller/zone-git/zone-git-operation-locks.d.ts.map +1 -0
  82. package/dist/controller/zone-git/zone-git-operation-locks.js +23 -0
  83. package/dist/controller/zone-git/zone-git-operation-locks.js.map +1 -0
  84. package/dist/controller/zone-git/zone-git-operations.d.ts +50 -0
  85. package/dist/controller/zone-git/zone-git-operations.d.ts.map +1 -0
  86. package/dist/controller/zone-git/zone-git-operations.js +323 -0
  87. package/dist/controller/zone-git/zone-git-operations.js.map +1 -0
  88. package/dist/controller/zone-git/zone-git-paths.d.ts +28 -0
  89. package/dist/controller/zone-git/zone-git-paths.d.ts.map +1 -0
  90. package/dist/controller/zone-git/zone-git-paths.js +17 -0
  91. package/dist/controller/zone-git/zone-git-paths.js.map +1 -0
  92. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +2 -0
  93. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -1
  94. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
  95. package/dist/gateway/gateway-zone-orchestrator.js +10 -1
  96. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
  97. package/dist/gateway/gateway-zone-support.d.ts +2 -0
  98. package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
  99. package/dist/gateway/gateway-zone-support.js.map +1 -1
  100. package/dist/gateway-api-client/gateway-api-client.d.ts +1 -0
  101. package/dist/gateway-api-client/gateway-api-client.d.ts.map +1 -1
  102. package/dist/gateway-api-client/gateway-api-client.js +2 -1
  103. package/dist/gateway-api-client/gateway-api-client.js.map +1 -1
  104. package/dist/integration-tests/smoke-harness.d.ts +59 -0
  105. package/dist/integration-tests/smoke-harness.d.ts.map +1 -0
  106. package/dist/integration-tests/smoke-harness.js +244 -0
  107. package/dist/integration-tests/smoke-harness.js.map +1 -0
  108. package/dist/operations/openclaw-deployment-doctor.d.ts.map +1 -1
  109. package/dist/operations/openclaw-deployment-doctor.js +2 -3
  110. package/dist/operations/openclaw-deployment-doctor.js.map +1 -1
  111. package/dist/operations/zone-git-doctor.d.ts +7 -0
  112. package/dist/operations/zone-git-doctor.d.ts.map +1 -0
  113. package/dist/operations/zone-git-doctor.js +94 -0
  114. package/dist/operations/zone-git-doctor.js.map +1 -0
  115. package/dist/tool-vm/tool-vm-lifecycle.d.ts +2 -0
  116. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  117. package/dist/tool-vm/tool-vm-lifecycle.js +86 -22
  118. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
  119. package/package.json +7 -7
@@ -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,5 @@
1
+ export declare class ZoneGitOperationLocks {
2
+ private readonly queuesByZoneId;
3
+ runExclusive<TValue>(zoneId: string, operation: () => Promise<TValue>): Promise<TValue>;
4
+ }
5
+ //# sourceMappingURL=zone-git-operation-locks.d.ts.map
@@ -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"}
@@ -0,0 +1,323 @@
1
+ import { mkdir, stat, unlink, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { execa } from 'execa';
4
+ import { buildGithubTokenUrl, scrubGithubTokenFromOutput } from '../git-auth-support.js';
5
+ import { OPENCLAW_ZONE_GIT_GUEST_DIR, resolveZoneGitPaths } from './zone-git-paths.js';
6
+ const GIT_OPERATION_TIMEOUT_MS = 120_000;
7
+ export class ZoneGitConflictError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'ZoneGitConflictError';
11
+ }
12
+ }
13
+ function isLocalRemoteUrl(remoteUrl) {
14
+ return path.isAbsolute(remoteUrl) || remoteUrl.startsWith('file://');
15
+ }
16
+ function buildRemoteUrl(options) {
17
+ if (isLocalRemoteUrl(options.remoteUrl)) {
18
+ return options.remoteUrl;
19
+ }
20
+ if (!options.githubToken) {
21
+ throw new Error('zoneGit remote requires githubToken for GitHub pushes.');
22
+ }
23
+ return buildGithubTokenUrl(options.remoteUrl, options.githubToken);
24
+ }
25
+ function buildGitArgs(options) {
26
+ return [
27
+ '-c',
28
+ 'core.hooksPath=/dev/null',
29
+ `--git-dir=${options.gitDir}`,
30
+ `--work-tree=${options.workTree}`,
31
+ ...options.args,
32
+ ];
33
+ }
34
+ async function pathExists(filePath) {
35
+ try {
36
+ await stat(filePath);
37
+ return true;
38
+ }
39
+ catch (error) {
40
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
41
+ return false;
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+ async function unlinkFileIfExists(filePath) {
47
+ try {
48
+ await unlink(filePath);
49
+ }
50
+ catch (error) {
51
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
52
+ return;
53
+ }
54
+ throw error;
55
+ }
56
+ }
57
+ async function git(options) {
58
+ const result = await execa('git', buildGitArgs({
59
+ args: options.args,
60
+ gitDir: options.gitDir,
61
+ workTree: options.workTree,
62
+ }), {
63
+ reject: false,
64
+ timeout: GIT_OPERATION_TIMEOUT_MS,
65
+ });
66
+ const exitCode = typeof result.exitCode === 'number' ? result.exitCode : 128;
67
+ const normalized = {
68
+ stdout: result.stdout,
69
+ stderr: typeof result.exitCode === 'number'
70
+ ? result.stderr
71
+ : `${result.stderr}\ngit ${options.args.join(' ')} terminated without an exit code`.trim(),
72
+ exitCode,
73
+ };
74
+ const scrubbed = {
75
+ ...normalized,
76
+ stdout: scrubGithubTokenFromOutput(normalized.stdout),
77
+ stderr: scrubGithubTokenFromOutput(normalized.stderr),
78
+ };
79
+ if (options.reject === true && scrubbed.exitCode !== 0) {
80
+ throw new Error(scrubGithubTokenFromOutput(`git ${options.args.join(' ')} failed\n${scrubbed.stdout}\n${scrubbed.stderr}`.trim()));
81
+ }
82
+ return scrubbed;
83
+ }
84
+ async function gitStdout(options) {
85
+ return (await git({
86
+ args: options.args,
87
+ gitDir: options.gitDir,
88
+ reject: true,
89
+ workTree: options.workTree,
90
+ })).stdout.trim();
91
+ }
92
+ async function maybeGitStdout(options) {
93
+ const result = await git({
94
+ args: options.args,
95
+ gitDir: options.gitDir,
96
+ workTree: options.workTree,
97
+ });
98
+ return result.exitCode === 0 ? result.stdout.trim() : null;
99
+ }
100
+ function parseCommitSummaries(output) {
101
+ if (output.trim().length === 0) {
102
+ return [];
103
+ }
104
+ return output
105
+ .trim()
106
+ .split('\n')
107
+ .map((line) => {
108
+ const [sha = '', subject = ''] = line.split('\t');
109
+ if (!sha) {
110
+ throw new Error(`Failed to parse zone Git commit summary line: '${line}'.`);
111
+ }
112
+ return { sha, subject };
113
+ });
114
+ }
115
+ async function fetchRemoteBranch(options) {
116
+ const remoteUrl = buildRemoteUrl(options);
117
+ const result = await git({
118
+ args: [
119
+ 'fetch',
120
+ '--prune',
121
+ remoteUrl,
122
+ `+refs/heads/${options.branch}:refs/remotes/origin/${options.branch}`,
123
+ ],
124
+ gitDir: options.gitDir,
125
+ workTree: options.zoneFilesDir,
126
+ });
127
+ if (result.exitCode === 0) {
128
+ return;
129
+ }
130
+ if (result.stderr.includes("couldn't find remote ref")) {
131
+ await git({
132
+ args: ['update-ref', '-d', `refs/remotes/origin/${options.branch}`],
133
+ gitDir: options.gitDir,
134
+ workTree: options.zoneFilesDir,
135
+ });
136
+ return;
137
+ }
138
+ throw new Error(`git fetch ${options.branch} failed\n${result.stdout}\n${result.stderr}`.trim());
139
+ }
140
+ async function readHead(options) {
141
+ return await maybeGitStdout({
142
+ args: ['rev-parse', '--verify', options.ref],
143
+ gitDir: options.gitDir,
144
+ workTree: options.workTree,
145
+ });
146
+ }
147
+ async function countCommits(options) {
148
+ const stdout = await gitStdout({
149
+ args: ['rev-list', '--count', options.range],
150
+ gitDir: options.gitDir,
151
+ workTree: options.workTree,
152
+ });
153
+ return Number.parseInt(stdout, 10);
154
+ }
155
+ export async function ensureZoneGitRepository(options) {
156
+ const zoneGitPaths = resolveZoneGitPaths({
157
+ runtimeDir: options.runtimeDir,
158
+ zoneId: options.zoneId,
159
+ });
160
+ await mkdir(zoneGitPaths.hostZoneGitRoot, { recursive: true });
161
+ if (!(await pathExists(zoneGitPaths.hostGitDir))) {
162
+ await unlinkFileIfExists(path.join(options.zoneFilesDir, '.git'));
163
+ await execa('git', [
164
+ 'init',
165
+ `--separate-git-dir=${zoneGitPaths.hostGitDir}`,
166
+ `--initial-branch=${options.branch}`,
167
+ options.zoneFilesDir,
168
+ ], {
169
+ reject: true,
170
+ timeout: GIT_OPERATION_TIMEOUT_MS,
171
+ });
172
+ }
173
+ await writeFile(path.join(options.zoneFilesDir, '.git'), `gitdir: ${OPENCLAW_ZONE_GIT_GUEST_DIR}\n`, {
174
+ encoding: 'utf8',
175
+ mode: 0o644,
176
+ });
177
+ await git({
178
+ args: ['symbolic-ref', 'HEAD', `refs/heads/${options.branch}`],
179
+ gitDir: zoneGitPaths.hostGitDir,
180
+ reject: true,
181
+ workTree: options.zoneFilesDir,
182
+ });
183
+ await git({
184
+ args: ['config', 'core.worktree', '/zone'],
185
+ gitDir: zoneGitPaths.hostGitDir,
186
+ reject: true,
187
+ workTree: options.zoneFilesDir,
188
+ });
189
+ await git({
190
+ args: ['config', 'commit.gpgsign', 'false'],
191
+ gitDir: zoneGitPaths.hostGitDir,
192
+ reject: true,
193
+ workTree: options.zoneFilesDir,
194
+ });
195
+ await git({
196
+ args: ['config', 'core.hooksPath', '/dev/null'],
197
+ gitDir: zoneGitPaths.hostGitDir,
198
+ reject: true,
199
+ workTree: options.zoneFilesDir,
200
+ });
201
+ const originUrl = await maybeGitStdout({
202
+ args: ['remote', 'get-url', 'origin'],
203
+ gitDir: zoneGitPaths.hostGitDir,
204
+ workTree: options.zoneFilesDir,
205
+ });
206
+ await git({
207
+ args: originUrl === null
208
+ ? ['remote', 'add', 'origin', options.remoteUrl]
209
+ : ['remote', 'set-url', 'origin', options.remoteUrl],
210
+ gitDir: zoneGitPaths.hostGitDir,
211
+ reject: true,
212
+ workTree: options.zoneFilesDir,
213
+ });
214
+ }
215
+ export async function getZoneGitStatus(options) {
216
+ const zoneGitPaths = resolveZoneGitPaths({
217
+ runtimeDir: options.runtimeDir,
218
+ zoneId: options.zoneId,
219
+ });
220
+ if (!(await pathExists(zoneGitPaths.hostGitDir))) {
221
+ return {
222
+ aheadOfRemote: 0,
223
+ behindRemote: 0,
224
+ branch: options.branch,
225
+ dirty: false,
226
+ initialized: false,
227
+ kind: 'uninitialized',
228
+ localHead: null,
229
+ remoteHead: null,
230
+ };
231
+ }
232
+ await fetchRemoteBranch({ ...options, gitDir: zoneGitPaths.hostGitDir });
233
+ const statusOutput = await gitStdout({
234
+ args: ['status', '--porcelain'],
235
+ gitDir: zoneGitPaths.hostGitDir,
236
+ workTree: options.zoneFilesDir,
237
+ });
238
+ const localHead = await readHead({
239
+ gitDir: zoneGitPaths.hostGitDir,
240
+ ref: 'HEAD',
241
+ workTree: options.zoneFilesDir,
242
+ });
243
+ const remoteRef = `refs/remotes/origin/${options.branch}`;
244
+ const remoteHead = await readHead({
245
+ gitDir: zoneGitPaths.hostGitDir,
246
+ ref: remoteRef,
247
+ workTree: options.zoneFilesDir,
248
+ });
249
+ let aheadOfRemote = 0;
250
+ let behindRemote = 0;
251
+ if (localHead && remoteHead) {
252
+ const counts = await gitStdout({
253
+ args: ['rev-list', '--left-right', '--count', `HEAD...${remoteRef}`],
254
+ gitDir: zoneGitPaths.hostGitDir,
255
+ workTree: options.zoneFilesDir,
256
+ });
257
+ const [aheadText = '0', behindText = '0'] = counts.split(/\s+/u);
258
+ aheadOfRemote = Number.parseInt(aheadText, 10);
259
+ behindRemote = Number.parseInt(behindText, 10);
260
+ }
261
+ else if (localHead) {
262
+ aheadOfRemote = await countCommits({
263
+ gitDir: zoneGitPaths.hostGitDir,
264
+ range: 'HEAD',
265
+ workTree: options.zoneFilesDir,
266
+ });
267
+ }
268
+ return {
269
+ aheadOfRemote,
270
+ behindRemote,
271
+ branch: options.branch,
272
+ dirty: statusOutput.length > 0,
273
+ initialized: true,
274
+ kind: 'initialized',
275
+ localHead,
276
+ remoteHead,
277
+ };
278
+ }
279
+ export async function pushZoneGit(options) {
280
+ const zoneGitPaths = resolveZoneGitPaths({
281
+ runtimeDir: options.runtimeDir,
282
+ zoneId: options.zoneId,
283
+ });
284
+ if (!(await pathExists(zoneGitPaths.hostGitDir))) {
285
+ throw new Error(`Zone Git repository for zone '${options.zoneId}' is not initialized.`);
286
+ }
287
+ const status = await getZoneGitStatus(options);
288
+ if (!status.localHead) {
289
+ throw new Error(`Zone Git repository for zone '${options.zoneId}' has no local commits to push.`);
290
+ }
291
+ if (status.localHead !== options.expectedHead) {
292
+ throw new ZoneGitConflictError(`Zone Git repository for zone '${options.zoneId}' local HEAD '${status.localHead}' does not match expectedHead '${options.expectedHead}'.`);
293
+ }
294
+ const remoteRef = `refs/remotes/origin/${options.branch}`;
295
+ const commitRange = status.remoteHead ? `${remoteRef}..${status.localHead}` : status.localHead;
296
+ const pushedCommits = parseCommitSummaries(await gitStdout({
297
+ args: ['log', '--reverse', `--format=%H%x09%s`, commitRange],
298
+ gitDir: zoneGitPaths.hostGitDir,
299
+ workTree: options.zoneFilesDir,
300
+ }));
301
+ await git({
302
+ args: ['push', buildRemoteUrl(options), `${status.localHead}:refs/heads/${options.branch}`],
303
+ gitDir: zoneGitPaths.hostGitDir,
304
+ reject: true,
305
+ workTree: options.zoneFilesDir,
306
+ });
307
+ await fetchRemoteBranch({ ...options, gitDir: zoneGitPaths.hostGitDir });
308
+ const remoteHead = await readHead({
309
+ gitDir: zoneGitPaths.hostGitDir,
310
+ ref: remoteRef,
311
+ workTree: options.zoneFilesDir,
312
+ });
313
+ if (!remoteHead) {
314
+ throw new Error(`Zone Git push for zone '${options.zoneId}' did not produce remote head.`);
315
+ }
316
+ return {
317
+ branch: options.branch,
318
+ localHead: status.localHead,
319
+ pushedCommits,
320
+ remoteHead,
321
+ };
322
+ }
323
+ //# sourceMappingURL=zone-git-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-git-operations.js","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { SystemConfig } from '../../config/system-config.js';
2
+ export declare const OPENCLAW_ZONE_FILES_GUEST_ROOT = "/zone";
3
+ export declare const OPENCLAW_ZONE_GIT_GUEST_ROOT = "/agent-vm/zone-git";
4
+ export declare const OPENCLAW_ZONE_GIT_GUEST_DIR = "/agent-vm/zone-git/zone-files.git";
5
+ export interface ZoneGitPaths {
6
+ readonly guestGitDir: typeof OPENCLAW_ZONE_GIT_GUEST_DIR;
7
+ readonly guestZoneGitRoot: typeof OPENCLAW_ZONE_GIT_GUEST_ROOT;
8
+ readonly hostGitDir: string;
9
+ readonly hostZoneGitRoot: string;
10
+ }
11
+ export interface ZoneGitToolVmMount {
12
+ readonly hostZoneFilesDir: string;
13
+ readonly hostZoneGitRoot: string;
14
+ }
15
+ export declare function resolveZoneGitPaths(options: {
16
+ readonly runtimeDir: string;
17
+ readonly zoneId: string;
18
+ }): ZoneGitPaths;
19
+ export declare function isOpenClawZoneGitConfigured(zone: SystemConfig['zones'][number]): zone is SystemConfig['zones'][number] & {
20
+ readonly gateway: Extract<SystemConfig['zones'][number]['gateway'], {
21
+ readonly type: 'openclaw';
22
+ }> & {
23
+ readonly zoneGit: NonNullable<Extract<SystemConfig['zones'][number]['gateway'], {
24
+ readonly type: 'openclaw';
25
+ }>['zoneGit']>;
26
+ };
27
+ };
28
+ //# sourceMappingURL=zone-git-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-git-paths.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,8BAA8B,UAAU,CAAC;AACtD,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,2BAA2B,sCAAmD,CAAC;AAE5F,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,2BAA2B,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,4BAA4B,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,YAAY,CAQf;AAED,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GACjC,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CACxB,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EACxC;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAC7B,GAAG;QACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAC5B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;SAAE,CAAC,CAAC,SAAS,CAAC,CAC3F,CAAC;KACF,CAAC;CACF,CAEA"}
@@ -0,0 +1,17 @@
1
+ import path from 'node:path';
2
+ export const OPENCLAW_ZONE_FILES_GUEST_ROOT = '/zone';
3
+ export const OPENCLAW_ZONE_GIT_GUEST_ROOT = '/agent-vm/zone-git';
4
+ export const OPENCLAW_ZONE_GIT_GUEST_DIR = `${OPENCLAW_ZONE_GIT_GUEST_ROOT}/zone-files.git`;
5
+ export function resolveZoneGitPaths(options) {
6
+ const hostZoneGitRoot = path.join(options.runtimeDir, 'zones', options.zoneId, 'zone-git');
7
+ return {
8
+ guestGitDir: OPENCLAW_ZONE_GIT_GUEST_DIR,
9
+ guestZoneGitRoot: OPENCLAW_ZONE_GIT_GUEST_ROOT,
10
+ hostGitDir: path.join(hostZoneGitRoot, 'zone-files.git'),
11
+ hostZoneGitRoot,
12
+ };
13
+ }
14
+ export function isOpenClawZoneGitConfigured(zone) {
15
+ return zone.gateway.type === 'openclaw' && zone.gateway.zoneGit !== undefined;
16
+ }
17
+ //# sourceMappingURL=zone-git-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-git-paths.js","sourceRoot":"","sources":["../../../src/controller/zone-git/zone-git-paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,4BAA4B,iBAAiB,CAAC;AAc5F,MAAM,UAAU,mBAAmB,CAAC,OAGnC;IACA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3F,OAAO;QACN,WAAW,EAAE,2BAA2B;QACxC,gBAAgB,EAAE,4BAA4B;QAC9C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC;QACxD,eAAe;KACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,IAAmC;IAWnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC;AAC/E,CAAC"}
@@ -11,6 +11,7 @@ import type { PushBranchRequest, PushBranchResult } from '../git-push-operations
11
11
  import type { LeaseManager, ToolVmProfile } from '../leases/lease-manager.js';
12
12
  import type { RequestHeartbeatRegistry } from '../request-heartbeat-registry.js';
13
13
  import type { PreparedWorkerTask, WorkerTaskInput, WorkerTaskResult } from '../worker-task-runner.js';
14
+ import type { ZoneGitToolVmMount } from '../zone-git/zone-git-paths.js';
14
15
  export type ControllerZoneConfig = SystemConfig['zones'][number];
15
16
  export interface GatewayZoneRuntimeHandle {
16
17
  readonly ingress: GatewayZoneStartResult['ingress'];
@@ -81,6 +82,7 @@ export interface SharedZoneRuntimeDependencies {
81
82
  readonly profile: ToolVmProfile;
82
83
  readonly tcpSlot: number;
83
84
  readonly hostWorkMountDir: string;
85
+ readonly zoneGitMount?: ZoneGitToolVmMount;
84
86
  readonly zoneId: string;
85
87
  }) => Promise<ManagedVm>;
86
88
  readonly deleteGatewayRuntimeRecord: (stateDirectory: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"zone-runtime-types.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zone-runtime-types.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-types.ts"],"names":[],"mappings":"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"}
@@ -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,6BAA6B,CAAC;AACrC,OAAO,EAEN,KAAK,SAAS,EACd,MAAM,4BAA4B,CAAC;AAKpC,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,EAIN,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC;AAQnC,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,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC/C,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;AAiHD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,0BAA+B,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CAkKjC"}
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,6BAA6B,CAAC;AACrC,OAAO,EAEN,KAAK,SAAS,EACd,MAAM,4BAA4B,CAAC;AAKpC,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,EAIN,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC;AAQnC,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,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC/C,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;AAiHD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,0BAA+B,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CA2KjC"}
@@ -83,7 +83,16 @@ async function waitForHealth(options) {
83
83
  export async function startGatewayZone(options, dependencies = {}) {
84
84
  const runTaskStep = options.runTask ?? (async (_title, fn) => await fn());
85
85
  const zone = options.zoneOverride ?? findGatewayZone(options.systemConfig, options.zoneId);
86
- const lifecycleZone = mapSystemGatewayZoneToLifecycleZone(zone);
86
+ const mappedLifecycleZone = mapSystemGatewayZoneToLifecycleZone(zone);
87
+ const lifecycleZone = {
88
+ ...mappedLifecycleZone,
89
+ ...(options.runtimeEnvironment === undefined
90
+ ? {}
91
+ : { runtimeEnvironment: options.runtimeEnvironment }),
92
+ ...(options.runtimePluginConfigs === undefined
93
+ ? {}
94
+ : { runtimePluginConfigs: options.runtimePluginConfigs }),
95
+ };
87
96
  await runTaskStep('Cleaning orphaned gateway runtime', async () => {
88
97
  await (dependencies.cleanupOrphanedGatewayIfPresent ?? cleanupOrphanedGatewayIfPresent)({
89
98
  stateDir: zone.gateway.stateDir,