@forgezero/agent 0.1.145 → 0.1.147

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.
@@ -264,32 +264,49 @@ function switchAgentSocketRoute(route, backend) {
264
264
  }
265
265
  function probeAgentCandidate(expected, socketPath = DEFAULT_AGENT_CANDIDATE_READY_SOCKET, timeoutMs = 5000) {
266
266
  return new Promise((resolve2) => {
267
- const socket = connect(socketPath);
268
- let buffer = "";
269
267
  let settled = false;
268
+ let socket;
269
+ const deadline = Date.now() + timeoutMs;
270
270
  const finish = (value) => {
271
271
  if (settled)
272
272
  return;
273
273
  settled = true;
274
- clearTimeout(timer);
275
- socket.destroy();
274
+ socket?.destroy();
276
275
  resolve2(value);
277
276
  };
278
- const timer = setTimeout(() => finish(false), timeoutMs);
279
- socket.on("data", (chunk) => {
280
- buffer += chunk.toString("utf8");
281
- const newline = buffer.indexOf(`
282
- `);
283
- if (newline < 0)
284
- return;
285
- try {
286
- const value = JSON.parse(buffer.slice(0, newline));
287
- finish(value.version === expected.version && value.nodeKey === expected.nodeKey && value.bound === expected.bound && expected.vault.includes(value.vault));
288
- } catch {
289
- finish(false);
277
+ const attempt = () => {
278
+ if (settled || Date.now() >= deadline)
279
+ return finish(false);
280
+ if (!existsSync2(socketPath)) {
281
+ const remaining = deadline - Date.now();
282
+ return setTimeout(attempt, Math.min(100, remaining));
290
283
  }
291
- });
292
- socket.on("error", () => finish(false));
284
+ let buffer = "";
285
+ const candidate = connect(socketPath);
286
+ socket = candidate;
287
+ candidate.on("data", (chunk) => {
288
+ buffer += chunk.toString("utf8");
289
+ const newline = buffer.indexOf(`
290
+ `);
291
+ if (newline < 0)
292
+ return;
293
+ try {
294
+ const value = JSON.parse(buffer.slice(0, newline));
295
+ finish(value.version === expected.version && value.nodeKey === expected.nodeKey && value.bound === expected.bound && expected.vault.includes(value.vault));
296
+ } catch {
297
+ finish(false);
298
+ }
299
+ });
300
+ candidate.once("error", () => {
301
+ candidate.destroy();
302
+ const remaining = deadline - Date.now();
303
+ if (remaining <= 0)
304
+ finish(false);
305
+ else
306
+ setTimeout(attempt, Math.min(100, remaining));
307
+ });
308
+ };
309
+ attempt();
293
310
  });
294
311
  }
295
312
 
@@ -917,7 +934,7 @@ async function postSignedNode(options, path, body) {
917
934
  }
918
935
 
919
936
  // src/version.ts
920
- var VERSION3 = "0.1.145";
937
+ var VERSION3 = "0.1.147";
921
938
 
922
939
  // src/agent-heartbeat.ts
923
940
  function readAgentHostMetrics() {
@@ -264,32 +264,49 @@ function switchAgentSocketRoute(route, backend) {
264
264
  }
265
265
  function probeAgentCandidate(expected, socketPath = DEFAULT_AGENT_CANDIDATE_READY_SOCKET, timeoutMs = 5000) {
266
266
  return new Promise((resolve2) => {
267
- const socket = connect(socketPath);
268
- let buffer = "";
269
267
  let settled = false;
268
+ let socket;
269
+ const deadline = Date.now() + timeoutMs;
270
270
  const finish = (value) => {
271
271
  if (settled)
272
272
  return;
273
273
  settled = true;
274
- clearTimeout(timer);
275
- socket.destroy();
274
+ socket?.destroy();
276
275
  resolve2(value);
277
276
  };
278
- const timer = setTimeout(() => finish(false), timeoutMs);
279
- socket.on("data", (chunk) => {
280
- buffer += chunk.toString("utf8");
281
- const newline = buffer.indexOf(`
282
- `);
283
- if (newline < 0)
284
- return;
285
- try {
286
- const value = JSON.parse(buffer.slice(0, newline));
287
- finish(value.version === expected.version && value.nodeKey === expected.nodeKey && value.bound === expected.bound && expected.vault.includes(value.vault));
288
- } catch {
289
- finish(false);
277
+ const attempt = () => {
278
+ if (settled || Date.now() >= deadline)
279
+ return finish(false);
280
+ if (!existsSync2(socketPath)) {
281
+ const remaining = deadline - Date.now();
282
+ return setTimeout(attempt, Math.min(100, remaining));
290
283
  }
291
- });
292
- socket.on("error", () => finish(false));
284
+ let buffer = "";
285
+ const candidate = connect(socketPath);
286
+ socket = candidate;
287
+ candidate.on("data", (chunk) => {
288
+ buffer += chunk.toString("utf8");
289
+ const newline = buffer.indexOf(`
290
+ `);
291
+ if (newline < 0)
292
+ return;
293
+ try {
294
+ const value = JSON.parse(buffer.slice(0, newline));
295
+ finish(value.version === expected.version && value.nodeKey === expected.nodeKey && value.bound === expected.bound && expected.vault.includes(value.vault));
296
+ } catch {
297
+ finish(false);
298
+ }
299
+ });
300
+ candidate.once("error", () => {
301
+ candidate.destroy();
302
+ const remaining = deadline - Date.now();
303
+ if (remaining <= 0)
304
+ finish(false);
305
+ else
306
+ setTimeout(attempt, Math.min(100, remaining));
307
+ });
308
+ };
309
+ attempt();
293
310
  });
294
311
  }
295
312
 
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.145";
1463
+ var VERSION = "0.1.147";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";