@forgezero/agent 0.1.154 → 0.1.155

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.
@@ -948,7 +948,7 @@ async function postSignedNode(options, path, body) {
948
948
  }
949
949
 
950
950
  // src/version.ts
951
- var VERSION3 = "0.1.154";
951
+ var VERSION3 = "0.1.155";
952
952
 
953
953
  // src/agent-heartbeat.ts
954
954
  function readAgentHostMetrics() {
package/dist/bootstrap.js CHANGED
@@ -1460,7 +1460,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
1460
1460
  var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
1461
1461
 
1462
1462
  // src/version.ts
1463
- var VERSION = "0.1.154";
1463
+ var VERSION = "0.1.155";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";
package/dist/fz-agent.js CHANGED
@@ -11485,7 +11485,7 @@ async function writeAndCloseProcessInput(input, value) {
11485
11485
  }
11486
11486
 
11487
11487
  // src/version.ts
11488
- var VERSION2 = "0.1.154";
11488
+ var VERSION2 = "0.1.155";
11489
11489
 
11490
11490
  // src/ssh-bootstrap.ts
11491
11491
  function deriveMetalAdmissionProvisioning(lscpu) {
@@ -11561,6 +11561,26 @@ var checked = async (exec, argv2, code, options) => {
11561
11561
  throw new SshBootstrapError(code);
11562
11562
  return result.output.trim();
11563
11563
  };
11564
+ var checkedSshOpen = async (exec, argv2) => {
11565
+ let result;
11566
+ try {
11567
+ result = await exec(argv2);
11568
+ } catch {
11569
+ throw new SshBootstrapError("SSH_CLIENT_FAILED");
11570
+ }
11571
+ if (result.exitCode === 0)
11572
+ return result.output.trim();
11573
+ const output = result.output.toLowerCase();
11574
+ if (/permission denied|authentication failed|no supported authentication methods/.test(output)) {
11575
+ throw new SshBootstrapError("SSH_AUTH_FAILED");
11576
+ }
11577
+ if (/connection refused/.test(output))
11578
+ throw new SshBootstrapError("SSH_CONNECTION_REFUSED");
11579
+ if (/connection timed out|operation timed out|no route to host|network is unreachable/.test(output)) {
11580
+ throw new SshBootstrapError("SSH_NETWORK_UNREACHABLE");
11581
+ }
11582
+ throw new SshBootstrapError("SSH_UNREACHABLE");
11583
+ };
11564
11584
  var validateClaim = (claim) => {
11565
11585
  if (!/^[A-Za-z0-9_-]{1,64}$/.test(claim.computeKey) || !/^[A-Za-z0-9_-]{16,128}$/.test(claim.claimToken) || !/^fze_[A-Za-z0-9_-]{32,128}$/.test(claim.enrolmentToken) || !/^[a-z0-9][a-z0-9_-]{0,62}$/.test(claim.realm) || !/^[A-Za-z0-9_-]{1,64}$/.test(claim.projectKey) || !/^[A-Za-z0-9_-]{1,64}$/.test(claim.environmentKey))
11566
11586
  throw new SshBootstrapError("CLAIM_INVALID");
@@ -11704,7 +11724,7 @@ process.stdout.write(process.env.FZ_SSH_PASSWORD ?? "")
11704
11724
  claim.target.hostKeySha256 = observedHost.fingerprint;
11705
11725
  const knownHosts = observedHost.path;
11706
11726
  const ssh = sshOptions(claim, pinned, knownHosts, sshKeyPath);
11707
- remoteDirectory = await checked(exec, ["ssh", ...ssh, target(claim, pinned), "--", "mktemp", "-d", "/tmp/forgezero-bootstrap.XXXXXXXX"], "SSH_UNREACHABLE");
11727
+ remoteDirectory = await checkedSshOpen(exec, ["ssh", ...ssh, target(claim, pinned), "--", "mktemp", "-d", "/tmp/forgezero-bootstrap.XXXXXXXX"]);
11708
11728
  if (!/^\/tmp\/forgezero-bootstrap\.[A-Za-z0-9]{8}$/.test(remoteDirectory))
11709
11729
  throw new SshBootstrapError("REMOTE_PATH_INVALID");
11710
11730
  const destination = target(claim, pinned);
@@ -12055,7 +12075,7 @@ process.stdout.write(process.env.FZ_SSH_PASSWORD ?? "")
12055
12075
  const ssh = sshOptions(claim, pinned, knownHosts, sshKeyPath);
12056
12076
  const destination = target(claim, pinned);
12057
12077
  await progress("opening-ssh");
12058
- remoteDirectory = await checked(exec, ["ssh", ...ssh, destination, "--", "mktemp", "-d", "/tmp/forgezero-metal-admission.XXXXXXXX"], "SSH_UNREACHABLE");
12078
+ remoteDirectory = await checkedSshOpen(exec, ["ssh", ...ssh, destination, "--", "mktemp", "-d", "/tmp/forgezero-metal-admission.XXXXXXXX"]);
12059
12079
  if (!/^\/tmp\/forgezero-metal-admission\.[A-Za-z0-9]{8}$/.test(remoteDirectory))
12060
12080
  throw new SshBootstrapError("REMOTE_PATH_INVALID");
12061
12081
  await progress("installing-managed-key");
package/dist/fz.js CHANGED
@@ -7345,7 +7345,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
7345
7345
  var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
7346
7346
 
7347
7347
  // src/version.ts
7348
- var VERSION2 = "0.1.154";
7348
+ var VERSION2 = "0.1.155";
7349
7349
 
7350
7350
  // src/software.ts
7351
7351
  var PINNED_BUN_VERSION = "1.3.14";
@@ -366,7 +366,7 @@ function systemdAgentEgressDirectives(loopbackTcpPorts = []) {
366
366
  }
367
367
 
368
368
  // src/version.ts
369
- var VERSION = "0.1.154";
369
+ var VERSION = "0.1.155";
370
370
 
371
371
  // src/otel-collector.ts
372
372
  var FORGEZERO_OTEL_COLLECTOR_UNIT = "forgezero-otel-collector.service";
@@ -1460,7 +1460,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
1460
1460
  var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
1461
1461
 
1462
1462
  // src/version.ts
1463
- var VERSION = "0.1.154";
1463
+ var VERSION = "0.1.155";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";
@@ -3081,7 +3081,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3081
3081
  }
3082
3082
 
3083
3083
  // src/version.ts
3084
- var VERSION3 = "0.1.154";
3084
+ var VERSION3 = "0.1.155";
3085
3085
 
3086
3086
  // src/egress-policy.ts
3087
3087
  import { realpathSync as realpathSync3 } from "node:fs";
package/dist/provision.js CHANGED
@@ -3081,7 +3081,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3081
3081
  }
3082
3082
 
3083
3083
  // src/version.ts
3084
- var VERSION3 = "0.1.154";
3084
+ var VERSION3 = "0.1.155";
3085
3085
 
3086
3086
  // src/egress-policy.ts
3087
3087
  import { realpathSync as realpathSync3 } from "node:fs";
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** One package version shared by both public binaries. Pinned to package.json by tests. */
2
- export declare const VERSION = "0.1.154";
2
+ export declare const VERSION = "0.1.155";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgezero/agent",
3
- "version": "0.1.154",
3
+ "version": "0.1.155",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "check": "tsc --noEmit",