usebeeline 0.0.105 → 0.0.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/usebeeline.mjs +119 -63
- package/package.json +1 -1
package/dist/usebeeline.mjs
CHANGED
|
@@ -3987,7 +3987,7 @@ __export(self_update_exports, {
|
|
|
3987
3987
|
import { createHash as createHash7 } from "node:crypto";
|
|
3988
3988
|
import { constants as fsConstants2 } from "node:fs";
|
|
3989
3989
|
import { access, chmod as chmod5, lstat as lstat3, mkdir as mkdir15, open, readFile as readFile10, rename as rename4, rm as rm6, symlink as symlink3, writeFile as writeFile10 } from "node:fs/promises";
|
|
3990
|
-
import { spawn as
|
|
3990
|
+
import { spawn as spawn6 } from "node:child_process";
|
|
3991
3991
|
import { homedir as homedir9 } from "node:os";
|
|
3992
3992
|
import { dirname as dirname11, join as join9, resolve as resolve22 } from "node:path";
|
|
3993
3993
|
function anchorLayout(rawLibDir) {
|
|
@@ -4137,7 +4137,7 @@ async function fetchText(url, fetchImpl) {
|
|
|
4137
4137
|
}
|
|
4138
4138
|
function run(command, args, timeoutMs) {
|
|
4139
4139
|
return new Promise((resolveRun) => {
|
|
4140
|
-
const child =
|
|
4140
|
+
const child = spawn6(command, args, { stdio: ["ignore", "ignore", "pipe"] });
|
|
4141
4141
|
let stderr = "";
|
|
4142
4142
|
child.stderr?.setEncoding("utf8");
|
|
4143
4143
|
child.stderr?.on("data", (chunk) => {
|
|
@@ -4210,7 +4210,7 @@ async function stageRelease(layout, manifestUrl, published, opts = {}) {
|
|
|
4210
4210
|
}
|
|
4211
4211
|
await writeFile10(tempArchive, Buffer.concat(chunks), { mode: 384 });
|
|
4212
4212
|
const entries = (await new Promise((resolveList, rejectList) => {
|
|
4213
|
-
const child =
|
|
4213
|
+
const child = spawn6("tar", ["-tzf", tempArchive], { stdio: ["ignore", "pipe", "inherit"] });
|
|
4214
4214
|
let out = "";
|
|
4215
4215
|
child.stdout?.on("data", (chunk) => {
|
|
4216
4216
|
out += chunk.toString("utf8");
|
|
@@ -8157,9 +8157,8 @@ async function syncAgentModelCatalog(input) {
|
|
|
8157
8157
|
}
|
|
8158
8158
|
|
|
8159
8159
|
// apps/body/dist/connector-squire.js
|
|
8160
|
-
import { execFile } from "node:child_process";
|
|
8161
|
-
var
|
|
8162
|
-
var SQUIRE_CONNECT_PACKAGE = "@trusty-squire/mcp";
|
|
8160
|
+
import { execFile, spawn as spawn2 } from "node:child_process";
|
|
8161
|
+
var SQUIRE_CONNECT_PACKAGE = "@trusty-squire/mcp@next";
|
|
8163
8162
|
var defaultShellRunner = (command, args) => new Promise((resolve31) => {
|
|
8164
8163
|
execFile(command, [...args], { timeout: 12e4, maxBuffer: 4 * 1024 * 1024, encoding: "utf8" }, (error, stdout6, stderr) => {
|
|
8165
8164
|
const code = error?.code;
|
|
@@ -8170,26 +8169,63 @@ var defaultShellRunner = (command, args) => new Promise((resolve31) => {
|
|
|
8170
8169
|
});
|
|
8171
8170
|
});
|
|
8172
8171
|
});
|
|
8172
|
+
var CONNECT_TIMEOUT_MS = 3e5;
|
|
8173
|
+
var defaultStreamedRunner = (command, args) => new Promise((resolve31) => {
|
|
8174
|
+
const child = spawn2(command, args, {
|
|
8175
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
8176
|
+
});
|
|
8177
|
+
let stdout6 = "";
|
|
8178
|
+
let stderr = "";
|
|
8179
|
+
let resolved = false;
|
|
8180
|
+
const safetyTimer = setTimeout(() => {
|
|
8181
|
+
if (!resolved) {
|
|
8182
|
+
resolved = true;
|
|
8183
|
+
resolve31({ stdout: stdout6, stderr, signIn: void 0, abort: () => {
|
|
8184
|
+
} });
|
|
8185
|
+
}
|
|
8186
|
+
child.kill();
|
|
8187
|
+
}, CONNECT_TIMEOUT_MS);
|
|
8188
|
+
const abort = () => {
|
|
8189
|
+
clearTimeout(safetyTimer);
|
|
8190
|
+
child.kill();
|
|
8191
|
+
};
|
|
8192
|
+
const finish = (result) => {
|
|
8193
|
+
if (!resolved) {
|
|
8194
|
+
resolved = true;
|
|
8195
|
+
clearTimeout(safetyTimer);
|
|
8196
|
+
resolve31(result);
|
|
8197
|
+
}
|
|
8198
|
+
};
|
|
8199
|
+
const checkOutput = () => {
|
|
8200
|
+
const combined = `${stdout6}
|
|
8201
|
+
${stderr}`;
|
|
8202
|
+
const signIn = parseConnectOutput(combined);
|
|
8203
|
+
if (signIn) {
|
|
8204
|
+
finish({ stdout: stdout6, stderr, signIn, abort });
|
|
8205
|
+
}
|
|
8206
|
+
};
|
|
8207
|
+
child.stdout?.on("data", (chunk) => {
|
|
8208
|
+
stdout6 += String(chunk);
|
|
8209
|
+
checkOutput();
|
|
8210
|
+
});
|
|
8211
|
+
child.stderr?.on("data", (chunk) => {
|
|
8212
|
+
stderr += String(chunk);
|
|
8213
|
+
checkOutput();
|
|
8214
|
+
});
|
|
8215
|
+
child.on("close", () => {
|
|
8216
|
+
finish({ stdout: stdout6, stderr, signIn: void 0, abort: () => {
|
|
8217
|
+
} });
|
|
8218
|
+
});
|
|
8219
|
+
child.on("error", () => {
|
|
8220
|
+
finish({ stdout: stdout6, stderr, signIn: void 0, abort: () => {
|
|
8221
|
+
} });
|
|
8222
|
+
});
|
|
8223
|
+
});
|
|
8173
8224
|
var step = (label, status, reason) => ({
|
|
8174
8225
|
label,
|
|
8175
8226
|
status,
|
|
8176
8227
|
...reason ? { reason } : {}
|
|
8177
8228
|
});
|
|
8178
|
-
function binaryExists(binary) {
|
|
8179
|
-
return new Promise((resolve31) => {
|
|
8180
|
-
execFile("sh", ["-c", `command -v ${JSON.stringify(binary)}`], (error, stdout6) => {
|
|
8181
|
-
const path = String(stdout6 ?? "").trim();
|
|
8182
|
-
resolve31({ binary, found: !error && path.length > 0, ...path ? { path } : {} });
|
|
8183
|
-
});
|
|
8184
|
-
});
|
|
8185
|
-
}
|
|
8186
|
-
async function checkRemoteLoginPrerequisites(probe = binaryExists) {
|
|
8187
|
-
return Promise.all(REMOTE_LOGIN_BINARIES.map(probe));
|
|
8188
|
-
}
|
|
8189
|
-
function missingPrerequisiteStep(checks) {
|
|
8190
|
-
const missing = checks.filter((check) => !check.found).map((check) => check.binary);
|
|
8191
|
-
return step("remote sign-in prerequisites", "failed", `missing on this helper: ${missing.join(", ")}`);
|
|
8192
|
-
}
|
|
8193
8229
|
function parseConnectOutput(output) {
|
|
8194
8230
|
const url = output.match(/https:\/\/[^\s"'<>]+/)?.[0];
|
|
8195
8231
|
if (!url)
|
|
@@ -8212,6 +8248,7 @@ function parseSignedInAs(output) {
|
|
|
8212
8248
|
}
|
|
8213
8249
|
async function installSquire(options) {
|
|
8214
8250
|
const run2 = options.run ?? defaultShellRunner;
|
|
8251
|
+
const streamRun = options.streamRun ?? defaultStreamedRunner;
|
|
8215
8252
|
const steps = [step("helper reached", "done")];
|
|
8216
8253
|
const emit = () => options.onProgress?.([...steps]);
|
|
8217
8254
|
const push = (next) => {
|
|
@@ -8224,34 +8261,25 @@ async function installSquire(options) {
|
|
|
8224
8261
|
return { status: "error", steps, errorMessage: reason };
|
|
8225
8262
|
};
|
|
8226
8263
|
emit();
|
|
8227
|
-
const
|
|
8228
|
-
if (checks.some((check) => !check.found)) {
|
|
8229
|
-
push(missingPrerequisiteStep(checks));
|
|
8230
|
-
return fail("this helper cannot host the remote sign-in surface");
|
|
8231
|
-
}
|
|
8232
|
-
push(step("remote sign-in prerequisites", "done"));
|
|
8233
|
-
const install = await run2("npx", [
|
|
8264
|
+
const install = await streamRun("npx", [
|
|
8234
8265
|
"-y",
|
|
8235
8266
|
SQUIRE_CONNECT_PACKAGE,
|
|
8236
8267
|
"connect",
|
|
8237
|
-
"--
|
|
8268
|
+
"--force-relogin=google",
|
|
8269
|
+
"--target=codex",
|
|
8238
8270
|
"--skip-browser"
|
|
8239
8271
|
]);
|
|
8240
|
-
if (install.
|
|
8241
|
-
|
|
8242
|
-
|
|
8272
|
+
if (!install.signIn) {
|
|
8273
|
+
const stderr = install.stderr.trim();
|
|
8274
|
+
push(step("trusty-squire installed", "failed", stderr || "connect printed no sign-in URL"));
|
|
8275
|
+
return fail(stderr || "the trusty-squire connect command printed no sign-in surface");
|
|
8243
8276
|
}
|
|
8244
8277
|
const version = await installedSquireVersion(run2);
|
|
8245
8278
|
push(step(`trusty-squire${version ? ` ${version}` : ""} installed`, "done"));
|
|
8246
|
-
const
|
|
8247
|
-
|
|
8248
|
-
|
|
8249
|
-
if (!signIn) {
|
|
8250
|
-
push(step("waiting for sign-in", "failed", "connect printed no sign-in URL"));
|
|
8251
|
-
return fail("the trusty-squire connect command printed no sign-in surface");
|
|
8252
|
-
}
|
|
8279
|
+
const signIn = install.signIn;
|
|
8280
|
+
const signedInAs = parseSignedInAs(`${install.stdout}
|
|
8281
|
+
${install.stderr}`);
|
|
8253
8282
|
push(step("waiting for sign-in", "done"));
|
|
8254
|
-
const signedInAs = parseSignedInAs(output);
|
|
8255
8283
|
const pair = await pairSquire(options.mcp, options.workspaceId);
|
|
8256
8284
|
if (!pair.ok) {
|
|
8257
8285
|
push(step("paired to workspace", "failed", pair.reason));
|
|
@@ -8346,7 +8374,7 @@ async function revokeGrants(mcp, ref) {
|
|
|
8346
8374
|
}
|
|
8347
8375
|
|
|
8348
8376
|
// apps/body/dist/squire-mcp-client.js
|
|
8349
|
-
import { spawn as
|
|
8377
|
+
import { spawn as spawn3 } from "node:child_process";
|
|
8350
8378
|
var INITIALIZE_TIMEOUT_MS = 3e4;
|
|
8351
8379
|
var CALL_TIMEOUT_MS = 12e4;
|
|
8352
8380
|
var StdioSquireMcpClient = class {
|
|
@@ -8402,8 +8430,10 @@ var StdioSquireMcpClient = class {
|
|
|
8402
8430
|
return this.initialized;
|
|
8403
8431
|
}
|
|
8404
8432
|
initialize() {
|
|
8405
|
-
const child = (this.options.spawn ??
|
|
8406
|
-
|
|
8433
|
+
const child = (this.options.spawn ?? spawn3)(this.options.command ?? "npx", [
|
|
8434
|
+
// `@next` RC: only the RC coordinates with a running Trusty Squire broker
|
|
8435
|
+
// for concurrent sessions; stable `latest` cannot share its browser.
|
|
8436
|
+
...this.options.args ?? ["-y", "@trusty-squire/mcp@next"]
|
|
8407
8437
|
]);
|
|
8408
8438
|
this.child = child;
|
|
8409
8439
|
this.buffer = "";
|
|
@@ -8692,7 +8722,7 @@ import { closeSync, openSync } from "node:fs";
|
|
|
8692
8722
|
import { mkdir, readFile as readFile2, readdir, rename, stat, writeFile as writeFile2 } from "node:fs/promises";
|
|
8693
8723
|
import { homedir as homedir2 } from "node:os";
|
|
8694
8724
|
import { dirname as dirname2, resolve as resolve6 } from "node:path";
|
|
8695
|
-
import { spawn as
|
|
8725
|
+
import { spawn as spawn4 } from "node:child_process";
|
|
8696
8726
|
import { promisify } from "node:util";
|
|
8697
8727
|
|
|
8698
8728
|
// node_modules/@noble/hashes/_u64.js
|
|
@@ -17413,7 +17443,7 @@ async function launchRuntimeDaemon(configPath, opts = {}) {
|
|
|
17413
17443
|
const entrypoint = opts.entrypoint ?? process.argv[1];
|
|
17414
17444
|
if (!entrypoint)
|
|
17415
17445
|
throw new Error("cannot resolve daemon CLI entrypoint");
|
|
17416
|
-
const child =
|
|
17446
|
+
const child = spawn4(process.execPath, [...opts.execArgv ?? [], entrypoint, "daemon", "--config", resolve6(configPath)], {
|
|
17417
17447
|
cwd: directory,
|
|
17418
17448
|
env: opts.env ?? process.env,
|
|
17419
17449
|
detached: !foreground,
|
|
@@ -18351,9 +18381,9 @@ var GrantCommandRunner = class {
|
|
|
18351
18381
|
...Object.fromEntries(secrets)
|
|
18352
18382
|
};
|
|
18353
18383
|
const cap = this.options.outputCapBytes ?? GRANT_COMMAND_OUTPUT_CAP_BYTES;
|
|
18354
|
-
const
|
|
18384
|
+
const spawn10 = surfaceAllows(policy.surface, "run-host-command") ? { command: argv[0], args: argv.slice(1) } : roomSandboxCommand(policy, room.cwd, argv);
|
|
18355
18385
|
const outcome = await new Promise((resolveRun) => {
|
|
18356
|
-
const child = execFile3(
|
|
18386
|
+
const child = execFile3(spawn10.command, spawn10.args, {
|
|
18357
18387
|
cwd: room.cwd,
|
|
18358
18388
|
env,
|
|
18359
18389
|
timeout: this.options.timeoutMs ?? GRANT_COMMAND_TIMEOUT_MS,
|
|
@@ -18988,7 +19018,7 @@ Then take exactly one action:
|
|
|
18988
19018
|
}
|
|
18989
19019
|
|
|
18990
19020
|
// apps/body/dist/external-mcp-capabilities.js
|
|
18991
|
-
var SQUIRE_MCP_VERSION = "
|
|
19021
|
+
var SQUIRE_MCP_VERSION = "next";
|
|
18992
19022
|
var SQUIRE_MCP_PACKAGE = `@trusty-squire/mcp@${SQUIRE_MCP_VERSION}`;
|
|
18993
19023
|
function isTrustySquireMcpLaunch(command, args = []) {
|
|
18994
19024
|
return [command, ...args].some((value) => {
|
|
@@ -25210,9 +25240,10 @@ async function runStartCommand(args, interactiveUi) {
|
|
|
25210
25240
|
}
|
|
25211
25241
|
|
|
25212
25242
|
// apps/body/dist/connect-command.js
|
|
25213
|
-
import { spawn as
|
|
25214
|
-
import { createHash as createHash8 } from "node:crypto";
|
|
25243
|
+
import { spawn as spawn7 } from "node:child_process";
|
|
25244
|
+
import { createHash as createHash8, randomUUID as randomUUID5 } from "node:crypto";
|
|
25215
25245
|
import { chmod as chmod6, mkdir as mkdir16, readFile as readFile11, unlink as unlink2, writeFile as writeFile11 } from "node:fs/promises";
|
|
25246
|
+
import { homedir as homedir10, hostname } from "node:os";
|
|
25216
25247
|
import { dirname as dirname12, resolve as resolve23 } from "node:path";
|
|
25217
25248
|
import { stdin as stdin3, stdout as stdout4 } from "node:process";
|
|
25218
25249
|
|
|
@@ -25297,7 +25328,7 @@ async function verifyProviderKey(input) {
|
|
|
25297
25328
|
}
|
|
25298
25329
|
|
|
25299
25330
|
// apps/body/dist/pair-agent-selection.js
|
|
25300
|
-
import { spawn as
|
|
25331
|
+
import { spawn as spawn5 } from "node:child_process";
|
|
25301
25332
|
import { stdin as stdin2, stdout as stdout3 } from "node:process";
|
|
25302
25333
|
var NO_AGENT_MESSAGE = `No supported ACP-capable coding agent was detected.
|
|
25303
25334
|
Install one of these supported agents:
|
|
@@ -25325,7 +25356,7 @@ async function clackSelectAgent(candidates) {
|
|
|
25325
25356
|
}
|
|
25326
25357
|
async function installAdapter(install, opts) {
|
|
25327
25358
|
await new Promise((resolveInstall, rejectInstall) => {
|
|
25328
|
-
const child =
|
|
25359
|
+
const child = spawn5(install.command, install.args, {
|
|
25329
25360
|
cwd: opts.cwd,
|
|
25330
25361
|
env: opts.env ?? process.env,
|
|
25331
25362
|
stdio: "inherit"
|
|
@@ -25826,7 +25857,29 @@ function parseConnectSubscriptions(value) {
|
|
|
25826
25857
|
...new Set((value ?? "").split(",").map((entry) => entry.trim().toLowerCase()).filter(Boolean))
|
|
25827
25858
|
];
|
|
25828
25859
|
}
|
|
25829
|
-
function
|
|
25860
|
+
async function readMachineId(env = process.env) {
|
|
25861
|
+
const configDir = resolve23(env.XDG_CONFIG_HOME ?? resolve23(homedir10(), ".config"), "beeline");
|
|
25862
|
+
const machineIdPath = resolve23(configDir, "machine-id");
|
|
25863
|
+
let machineId;
|
|
25864
|
+
let machineName = hostname();
|
|
25865
|
+
try {
|
|
25866
|
+
const existing = await readFile11(machineIdPath, "utf8");
|
|
25867
|
+
machineId = existing.trim();
|
|
25868
|
+
if (!/^[0-9a-f-]{32,}$/.test(machineId))
|
|
25869
|
+
throw new Error("invalid persisted machine id");
|
|
25870
|
+
} catch {
|
|
25871
|
+
machineId = randomUUID5();
|
|
25872
|
+
try {
|
|
25873
|
+
await mkdir16(configDir, { recursive: true, mode: 448 });
|
|
25874
|
+
await writeFile11(machineIdPath, `${machineId}
|
|
25875
|
+
`, { mode: 384 });
|
|
25876
|
+
} catch {
|
|
25877
|
+
machineId = createHash8("sha256").update(machineName).digest("hex").slice(0, 36);
|
|
25878
|
+
}
|
|
25879
|
+
}
|
|
25880
|
+
return { machineId, machineName };
|
|
25881
|
+
}
|
|
25882
|
+
function requestConnectGrant(baseUrl, pairingCode, selection, fetchImpl, machineInfo) {
|
|
25830
25883
|
const normalizedPairingCode = normalizeAgentPairingCode(pairingCode);
|
|
25831
25884
|
if (!normalizedPairingCode)
|
|
25832
25885
|
throw new Error("invalid pairing code");
|
|
@@ -25841,7 +25894,8 @@ function requestConnectGrant(baseUrl, pairingCode, selection, fetchImpl) {
|
|
|
25841
25894
|
// This wizard always finishes the join itself (`finishConnectedAgentPairing`,
|
|
25842
25895
|
// called once the rename prompt below settles), so the claim must not
|
|
25843
25896
|
// join Rooms or announce yet.
|
|
25844
|
-
defer_join: true
|
|
25897
|
+
defer_join: true,
|
|
25898
|
+
...machineInfo ? { machine_id: machineInfo.machineId, machine_name: machineInfo.machineName } : {}
|
|
25845
25899
|
}, fetchImpl);
|
|
25846
25900
|
}
|
|
25847
25901
|
async function renameConnectedAgent(baseUrl, pairingCode, name, fetchImpl) {
|
|
@@ -25920,7 +25974,7 @@ async function writeProviderEnv(selection, agentPubkey) {
|
|
|
25920
25974
|
}
|
|
25921
25975
|
async function runInstalledFinish(binary, grantPath) {
|
|
25922
25976
|
await new Promise((resolveRun, rejectRun) => {
|
|
25923
|
-
const child =
|
|
25977
|
+
const child = spawn7(binary, ["connect-finish", grantPath], {
|
|
25924
25978
|
stdio: ["ignore", "pipe", "pipe"]
|
|
25925
25979
|
});
|
|
25926
25980
|
let diagnostic = "";
|
|
@@ -25971,7 +26025,8 @@ async function runConnectWizard(code, fetchImpl, eventSubscriptions, accessPolic
|
|
|
25971
26025
|
});
|
|
25972
26026
|
const selection = await collectConnectWizard(clackPrompts, loadConnectModelCatalog, fileConnectKeyStore, process.env, (input) => verifyProviderKey({ ...input, fetchImpl }));
|
|
25973
26027
|
const baseUrl = (process.env.BEELINE_AUTH_URL ?? "https://server.usebeeline.app").replace(/\/$/, "");
|
|
25974
|
-
const
|
|
26028
|
+
const machineInfo = await readMachineId(process.env);
|
|
26029
|
+
const claimed = await brassSpinner("Connecting to your Beeline Workspace\u2026", () => requestConnectGrant(baseUrl, pairingCode, selection, fetchImpl, machineInfo), (connectedGrant) => `Connected to ${connectedGrant.workspace_name}`);
|
|
25975
26030
|
const grant = { ...claimed, agent_name: await confirmSeededName(baseUrl, pairingCode, claimed, fetchImpl) };
|
|
25976
26031
|
await finishConnectedAgentPairing(baseUrl, pairingCode, grant.workspace_joined, eventSubscriptions, fetchImpl);
|
|
25977
26032
|
const installedRelease = await brassSpinner("Installing the Beeline daemon\u2026", () => installCurrentRelease(fetchImpl), (release) => `Installed Beeline helper ${release.version}`);
|
|
@@ -26093,7 +26148,7 @@ init_self_update_manifest();
|
|
|
26093
26148
|
|
|
26094
26149
|
// apps/body/dist/managed-update.js
|
|
26095
26150
|
init_self_update();
|
|
26096
|
-
import { spawn as
|
|
26151
|
+
import { spawn as spawn8 } from "node:child_process";
|
|
26097
26152
|
import { mkdir as mkdir18, rm as rm7, stat as stat3, writeFile as writeFile13 } from "node:fs/promises";
|
|
26098
26153
|
import { dirname as dirname14, resolve as resolve25 } from "node:path";
|
|
26099
26154
|
|
|
@@ -26507,7 +26562,7 @@ async function runManagedUpdateWorkerProcess() {
|
|
|
26507
26562
|
if (!entrypoint)
|
|
26508
26563
|
throw new Error("cannot resolve the current Beeline entrypoint");
|
|
26509
26564
|
await new Promise((resolveWorker, rejectWorker) => {
|
|
26510
|
-
const child =
|
|
26565
|
+
const child = spawn8(process.execPath, [entrypoint, "managed-update-worker"], {
|
|
26511
26566
|
detached: true,
|
|
26512
26567
|
env: { ...process.env, BEELINE_INTERNAL_UPDATE_WORKER: "1" },
|
|
26513
26568
|
stdio: ["ignore", "pipe", "pipe"]
|
|
@@ -26861,7 +26916,7 @@ async function clearDaemonStartFailures(runtimeDir) {
|
|
|
26861
26916
|
|
|
26862
26917
|
// apps/body/dist/update-functional-probe.js
|
|
26863
26918
|
import { mkdir as mkdir20, rm as rm9 } from "node:fs/promises";
|
|
26864
|
-
import { homedir as
|
|
26919
|
+
import { homedir as homedir11 } from "node:os";
|
|
26865
26920
|
import { resolve as resolve27 } from "node:path";
|
|
26866
26921
|
var UPDATE_PROBE_SESSION_TIMEOUT_MS = 1e4;
|
|
26867
26922
|
var UPDATE_PROBE_SESSION_OPEN_TIMEOUT_MS = 2e4;
|
|
@@ -26967,7 +27022,7 @@ async function runUpdateFunctionalProbe(input) {
|
|
|
26967
27022
|
...input.config.agentEnv,
|
|
26968
27023
|
...await prepareRoomAgentHome({
|
|
26969
27024
|
root: homeRoot,
|
|
26970
|
-
operatorHome: input.config.operatorHome ??
|
|
27025
|
+
operatorHome: input.config.operatorHome ?? homedir11(),
|
|
26971
27026
|
sharedSkills: input.config.sharedSkills ?? [],
|
|
26972
27027
|
...input.config.agentKind ? { agentKind: input.config.agentKind } : {},
|
|
26973
27028
|
skillReleaseId: input.releaseId,
|
|
@@ -26988,7 +27043,7 @@ async function runUpdateFunctionalProbe(input) {
|
|
|
26988
27043
|
let turnCompleted = true;
|
|
26989
27044
|
if (input.config.bwrapPath) {
|
|
26990
27045
|
const { stateDirs, tmpDir } = harnessStateDirsFromEnv(agentEnv);
|
|
26991
|
-
const operatorHome = input.config.operatorHome ??
|
|
27046
|
+
const operatorHome = input.config.operatorHome ?? homedir11();
|
|
26992
27047
|
const homeStateDirs = harnessHomeStateDirs(command, agentEnv.HOME ?? operatorHome);
|
|
26993
27048
|
await Promise.all(homeStateDirs.map((dir) => mkdir20(dir, { recursive: true })));
|
|
26994
27049
|
spawnCommand = wrapAgentCommand({
|
|
@@ -27139,7 +27194,7 @@ async function runUpdateFunctionalProbe(input) {
|
|
|
27139
27194
|
}
|
|
27140
27195
|
|
|
27141
27196
|
// apps/body/dist/current-release-probe.js
|
|
27142
|
-
import { spawn as
|
|
27197
|
+
import { spawn as spawn9 } from "node:child_process";
|
|
27143
27198
|
import { dirname as dirname16, join as join10 } from "node:path";
|
|
27144
27199
|
init_self_update();
|
|
27145
27200
|
var CURRENT_RELEASE_PROBE_TIMEOUT_MS = 12e4;
|
|
@@ -27190,7 +27245,7 @@ async function probeReleaseInSubprocess(input) {
|
|
|
27190
27245
|
}
|
|
27191
27246
|
const timeoutMs = input.timeoutMs ?? CURRENT_RELEASE_PROBE_TIMEOUT_MS;
|
|
27192
27247
|
return new Promise((resolve31) => {
|
|
27193
|
-
const child =
|
|
27248
|
+
const child = spawn9(input.execPath ?? process.execPath, [entrypoint, UPDATE_PROBE_COMMAND, "--config", input.runtimeConfigPath], { env: input.env ?? process.env, stdio: ["ignore", "pipe", "pipe"] });
|
|
27194
27249
|
let stdout6 = "";
|
|
27195
27250
|
let stderr = "";
|
|
27196
27251
|
let settled = false;
|
|
@@ -27608,6 +27663,7 @@ async function runStoredDaemon(pathOrPointer) {
|
|
|
27608
27663
|
...runtime.modelSelection ? { runtimeSelection: runtime.modelSelection } : {},
|
|
27609
27664
|
...config.modelUnavailable ? { startupUnavailable: config.modelUnavailable.unavailable.label } : {}
|
|
27610
27665
|
});
|
|
27666
|
+
void readMachineId(process.env).then(({ machineId, machineName }) => daemonApi.execute("postAgentMachineReport", { machineId, machineName }));
|
|
27611
27667
|
connectorLoop ??= new ConnectorAssignmentLoop({
|
|
27612
27668
|
api: daemonApi,
|
|
27613
27669
|
agentId: runtime.agent.publicKey,
|