@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.
Files changed (131) hide show
  1. package/dist/backup/backup-encryption.d.ts +2 -2
  2. package/dist/backup/backup-encryption.d.ts.map +1 -1
  3. package/dist/backup/backup-encryption.js +29 -7
  4. package/dist/backup/backup-encryption.js.map +1 -1
  5. package/dist/build/docker-image-builder.d.ts +3 -1
  6. package/dist/build/docker-image-builder.d.ts.map +1 -1
  7. package/dist/build/docker-image-builder.js +4 -4
  8. package/dist/build/docker-image-builder.js.map +1 -1
  9. package/dist/build/gondolin-image-builder.d.ts +2 -2
  10. package/dist/build/gondolin-image-builder.d.ts.map +1 -1
  11. package/dist/build/gondolin-image-builder.js +10 -9
  12. package/dist/build/gondolin-image-builder.js.map +1 -1
  13. package/dist/build/stale-image-cleaner.d.ts.map +1 -1
  14. package/dist/build/stale-image-cleaner.js +15 -11
  15. package/dist/build/stale-image-cleaner.js.map +1 -1
  16. package/dist/cli/agent-vm-cli-support.d.ts +3 -3
  17. package/dist/cli/agent-vm-cli-support.d.ts.map +1 -1
  18. package/dist/cli/agent-vm-cli-support.js +5 -8
  19. package/dist/cli/agent-vm-cli-support.js.map +1 -1
  20. package/dist/cli/agent-vm-entrypoint.js +0 -0
  21. package/dist/cli/auth-interactive-command.d.ts +1 -1
  22. package/dist/cli/auth-interactive-command.d.ts.map +1 -1
  23. package/dist/cli/build-command.d.ts +2 -1
  24. package/dist/cli/build-command.d.ts.map +1 -1
  25. package/dist/cli/build-command.js +29 -1
  26. package/dist/cli/build-command.js.map +1 -1
  27. package/dist/cli/commands/command-definition-support.js +5 -5
  28. package/dist/cli/commands/command-definition-support.js.map +1 -1
  29. package/dist/cli/commands/controller-definition.d.ts.map +1 -1
  30. package/dist/cli/commands/controller-definition.js +2 -2
  31. package/dist/cli/commands/controller-definition.js.map +1 -1
  32. package/dist/cli/commands/create-app.d.ts +139 -139
  33. package/dist/cli/commands/create-app.js +1 -1
  34. package/dist/cli/commands/init-definition.js +1 -1
  35. package/dist/cli/init-command.d.ts +2 -2
  36. package/dist/cli/init-command.d.ts.map +1 -1
  37. package/dist/cli/init-command.js +32 -49
  38. package/dist/cli/init-command.js.map +1 -1
  39. package/dist/cli/openclaw-plugin-bundle.d.ts +8 -1
  40. package/dist/cli/openclaw-plugin-bundle.d.ts.map +1 -1
  41. package/dist/cli/openclaw-plugin-bundle.js +12 -7
  42. package/dist/cli/openclaw-plugin-bundle.js.map +1 -1
  43. package/dist/config/system-config.d.ts +21 -6
  44. package/dist/config/system-config.d.ts.map +1 -1
  45. package/dist/config/system-config.js +74 -8
  46. package/dist/config/system-config.js.map +1 -1
  47. package/dist/controller/composite-secret-resolver.d.ts +3 -0
  48. package/dist/controller/composite-secret-resolver.d.ts.map +1 -0
  49. package/dist/controller/composite-secret-resolver.js +38 -0
  50. package/dist/controller/composite-secret-resolver.js.map +1 -0
  51. package/dist/controller/controller-runtime-operations.d.ts +2 -2
  52. package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
  53. package/dist/controller/controller-runtime-operations.js +4 -16
  54. package/dist/controller/controller-runtime-operations.js.map +1 -1
  55. package/dist/controller/controller-runtime-support.d.ts +3 -2
  56. package/dist/controller/controller-runtime-support.d.ts.map +1 -1
  57. package/dist/controller/controller-runtime-support.js +11 -5
  58. package/dist/controller/controller-runtime-support.js.map +1 -1
  59. package/dist/controller/controller-runtime-types.d.ts +7 -3
  60. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  61. package/dist/controller/controller-runtime.d.ts.map +1 -1
  62. package/dist/controller/controller-runtime.js +86 -20
  63. package/dist/controller/controller-runtime.js.map +1 -1
  64. package/dist/controller/docker-service-routing.d.ts +11 -0
  65. package/dist/controller/docker-service-routing.d.ts.map +1 -0
  66. package/dist/controller/docker-service-routing.js +148 -0
  67. package/dist/controller/docker-service-routing.js.map +1 -0
  68. package/dist/controller/http/controller-http-route-support.d.ts +8 -0
  69. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
  70. package/dist/controller/http/controller-http-route-support.js.map +1 -1
  71. package/dist/controller/http/controller-http-routes.d.ts +2 -0
  72. package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
  73. package/dist/controller/http/controller-http-routes.js +20 -2
  74. package/dist/controller/http/controller-http-routes.js.map +1 -1
  75. package/dist/controller/http/controller-request-schemas.d.ts +8 -0
  76. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
  77. package/dist/controller/http/controller-request-schemas.js +6 -0
  78. package/dist/controller/http/controller-request-schemas.js.map +1 -1
  79. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
  80. package/dist/controller/http/controller-zone-operation-routes.js +25 -1
  81. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
  82. package/dist/controller/leases/lease-manager.d.ts +1 -1
  83. package/dist/controller/leases/lease-manager.d.ts.map +1 -1
  84. package/dist/controller/leases/lease-manager.js +1 -3
  85. package/dist/controller/leases/lease-manager.js.map +1 -1
  86. package/dist/controller/worker-task-runner.d.ts +39 -0
  87. package/dist/controller/worker-task-runner.d.ts.map +1 -0
  88. package/dist/controller/worker-task-runner.js +242 -0
  89. package/dist/controller/worker-task-runner.js.map +1 -0
  90. package/dist/gateway/credential-manager.d.ts +1 -1
  91. package/dist/gateway/credential-manager.d.ts.map +1 -1
  92. package/dist/gateway/credential-manager.js +26 -7
  93. package/dist/gateway/credential-manager.js.map +1 -1
  94. package/dist/gateway/gateway-image-builder.d.ts +1 -1
  95. package/dist/gateway/gateway-image-builder.d.ts.map +1 -1
  96. package/dist/gateway/gateway-lifecycle-loader.d.ts +1 -1
  97. package/dist/gateway/gateway-lifecycle-loader.d.ts.map +1 -1
  98. package/dist/gateway/gateway-lifecycle-loader.js +3 -3
  99. package/dist/gateway/gateway-lifecycle-loader.js.map +1 -1
  100. package/dist/gateway/gateway-recovery.d.ts +19 -0
  101. package/dist/gateway/gateway-recovery.d.ts.map +1 -0
  102. package/dist/gateway/gateway-recovery.js +147 -0
  103. package/dist/gateway/gateway-recovery.js.map +1 -0
  104. package/dist/gateway/gateway-runtime-record.d.ts +33 -0
  105. package/dist/gateway/gateway-runtime-record.d.ts.map +1 -0
  106. package/dist/gateway/gateway-runtime-record.js +114 -0
  107. package/dist/gateway/gateway-runtime-record.js.map +1 -0
  108. package/dist/gateway/gateway-zone-orchestrator.d.ts +6 -2
  109. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
  110. package/dist/gateway/gateway-zone-orchestrator.js +61 -16
  111. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
  112. package/dist/gateway/gateway-zone-support.d.ts +7 -4
  113. package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
  114. package/dist/gateway/gateway-zone-support.js +34 -0
  115. package/dist/gateway/gateway-zone-support.js.map +1 -1
  116. package/dist/operations/doctor.d.ts.map +1 -1
  117. package/dist/operations/doctor.js +22 -11
  118. package/dist/operations/doctor.js.map +1 -1
  119. package/dist/operations/upgrade-zone.d.ts +0 -1
  120. package/dist/operations/upgrade-zone.d.ts.map +1 -1
  121. package/dist/operations/upgrade-zone.js +0 -1
  122. package/dist/operations/upgrade-zone.js.map +1 -1
  123. package/dist/runtime/project-namespace.d.ts +5 -0
  124. package/dist/runtime/project-namespace.d.ts.map +1 -0
  125. package/dist/runtime/project-namespace.js +22 -0
  126. package/dist/runtime/project-namespace.js.map +1 -0
  127. package/dist/tool-vm/tool-vm-lifecycle.d.ts +1 -1
  128. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  129. package/dist/tool-vm/tool-vm-lifecycle.js +3 -2
  130. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
  131. package/package.json +42 -40
