baro-ai 0.57.1 → 0.58.0
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/runner.mjs +65 -1
- package/dist/runner.mjs.map +1 -1
- package/package.json +1 -1
package/dist/runner.mjs
CHANGED
|
@@ -3734,6 +3734,51 @@ var url = process.env.CONTROL_URL ?? "wss://api.baro.jigjoy.ai";
|
|
|
3734
3734
|
var token = process.env.RUNNER_TOKEN;
|
|
3735
3735
|
var httpBase = url.replace(/^ws/, "http").replace(/\/+$/, "");
|
|
3736
3736
|
var credsPath = join(homedir(), ".baro", "credentials.json");
|
|
3737
|
+
var VERSION = "0.58.0";
|
|
3738
|
+
var updateCachePath = join(homedir(), ".baro", "update-check.json");
|
|
3739
|
+
function semverLt(a, b) {
|
|
3740
|
+
const pa = a.split(".").map(Number);
|
|
3741
|
+
const pb = b.split(".").map(Number);
|
|
3742
|
+
for (let i = 0; i < 3; i++) {
|
|
3743
|
+
const x = pa[i] ?? 0;
|
|
3744
|
+
const y = pb[i] ?? 0;
|
|
3745
|
+
if (x !== y) return x < y;
|
|
3746
|
+
}
|
|
3747
|
+
return false;
|
|
3748
|
+
}
|
|
3749
|
+
async function getLatest(force = false) {
|
|
3750
|
+
if (!force) {
|
|
3751
|
+
try {
|
|
3752
|
+
const c = JSON.parse(readFileSync(updateCachePath, "utf8"));
|
|
3753
|
+
if (c.latest && c.checkedAt && Date.now() - c.checkedAt < 24 * 36e5) return c.latest;
|
|
3754
|
+
} catch {
|
|
3755
|
+
}
|
|
3756
|
+
}
|
|
3757
|
+
try {
|
|
3758
|
+
const ctrl = new AbortController();
|
|
3759
|
+
const t = setTimeout(() => ctrl.abort(), 4e3);
|
|
3760
|
+
const r = await fetch("https://registry.npmjs.org/baro-ai/latest", { signal: ctrl.signal });
|
|
3761
|
+
clearTimeout(t);
|
|
3762
|
+
const latest = (await r.json()).version;
|
|
3763
|
+
if (!latest) return null;
|
|
3764
|
+
try {
|
|
3765
|
+
mkdirSync(join(homedir(), ".baro"), { recursive: true });
|
|
3766
|
+
writeFileSync(updateCachePath, JSON.stringify({ latest, checkedAt: Date.now() }));
|
|
3767
|
+
} catch {
|
|
3768
|
+
}
|
|
3769
|
+
return latest;
|
|
3770
|
+
} catch {
|
|
3771
|
+
return null;
|
|
3772
|
+
}
|
|
3773
|
+
}
|
|
3774
|
+
async function selfUpdate(latest) {
|
|
3775
|
+
return await new Promise((resolve) => {
|
|
3776
|
+
console.log(`[baro] updating ${VERSION} \u2192 ${latest}\u2026`);
|
|
3777
|
+
const child = spawn("npm", ["install", "-g", `baro-ai@${latest}`], { stdio: "inherit", shell: process.platform === "win32" });
|
|
3778
|
+
child.on("exit", (code) => resolve(code === 0));
|
|
3779
|
+
child.on("error", () => resolve(false));
|
|
3780
|
+
});
|
|
3781
|
+
}
|
|
3737
3782
|
var readCliToken = () => {
|
|
3738
3783
|
try {
|
|
3739
3784
|
return JSON.parse(readFileSync(credsPath, "utf8")).token;
|
|
@@ -3898,7 +3943,7 @@ function connectOnce() {
|
|
|
3898
3943
|
const ws = new import_websocket.default(url);
|
|
3899
3944
|
currentWs = ws;
|
|
3900
3945
|
ws.on("open", () => {
|
|
3901
|
-
ws.send(encode({ t: "register", runnerId, hostname: hostname(), token, backends: ["claude"], workspaceIds: ["default"], version:
|
|
3946
|
+
ws.send(encode({ t: "register", runnerId, hostname: hostname(), token, backends: ["claude"], workspaceIds: ["default"], version: VERSION }));
|
|
3902
3947
|
console.log(inflight.size ? `[baro] reconnected to ${url} \u2014 resuming ${inflight.size} in-flight run(s)` : `[baro] connected to ${url} \u2014 workspace ${workspaceDir}`);
|
|
3903
3948
|
});
|
|
3904
3949
|
ws.on("message", (data) => {
|
|
@@ -3922,6 +3967,25 @@ async function main() {
|
|
|
3922
3967
|
await login();
|
|
3923
3968
|
return;
|
|
3924
3969
|
}
|
|
3970
|
+
if (process.env.BARO_CHECK_UPDATE === "1") {
|
|
3971
|
+
await getLatest(true);
|
|
3972
|
+
return;
|
|
3973
|
+
}
|
|
3974
|
+
try {
|
|
3975
|
+
const latest = await getLatest();
|
|
3976
|
+
if (latest && semverLt(VERSION, latest)) {
|
|
3977
|
+
if (process.env.BARO_SERVICE === "1") {
|
|
3978
|
+
if (await selfUpdate(latest)) {
|
|
3979
|
+
console.log(`[baro] updated to ${latest} \u2014 restarting service\u2026`);
|
|
3980
|
+
process.exit(0);
|
|
3981
|
+
}
|
|
3982
|
+
console.warn(`[baro] could not self-update (likely a root-owned global install). Update manually: npm i -g baro-ai@latest`);
|
|
3983
|
+
} else {
|
|
3984
|
+
console.warn(`[baro] a newer baro is available (${VERSION} \u2192 ${latest}). Update: npm i -g baro-ai`);
|
|
3985
|
+
}
|
|
3986
|
+
}
|
|
3987
|
+
} catch {
|
|
3988
|
+
}
|
|
3925
3989
|
if (!token) {
|
|
3926
3990
|
const cli = readCliToken();
|
|
3927
3991
|
if (cli) {
|