@@ -12,8 +12,8 @@ interface AgeEncryptionDependencies {
12
12
  * is stored in 1Password per zone. The public key (recipient) is derived
13
13
  * at encryption time via age-keygen -y.
14
14
  *
15
- * Secret keys are never written to disk they're passed via stdin
16
- * using /dev/stdin as the identity file path.
15
+ * Secret keys are written only to a short-lived 0600 temp file for tool
16
+ * compatibility, then deleted immediately after each operation.
17
17
  */
18
18
  export declare function createAgeBackupEncryption(dependencies: AgeEncryptionDependencies): BackupEncryption;
19
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"backup-encryption.d.ts","sourceRoot":"","sources":["../../src/backup/backup-encryption.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,UAAU,yBAAyB;IAClC;;mFAE+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACxC,YAAY,EAAE,yBAAyB,GACrC,gBAAgB,CAuBlB"}
1
+ {"version":3,"file":"backup-encryption.d.ts","sourceRoot":"","sources":["../../src/backup/backup-encryption.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,UAAU,yBAAyB;IAClC;;mFAE+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAqED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACxC,YAAY,EAAE,yBAAyB,GACrC,gBAAgB,CA8BlB"}
@@ -1,4 +1,7 @@
1
1
  import { spawn } from 'node:child_process';
2
+ import fs from 'node:fs/promises';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
2
5
  /**
3
6
  * Run a command with optional stdin input. Returns stdout as a string.
4
7
  * Rejects if the process exits non-zero.
@@ -30,13 +33,25 @@ function runWithStdin(command, args, stdinInput) {
30
33
  }
31
34
  });
32
35
  }
36
+ async function withTemporaryIdentityFile(identityLine, runWithIdentityFile) {
37
+ const temporaryIdentityPath = path.join(os.tmpdir(), `agent-vm-age-identity-${process.pid}-${Date.now()}.txt`);
38
+ await fs.writeFile(temporaryIdentityPath, `${identityLine}\n`, {
39
+ encoding: 'utf8',
40
+ mode: 0o600,
41
+ });
42
+ try {
43
+ return await runWithIdentityFile(temporaryIdentityPath);
44
+ }
45
+ finally {
46
+ await fs.rm(temporaryIdentityPath, { force: true });
47
+ }
48
+ }
33
49
  /**
34
- * Derive the public key (recipient) from an age identity key via stdin.
35
- * No temp files the secret key stays in memory.
50
+ * Derive the public key (recipient) from an age identity key via a short-lived
51
+ * 0600 temp file. `/dev/stdin` is not portable enough across CI runners.
36
52
  */
37
53
  async function deriveRecipientFromIdentity(identityLine) {
38
- const stdout = await runWithStdin('age-keygen', ['-y', '/dev/stdin'], identityLine + '\n');
39
- return stdout.trim();
54
+ return await withTemporaryIdentityFile(identityLine, async (identityFilePath) => (await runWithStdin('age-keygen', ['-y', identityFilePath])).trim());
40
55
  }
41
56
  /**
42
57
  * Age identity-key-based encryption for zone backups.
@@ -45,8 +60,8 @@ async function deriveRecipientFromIdentity(identityLine) {
45
60
  * is stored in 1Password per zone. The public key (recipient) is derived
46
61
  * at encryption time via age-keygen -y.
47
62
  *
48
- * Secret keys are never written to disk they're passed via stdin
49
- * using /dev/stdin as the identity file path.
63
+ * Secret keys are written only to a short-lived 0600 temp file for tool
64
+ * compatibility, then deleted immediately after each operation.
50
65
  */
51
66
  export function createAgeBackupEncryption(dependencies) {
52
67
  return {
@@ -64,7 +79,14 @@ export function createAgeBackupEncryption(dependencies) {
64
79
  },
65
80
  decrypt: async (inputPath, outputPath) => {
66
81
  const identity = await dependencies.resolveIdentity();
67
- await runWithStdin('age', ['--decrypt', '--identity', '/dev/stdin', '--output', outputPath, inputPath], identity + '\n');
82
+ await withTemporaryIdentityFile(identity, async (identityFilePath) => await runWithStdin('age', [
83
+ '--decrypt',
84
+ '--identity',
85
+ identityFilePath,
86
+ '--output',
87
+ outputPath,
88
+ inputPath,
89
+ ]));
68
90
  },
69
91
  };
70
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backup-encryption.js","sourceRoot":"","sources":["../../src/backup/backup-encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAW3C;;;GAGG;AACH,SAAS,YAAY,CACpB,OAAe,EACf,IAAuB,EACvB,UAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,iBAAiB,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxE,OAAO;YACR,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,2BAA2B,CAAC,YAAoB;IAC9D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACxC,YAAuC;IAEvC,OAAO;QACN,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,YAAY,CAAC,KAAK,EAAE;gBACzB,WAAW;gBACX,aAAa;gBACb,SAAS;gBACT,UAAU;gBACV,UAAU;gBACV,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YACtD,MAAM,YAAY,CACjB,KAAK,EACL,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAC5E,QAAQ,GAAG,IAAI,CACf,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"backup-encryption.js","sourceRoot":"","sources":["../../src/backup/backup-encryption.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export interface DockerImageBuilderDependencies {
2
- readonly executeCommand?: (command: string, args: readonly string[]) => Promise<void>;
2
+ readonly executeCommand?: (command: string, args: readonly string[]) => Promise<{
3
+ readonly exitCode?: number;
4
+ } | void>;
3
5
  }
4
6
  export interface BuildDockerImageOptions {
5
7
  readonly dockerfilePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"docker-image-builder.d.ts","sourceRoot":"","sources":["../../src/build/docker-image-builder.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AASD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,8BAAmC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"docker-image-builder.d.ts","sourceRoot":"","sources":["../../src/build/docker-image-builder.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,KACnB,OAAO,CAAC;QACZ,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,IAAI,CAAC,CAAC;CACV;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,8BAAmC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path';
2
2
  import { execa } from 'execa';
3
- async function executeDockerCommand(command, arguments_) {
4
- await execa(command, arguments_, { stdio: 'inherit' });
3
+ async function executeDockerCommand(command, args) {
4
+ await execa(command, args, { stdio: 'inherit' });
5
5
  }
6
6
  export async function buildDockerImage(options, dependencies = {}) {
7
7
  const executeCommand = dependencies.executeCommand ?? executeDockerCommand;
8
8
  const resolvedDockerfilePath = path.resolve(options.dockerfilePath);
9
- const contextDirectory = path.dirname(resolvedDockerfilePath);
9
+ const dockerBuildContextDirectory = path.dirname(resolvedDockerfilePath);
10
10
  try {
11
11
  await executeCommand('docker', [
12
12
  'build',
@@ -14,7 +14,7 @@ export async function buildDockerImage(options, dependencies = {}) {
14
14
  resolvedDockerfilePath,
15
15
  '-t',
16
16
  options.imageTag,
17
- contextDirectory,
17
+ dockerBuildContextDirectory,
18
18
  ]);
19
19
  }
20
20
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"docker-image-builder.js","sourceRoot":"","sources":["../../src/build/docker-image-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAW9B,KAAK,UAAU,oBAAoB,CAClC,OAAe,EACf,UAA6B;IAE7B,MAAM,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAAgC,EAChC,eAA+C,EAAE;IAEjD,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,IAAI,oBAAoB,CAAC;IAC3E,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACJ,MAAM,cAAc,CAAC,QAAQ,EAAE;YAC9B,OAAO;YACP,IAAI;YACJ,sBAAsB;YACtB,IAAI;YACJ,OAAO,CAAC,QAAQ;YAChB,gBAAgB;SAChB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,2BAA2B,OAAO,CAAC,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxG,EAAE,KAAK,EAAE,KAAK,EAAE,CAChB,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"docker-image-builder.js","sourceRoot":"","sources":["../../src/build/docker-image-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAgB9B,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,IAAuB;IAC3E,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAAgC,EAChC,eAA+C,EAAE;IAEjD,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,IAAI,oBAAoB,CAAC;IAC3E,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEzE,IAAI,CAAC;QACJ,MAAM,cAAc,CAAC,QAAQ,EAAE;YAC9B,OAAO;YACP,IAAI;YACJ,sBAAsB;YACtB,IAAI;YACJ,OAAO,CAAC,QAAQ;YAChB,2BAA2B;SAC3B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,2BAA2B,OAAO,CAAC,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxG,EAAE,KAAK,EAAE,KAAK,EAAE,CAChB,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -1,12 +1,12 @@
1
- import { type BuildConfig, type BuildImageOptions, type BuildImageResult } from '@shravansunder/agent-vm-gondolin-core';
1
+ import { type BuildConfig, type BuildImageOptions, type BuildImageResult } from '@shravansunder/gondolin-core';
2
2
  export interface GondolinImageBuilderDependencies {
3
3
  readonly buildImage?: (options: BuildImageOptions) => Promise<BuildImageResult>;
4
4
  readonly loadBuildConfig?: (buildConfigPath: string) => Promise<BuildConfig>;
5
5
  }
6
+ export declare function computeFingerprintFromConfigPath(buildConfigPath: string): Promise<string>;
6
7
  export declare function buildGondolinImage(options: {
7
8
  readonly buildConfigPath: string;
8
9
  readonly cacheDir: string;
9
10
  readonly fullReset?: boolean;
10
11
  }, dependencies?: GondolinImageBuilderDependencies): Promise<BuildImageResult>;
11
- export declare function computeFingerprintFromConfigPath(buildConfigPath: string, dependencies?: Pick<GondolinImageBuilderDependencies, 'loadBuildConfig'>): Promise<string>;
12
12
  //# sourceMappingURL=gondolin-image-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gondolin-image-builder.d.ts","sourceRoot":"","sources":["../../src/build/gondolin-image-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChF,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7E;AAMD,wBAAsB,kBAAkB,CACvC,OAAO,EAAE;IACR,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,YAAY,GAAE,gCAAqC,GACjD,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED,wBAAsB,gCAAgC,CACrD,eAAe,EAAE,MAAM,EACvB,YAAY,GAAE,IAAI,CAAC,gCAAgC,EAAE,iBAAiB,CAAM,GAC1E,OAAO,CAAC,MAAM,CAAC,CAGjB"}
1
+ {"version":3,"file":"gondolin-image-builder.d.ts","sourceRoot":"","sources":["../../src/build/gondolin-image-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChF,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7E;AAOD,wBAAsB,gCAAgC,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/F;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE;IACR,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,YAAY,GAAE,gCAAqC,GACjD,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
@@ -1,23 +1,24 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { buildImage as buildImageFromCore, computeBuildFingerprint, } from '@shravansunder/agent-vm-gondolin-core';
3
+ import { buildImage as buildImageFromCore, computeBuildFingerprint, } from '@shravansunder/gondolin-core';
4
4
  async function loadBuildConfigFromJson(buildConfigPath) {
5
- return JSON.parse(await fs.readFile(buildConfigPath, 'utf8'));
5
+ const rawContents = await fs.readFile(buildConfigPath, 'utf8');
6
+ return JSON.parse(rawContents);
7
+ }
8
+ export async function computeFingerprintFromConfigPath(buildConfigPath) {
9
+ const buildConfig = await loadBuildConfigFromJson(buildConfigPath);
10
+ return computeBuildFingerprint(buildConfig);
6
11
  }
7
12
  export async function buildGondolinImage(options, dependencies = {}) {
8
13
  const loadBuildConfig = dependencies.loadBuildConfig ?? loadBuildConfigFromJson;
9
14
  const buildImage = dependencies.buildImage ?? buildImageFromCore;
10
- const configDirectory = path.dirname(path.resolve(options.buildConfigPath));
15
+ const configDir = path.dirname(path.resolve(options.buildConfigPath));
11
16
  const buildConfig = await loadBuildConfig(options.buildConfigPath);
12
17
  return await buildImage({
13
18
  buildConfig,
14
19
  cacheDir: options.cacheDir,
15
- configDir: configDirectory,
16
- ...(options.fullReset !== undefined ? { fullReset: options.fullReset } : {}),
20
+ configDir,
21
+ ...(options.fullReset ? { fullReset: true } : {}),
17
22
  });
18
23
  }
19
- export async function computeFingerprintFromConfigPath(buildConfigPath, dependencies = {}) {
20
- const loadBuildConfig = dependencies.loadBuildConfig ?? loadBuildConfigFromJson;
21
- return computeBuildFingerprint(await loadBuildConfig(buildConfigPath));
22
- }
23
24
  //# sourceMappingURL=gondolin-image-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gondolin-image-builder.js","sourceRoot":"","sources":["../../src/build/gondolin-image-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACN,UAAU,IAAI,kBAAkB,EAChC,uBAAuB,GAIvB,MAAM,uCAAuC,CAAC;AAO/C,KAAK,UAAU,uBAAuB,CAAC,eAAuB;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAgB,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAIC,EACD,eAAiD,EAAE;IAEnD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,uBAAuB,CAAC;IAChF,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,kBAAkB,CAAC;IACjE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEnE,OAAO,MAAM,UAAU,CAAC;QACvB,WAAW;QACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,eAAe;QAC1B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACrD,eAAuB,EACvB,eAA0E,EAAE;IAE5E,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,uBAAuB,CAAC;IAChF,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"gondolin-image-builder.js","sourceRoot":"","sources":["../../src/build/gondolin-image-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACN,UAAU,IAAI,kBAAkB,EAChC,uBAAuB,GAIvB,MAAM,8BAA8B,CAAC;AAOtC,KAAK,UAAU,uBAAuB,CAAC,eAAuB;IAC7D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAgB,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,eAAuB;IAC7E,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACnE,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAIC,EACD,eAAiD,EAAE;IAEnD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,uBAAuB,CAAC;IAChF,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,kBAAkB,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEnE,OAAO,MAAM,UAAU,CAAC;QACvB,WAAW;QACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS;QACT,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stale-image-cleaner.d.ts","sourceRoot":"","sources":["../../src/build/stale-image-cleaner.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAoBD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClF,GAAG,SAAS,eAAe,EAAE,CA2B7B;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAIrF"}
1
+ {"version":3,"file":"stale-image-cleaner.d.ts","sourceRoot":"","sources":["../../src/build/stale-image-cleaner.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAqBD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClF,GAAG,SAAS,eAAe,EAAE,CA0B7B;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAIrF"}
@@ -3,35 +3,39 @@ import path from 'node:path';
3
3
  function getDirectorySizeBytes(directoryPath) {
4
4
  let totalSizeBytes = 0;
5
5
  try {
6
- for (const entry of fs.readdirSync(directoryPath, { withFileTypes: true })) {
7
- if (!entry.isFile()) {
6
+ for (const directoryEntry of fs.readdirSync(directoryPath, { withFileTypes: true })) {
7
+ const absoluteEntryPath = path.join(directoryPath, directoryEntry.name);
8
+ if (directoryEntry.isDirectory()) {
9
+ totalSizeBytes += getDirectorySizeBytes(absoluteEntryPath);
8
10
  continue;
9
11
  }
10
- totalSizeBytes += fs.statSync(path.join(directoryPath, entry.name)).size;
12
+ if (directoryEntry.isFile()) {
13
+ totalSizeBytes += fs.statSync(absoluteEntryPath).size;
14
+ }
11
15
  }
12
16
  }
13
17
  catch {
14
- return 0;
18
+ return totalSizeBytes;
15
19
  }
16
20
  return totalSizeBytes;
17
21
  }
18
22
  export function findStaleImageDirectories(options) {
19
23
  const staleEntries = [];
20
24
  for (const imageType of ['gateway', 'tool']) {
21
- const typeDirectory = path.join(options.cacheDir, 'images', imageType);
22
- if (!fs.existsSync(typeDirectory)) {
25
+ const imageCacheDirectory = path.join(options.cacheDir, 'images', imageType);
26
+ if (!fs.existsSync(imageCacheDirectory)) {
23
27
  continue;
24
28
  }
25
29
  const currentFingerprint = options.currentFingerprints[imageType];
26
- for (const entry of fs.readdirSync(typeDirectory, { withFileTypes: true })) {
27
- if (!entry.isDirectory() || entry.name === currentFingerprint) {
30
+ for (const directoryEntry of fs.readdirSync(imageCacheDirectory, { withFileTypes: true })) {
31
+ if (!directoryEntry.isDirectory() || directoryEntry.name === currentFingerprint) {
28
32
  continue;
29
33
  }
30
- const absolutePath = path.join(typeDirectory, entry.name);
34
+ const absolutePath = path.join(imageCacheDirectory, directoryEntry.name);
31
35
  staleEntries.push({
32
36
  absolutePath,
33
37
  imageType,
34
- name: entry.name,
38
+ name: directoryEntry.name,
35
39
  sizeBytes: getDirectorySizeBytes(absolutePath),
36
40
  });
37
41
  }
@@ -40,7 +44,7 @@ export function findStaleImageDirectories(options) {
40
44
  }
41
45
  export function deleteStaleImageDirectories(entries) {
42
46
  for (const entry of entries) {
43
- fs.rmSync(entry.absolutePath, { recursive: true, force: true });
47
+ fs.rmSync(entry.absolutePath, { force: true, recursive: true });
44
48
  }
45
49
  }
46
50
  //# sourceMappingURL=stale-image-cleaner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stale-image-cleaner.js","sourceRoot":"","sources":["../../src/build/stale-image-cleaner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,SAAS,qBAAqB,CAAC,aAAqB;IACnD,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrB,SAAS;YACV,CAAC;YAED,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,CAAC;IACV,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAGzC;IACA,MAAM,YAAY,GAAsB,EAAE,CAAC;IAE3C,KAAK,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,CAAU,EAAE,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,SAAS;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAElE,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/D,SAAS;YACV,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC;gBACjB,YAAY;gBACZ,SAAS;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,qBAAqB,CAAC,YAAY,CAAC;aAC9C,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAmC;IAC9E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"stale-image-cleaner.js","sourceRoot":"","sources":["../../src/build/stale-image-cleaner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,SAAS,qBAAqB,CAAC,aAAqB;IACnD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC;QACJ,KAAK,MAAM,cAAc,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClC,cAAc,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;gBAC3D,SAAS;YACV,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7B,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;YACvD,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAGzC;IACA,MAAM,YAAY,GAAsB,EAAE,CAAC;IAE3C,KAAK,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,CAAU,EAAE,CAAC;QACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzC,SAAS;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAClE,KAAK,MAAM,cAAc,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,cAAc,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACjF,SAAS;YACV,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;YACzE,YAAY,CAAC,IAAI,CAAC;gBACjB,YAAY;gBACZ,SAAS;gBACT,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,SAAS,EAAE,qBAAqB,CAAC,YAAY,CAAC;aAC9C,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAmC;IAC9E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { SecretResolver } from '@shravansunder/agent-vm-gondolin-core';
2
- import { createOpCliSecretResolver, resolveServiceAccountToken } from '@shravansunder/agent-vm-gondolin-core';
1
+ import type { SecretResolver } from '@shravansunder/gondolin-core';
2
+ import { createOpCliSecretResolver, resolveServiceAccountToken } from '@shravansunder/gondolin-core';
3
3
  import { createAgeBackupEncryption } from '../backup/backup-encryption.js';
4
4
  import { createZoneBackupManager } from '../backup/backup-manager.js';
5
5
  import { loadSystemConfig, type SystemConfig } from '../config/system-config.js';
@@ -41,7 +41,7 @@ export interface CliDependencies {
41
41
  readonly zoneId: string;
42
42
  }, runtimeDependencies?: ControllerRuntimeDependencies) => Promise<{
43
43
  readonly controllerPort: number;
44
- readonly gateway: {
44
+ readonly gateway?: {
45
45
  readonly ingress: {
46
46
  readonly host: string;
47
47
  readonly port: number;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-vm-cli-support.d.ts","sourceRoot":"","sources":["../../src/cli/agent-vm-cli-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-vm-cli-support.d.ts","sourceRoot":"","sources":["../../src/cli/agent-vm-cli-support.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { createOpCliSecretResolver, resolveServiceAccountToken, } from '@shravansunder/agent-vm-gondolin-core';
1
+ import { createOpCliSecretResolver, resolveServiceAccountToken, } from '@shravansunder/gondolin-core';
2
2
  import { createAgeBackupEncryption } from '../backup/backup-encryption.js';
3
3
  import { createZoneBackupManager } from '../backup/backup-manager.js';
4
4
  import { loadSystemConfig } from '../config/system-config.js';
5
+ import { createSecretResolver as createControllerSecretResolver } from '../controller/controller-runtime-support.js';
5
6
  import { startControllerRuntime } from '../controller/controller-runtime.js';
6
7
  import { createControllerClient } from '../controller/http/controller-client.js';
7
8
  import { startGatewayZone } from '../gateway/gateway-zone-orchestrator.js';
@@ -32,9 +33,9 @@ export function writeJson(io, value) {
32
33
  export function resolveConfigPath(argv) {
33
34
  const configFlagIndex = argv.indexOf('--config');
34
35
  if (configFlagIndex >= 0) {
35
- return argv[configFlagIndex + 1] ?? 'system.json';
36
+ return argv[configFlagIndex + 1] ?? 'config/system.json';
36
37
  }
37
- return 'system.json';
38
+ return 'config/system.json';
38
39
  }
39
40
  export function readZoneFlag(argv) {
40
41
  const zoneFlagIndex = argv.indexOf('--zone');
@@ -63,10 +64,6 @@ export function requireZone(systemConfig, zoneFlag) {
63
64
  throw new Error(`--zone is required. Available zones:\n${zoneList}`);
64
65
  }
65
66
  export async function createResolverFromSystemConfig(systemConfig, dependencies) {
66
- const tokenSource = systemConfig.host.secretsProvider.tokenSource;
67
- const serviceAccountToken = await dependencies.resolveServiceAccountToken(tokenSource);
68
- return await dependencies.createSecretResolver({
69
- serviceAccountToken,
70
- });
67
+ return await createControllerSecretResolver(systemConfig, dependencies.createSecretResolver, dependencies.resolveServiceAccountToken);
71
68
  }
72
69
  //# sourceMappingURL=agent-vm-cli-support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-vm-cli-support.js","sourceRoot":"","sources":["../../src/cli/agent-vm-cli-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-vm-cli-support.js","sourceRoot":"","sources":["../../src/cli/agent-vm-cli-support.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,4 +1,4 @@
1
- import type { GatewayAuthConfig } from '@shravansunder/agent-vm-gateway-interface';
1
+ import type { GatewayAuthConfig } from '@shravansunder/gateway-interface';
2
2
  import type { SystemConfig } from '../config/system-config.js';
3
3
  import { type CliDependencies, type CliIo } from './agent-vm-cli-support.js';
4
4
  import { type ZoneSshAccessResponse } from './ssh-commands.js';
@@ -1 +1 @@
1
- {"version":3,"file":"auth-interactive-command.d.ts","sourceRoot":"","sources":["../../src/cli/auth-interactive-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAGnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,KAAK,EAEV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAY5F,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC1C,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAuC7B;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAC1B,eAAe,EACf,wBAAwB,GAAG,YAAY,GAAG,uBAAuB,CACjE,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhB"}
1
+ {"version":3,"file":"auth-interactive-command.d.ts","sourceRoot":"","sources":["../../src/cli/auth-interactive-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,KAAK,EAEV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAY5F,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC1C,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAuC7B;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAC1B,eAAe,EACf,wBAAwB,GAAG,YAAY,GAAG,uBAAuB,CACjE,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhB"}
@@ -1,4 +1,4 @@
1
- import type { BuildImageResult } from '@shravansunder/agent-vm-gondolin-core';
1
+ import type { BuildImageResult } from '@shravansunder/gondolin-core';
2
2
  import type { SystemConfig } from '../config/system-config.js';
3
3
  export interface BuildCommandDependencies {
4
4
  readonly buildDockerImage?: (options: {
@@ -13,6 +13,7 @@ export interface BuildCommandDependencies {
13
13
  readonly resolveOciImageTag?: (buildConfigPath: string) => Promise<string>;
14
14
  /** Override the task runner for testing (bypasses tasuku terminal rendering). */
15
15
  readonly runTask?: (title: string, fn: () => Promise<void>) => Promise<void>;
16
+ readonly resolveProjectRootFromDockerfile?: (dockerfilePath: string) => Promise<string>;
16
17
  readonly syncBundledOpenClawPlugin?: (targetDir: string) => Promise<'created' | 'skipped'>;
17
18
  }
18
19
  export declare function runBuildCommand(options: {
@@ -1 +1 @@
1
- {"version":3,"file":"build-command.d.ts","sourceRoot":"","sources":["../../src/cli/build-command.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAM9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,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,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CAC3F;AAiCD,wBAAsB,eAAe,CACpC,OAAO,EAAE;IACR,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACpC,EACD,YAAY,GAAE,wBAA6B,GACzC,OAAO,CAAC,IAAI,CAAC,CAyDf"}
1
+ {"version":3,"file":"build-command.d.ts","sourceRoot":"","sources":["../../src/cli/build-command.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,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,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxF,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CAC3F;AAqDD,wBAAsB,eAAe,CACpC,OAAO,EAAE;IACR,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACpC,EACD,YAAY,GAAE,wBAA6B,GACzC,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -26,11 +26,31 @@ async function defaultRunTask(title, fn) {
26
26
  taskState.setTitle(`${title} done`);
27
27
  });
28
28
  }
29
+ async function resolveProjectRootFromDockerfile(dockerfilePath) {
30
+ let searchDirectory = path.dirname(path.resolve(dockerfilePath));
31
+ for (;;) {
32
+ try {
33
+ // oxlint-disable-next-line no-await-in-loop -- upward root discovery is intentionally sequential
34
+ await fs.access(path.join(searchDirectory, 'config', 'system.json'));
35
+ return searchDirectory;
36
+ }
37
+ catch {
38
+ const parentDirectory = path.dirname(searchDirectory);
39
+ if (parentDirectory === searchDirectory) {
40
+ // Fallback for older test scaffolds and legacy layouts that still follow the
41
+ // standard images/gateway/Dockerfile shape but do not materialize config/system.json.
42
+ return path.resolve(dockerfilePath, '..', '..', '..');
43
+ }
44
+ searchDirectory = parentDirectory;
45
+ }
46
+ }
47
+ }
29
48
  export async function runBuildCommand(options, dependencies = {}) {
30
49
  const buildDockerImage = dependencies.buildDockerImage ?? buildDockerImageDefault;
31
50
  const buildGondolinImage = dependencies.buildGondolinImage ?? buildGondolinImageDefault;
32
51
  const resolveOciImageTag = dependencies.resolveOciImageTag ?? resolveOciImageTagFromConfig;
33
52
  const runTaskStep = dependencies.runTask ?? defaultRunTask;
53
+ const resolveProjectRoot = dependencies.resolveProjectRootFromDockerfile ?? resolveProjectRootFromDockerfile;
34
54
  const syncBundledOpenClawPlugin = dependencies.syncBundledOpenClawPlugin ?? syncBundledOpenClawPluginBundle;
35
55
  const imageTargets = [
36
56
  {
@@ -45,15 +65,22 @@ export async function runBuildCommand(options, dependencies = {}) {
45
65
  },
46
66
  ];
47
67
  const dockerImageTargets = imageTargets.filter((imageTarget) => imageTarget.dockerfile !== undefined);
68
+ // oxlint-disable-next-line no-await-in-loop -- image builds are intentionally sequential for stable task output and shared image tags
48
69
  for (const imageTarget of dockerImageTargets) {
70
+ // oxlint-disable-next-line no-await-in-loop -- each image tag is resolved in lockstep with its matching build task
49
71
  const imageTag = await resolveOciImageTag(imageTarget.buildConfigPath);
50
72
  if (imageTarget.name === 'gateway' &&
51
73
  options.systemConfig.zones.some((zone) => zone.gateway.type === 'openclaw')) {
52
- const projectRootDirectory = path.resolve(imageTarget.dockerfile, '..', '..', '..');
74
+ // Resolve the scaffold root via config/system.json instead of assuming a fixed
75
+ // images/gateway/Dockerfile depth.
76
+ // oxlint-disable-next-line no-await-in-loop -- root discovery belongs to the matching build target
77
+ const projectRootDirectory = await resolveProjectRoot(imageTarget.dockerfile);
78
+ // oxlint-disable-next-line no-await-in-loop -- bundle sync must complete before the matching docker build starts
53
79
  await runTaskStep('OpenClaw plugin bundle', async () => {
54
80
  await syncBundledOpenClawPlugin(projectRootDirectory);
55
81
  });
56
82
  }
83
+ // oxlint-disable-next-line no-await-in-loop -- docker builds intentionally run one at a time to keep task output readable
57
84
  await runTaskStep(`Docker: ${imageTarget.name} (${imageTag})`, async () => {
58
85
  await buildDockerImage({
59
86
  dockerfilePath: imageTarget.dockerfile,
@@ -65,6 +92,7 @@ export async function runBuildCommand(options, dependencies = {}) {
65
92
  for (const imageTarget of imageTargets) {
66
93
  const cacheDirectory = path.join(options.systemConfig.cacheDir, 'images', imageTarget.name);
67
94
  const shouldResetGondolinCache = options.forceRebuild === true || dockerBackedTargets.has(imageTarget.name);
95
+ // oxlint-disable-next-line no-await-in-loop -- gondolin cache rebuilds are intentionally sequenced per image target
68
96
  await runTaskStep(`Gondolin: ${imageTarget.name}`, async () => {
69
97
  await buildGondolinImage({
70
98
  buildConfigPath: imageTarget.buildConfigPath,
@@ -1 +1 @@
1
- {"version":3,"file":"build-command.js","sourceRoot":"","sources":["../../src/cli/build-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-command.js","sourceRoot":"","sources":["../../src/cli/build-command.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ export function createConfigOption() {
7
7
  type: optional(string),
8
8
  long: 'config',
9
9
  short: 'c',
10
- description: 'Path to system.json',
11
- defaultValue: () => 'system.json',
10
+ description: 'Path to config/system.json',
11
+ defaultValue: () => 'config/system.json',
12
12
  });
13
13
  }
14
14
  export function createZoneOption() {
@@ -44,7 +44,7 @@ export function createRemoteCommandArguments() {
44
44
  });
45
45
  }
46
46
  export function loadSystemConfigFromOption(configPath, dependencies) {
47
- const resolvedConfigPath = configPath ?? 'system.json';
47
+ const resolvedConfigPath = configPath ?? 'config/system.json';
48
48
  return dependencies.loadSystemConfig(resolvedConfigPath).catch((error) => {
49
49
  if (error instanceof ZodError) {
50
50
  throw new Error(formatZodError(`Invalid ${resolvedConfigPath} configuration:`, error), {
@@ -66,9 +66,9 @@ export function parseGatewayType(gatewayType) {
66
66
  if (gatewayType === 'openclaw') {
67
67
  return gatewayType;
68
68
  }
69
- if (gatewayType === 'coding') {
69
+ if (gatewayType === 'worker') {
70
70
  return gatewayType;
71
71
  }
72
- throw new Error(`Gateway type is required. Expected 'openclaw' or 'coding'${gatewayType ? `, got '${gatewayType}'` : ''}.`);
72
+ throw new Error(`Gateway type is required. Expected 'openclaw' or 'worker'${gatewayType ? `, got '${gatewayType}'` : ''}.`);
73
73
  }
74
74
  //# sourceMappingURL=command-definition-support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-definition-support.js","sourceRoot":"","sources":["../../../src/cli/commands/command-definition-support.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,UAAU,kBAAkB;IACjC,OAAO,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa;KACjC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,sDAAsD;KACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;KAC7C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4CAA4C;KACzD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kDAAkD;KAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,OAAO,eAAe,CAAC;QACtB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,4CAA4C;KACzD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,UAA8B,EAC9B,YAAuD;IAEvD,MAAM,kBAAkB,GAAG,UAAU,IAAI,aAAa,CAAC;IACvD,OAAO,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACjF,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,kBAAkB,iBAAiB,EAAE,KAAK,CAAC,EAAE;gBACtF,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,kBAAkB,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC1E,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAoB,EAAE,MAAc;IACtE,OAAO,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAA+B;IAC/D,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CACd,4DAA4D,WAAW,CAAC,CAAC,CAAC,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAC1G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"command-definition-support.js","sourceRoot":"","sources":["../../../src/cli/commands/command-definition-support.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,UAAU,kBAAkB;IACjC,OAAO,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,4BAA4B;QACzC,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB;KACxC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,sDAAsD;KACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;KAC7C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4CAA4C;KACzD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kDAAkD;KAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,OAAO,eAAe,CAAC;QACtB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,4CAA4C;KACzD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,UAA8B,EAC9B,YAAuD;IAEvD,MAAM,kBAAkB,GAAG,UAAU,IAAI,oBAAoB,CAAC;IAC9D,OAAO,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACjF,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,kBAAkB,iBAAiB,EAAE,KAAK,CAAC,EAAE;gBACtF,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,kBAAkB,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC1E,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAoB,EAAE,MAAc;IACtE,OAAO,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAA+B;IAC/D,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CACd,4DAA4D,WAAW,CAAC,CAAC,CAAC,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAC1G,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller-definition.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/controller-definition.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,KAAK,EAAe,MAAM,4BAA4B,CAAC;AAoF3F,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6JnF"}
1
+ {"version":3,"file":"controller-definition.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/controller-definition.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,KAAK,EAAe,MAAM,4BAA4B,CAAC;AAmF3F,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6JnF"}
@@ -72,8 +72,8 @@ export function createControllerSubcommands(io, dependencies) {
72
72
  }, { runTask });
73
73
  io.stdout.write(`${JSON.stringify({
74
74
  controllerPort: runtime.controllerPort,
75
- ingress: runtime.gateway.ingress,
76
- vmId: runtime.gateway.vm.id,
75
+ ingress: runtime.gateway?.ingress ?? null,
76
+ vmId: runtime.gateway?.vm.id ?? null,
77
77
  zoneId: selectedZone.id,
78
78
  }, null, 2)}\n`);
79
79
  },