@botiverse/raft-computer 0.0.38 → 0.0.53
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/index.js +21 -48
- package/dist/lib/index.js +0 -12
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -31030,18 +31030,6 @@ function readComputerVersion(moduleUrl = import.meta.url) {
|
|
|
31030
31030
|
}
|
|
31031
31031
|
}
|
|
31032
31032
|
var COMPUTER_VERSION = readComputerVersion();
|
|
31033
|
-
function readComputerPackageName(moduleUrl = import.meta.url) {
|
|
31034
|
-
const baked = process.env.SLOCK_COMPUTER_PACKAGE_NAME;
|
|
31035
|
-
if (typeof baked === "string" && baked.length > 0) return baked;
|
|
31036
|
-
try {
|
|
31037
|
-
const require2 = createRequire(moduleUrl);
|
|
31038
|
-
const pkg = require2("../package.json");
|
|
31039
|
-
return typeof pkg.name === "string" && pkg.name.length > 0 ? pkg.name : "@botiverse/raft-computer";
|
|
31040
|
-
} catch {
|
|
31041
|
-
return "@botiverse/raft-computer";
|
|
31042
|
-
}
|
|
31043
|
-
}
|
|
31044
|
-
var COMPUTER_PACKAGE_NAME = readComputerPackageName();
|
|
31045
31033
|
|
|
31046
31034
|
// src/service.ts
|
|
31047
31035
|
import { mkdir as mkdir10, readFile as readFile9, writeFile as writeFile9, open, rename as rename3 } from "fs/promises";
|
|
@@ -32027,39 +32015,41 @@ async function runSeaUpgrade(opts) {
|
|
|
32027
32015
|
emit7("restarting", "restarting service on new version");
|
|
32028
32016
|
return { ok: true, swap };
|
|
32029
32017
|
}
|
|
32030
|
-
async function
|
|
32031
|
-
const url =
|
|
32018
|
+
async function fetchCdnLatestVersion(baseUrl, fetchFn = fetch) {
|
|
32019
|
+
const url = `${baseUrl.replace(/\/$/, "")}/manifest.json`;
|
|
32032
32020
|
const controller = new AbortController();
|
|
32033
32021
|
const timeoutId = setTimeout(() => controller.abort(), 1e4);
|
|
32034
32022
|
try {
|
|
32035
32023
|
const res = await fetchFn(url, { signal: controller.signal, headers: { accept: "application/json" } });
|
|
32036
32024
|
if (!res.ok) return null;
|
|
32037
32025
|
const data = await res.json();
|
|
32038
|
-
return data
|
|
32026
|
+
return typeof data.version === "string" && data.version.length > 0 ? data.version : null;
|
|
32039
32027
|
} catch {
|
|
32040
32028
|
return null;
|
|
32041
32029
|
} finally {
|
|
32042
32030
|
clearTimeout(timeoutId);
|
|
32043
32031
|
}
|
|
32044
32032
|
}
|
|
32045
|
-
async function resolveSeaTargetVersion(channel2,
|
|
32033
|
+
async function resolveSeaTargetVersion(channel2, baseUrl, fetchLatest = fetchCdnLatestVersion) {
|
|
32046
32034
|
if (channel2.startsWith("pinned:")) {
|
|
32047
32035
|
const v = channel2.slice("pinned:".length);
|
|
32048
32036
|
return SEMVER_RE.test(v) ? v : null;
|
|
32049
32037
|
}
|
|
32050
|
-
|
|
32051
|
-
|
|
32052
|
-
|
|
32038
|
+
if (channel2 === "latest") {
|
|
32039
|
+
return await fetchLatest(baseUrl);
|
|
32040
|
+
}
|
|
32041
|
+
return null;
|
|
32053
32042
|
}
|
|
32054
32043
|
async function resolveAndRunSeaUpgrade(opts) {
|
|
32055
32044
|
const d = opts.deps ?? {};
|
|
32045
|
+
const baseUrl = d.baseUrl ?? resolveUpgradeBaseUrl();
|
|
32056
32046
|
let targetVersion;
|
|
32057
32047
|
try {
|
|
32058
32048
|
if (d.resolveTargetVersion) {
|
|
32059
32049
|
targetVersion = await d.resolveTargetVersion();
|
|
32060
32050
|
} else {
|
|
32061
32051
|
const channel2 = await (d.readChannelFn ?? readChannel)(opts.slockHome);
|
|
32062
|
-
targetVersion = await resolveSeaTargetVersion(channel2, d.
|
|
32052
|
+
targetVersion = await resolveSeaTargetVersion(channel2, baseUrl, d.fetchLatestVersion);
|
|
32063
32053
|
}
|
|
32064
32054
|
} catch (e) {
|
|
32065
32055
|
return { ok: false, failedPhase: "resolve", reason: e instanceof Error ? e.message : String(e) };
|
|
@@ -32080,7 +32070,7 @@ async function resolveAndRunSeaUpgrade(opts) {
|
|
|
32080
32070
|
platform: opts.platform,
|
|
32081
32071
|
arch: opts.arch,
|
|
32082
32072
|
deps: {
|
|
32083
|
-
baseUrl
|
|
32073
|
+
baseUrl,
|
|
32084
32074
|
fetchFn: d.fetchFn,
|
|
32085
32075
|
onProgress: d.onProgress,
|
|
32086
32076
|
stageFn: d.stageFn,
|
|
@@ -32347,6 +32337,9 @@ async function resolveServiceIdentity() {
|
|
|
32347
32337
|
}
|
|
32348
32338
|
} catch {
|
|
32349
32339
|
}
|
|
32340
|
+
if (!version && COMPUTER_VERSION.length > 0) {
|
|
32341
|
+
version = COMPUTER_VERSION;
|
|
32342
|
+
}
|
|
32350
32343
|
return { installRoot, version };
|
|
32351
32344
|
}
|
|
32352
32345
|
async function writeServiceVersionEvidence(slockHome) {
|
|
@@ -33737,19 +33730,17 @@ async function runUpgradeCli(slockHome, opts, deps = {}) {
|
|
|
33737
33730
|
} else if (channel2.startsWith("pinned:")) {
|
|
33738
33731
|
targetVersion = channel2.slice("pinned:".length);
|
|
33739
33732
|
} else {
|
|
33740
|
-
const
|
|
33741
|
-
|
|
33742
|
-
|
|
33743
|
-
|
|
33744
|
-
|
|
33745
|
-
|
|
33746
|
-
);
|
|
33733
|
+
const baseUrl = (deps.resolveUpgradeBaseUrlFn ?? resolveUpgradeBaseUrl)();
|
|
33734
|
+
let resolved;
|
|
33735
|
+
try {
|
|
33736
|
+
resolved = await resolveSeaTargetVersion(channel2, baseUrl, deps.fetchLatestVersion);
|
|
33737
|
+
} catch {
|
|
33738
|
+
resolved = null;
|
|
33747
33739
|
}
|
|
33748
|
-
const resolved = tags[channel2];
|
|
33749
33740
|
if (typeof resolved !== "string" || resolved.length === 0) {
|
|
33750
33741
|
fail(
|
|
33751
33742
|
"UPGRADE_VERSION_RESOLVE_FAILED",
|
|
33752
|
-
`
|
|
33743
|
+
`Could not resolve channel "${channel2}" to a version from ${baseUrl}/manifest.json. Only \`latest\` and \`pinned:<semver>\` are served from the CDN \u2014 for any other channel pass --target-version <semver>, or check connectivity.`
|
|
33753
33744
|
);
|
|
33754
33745
|
}
|
|
33755
33746
|
targetVersion = resolved;
|
|
@@ -33847,24 +33838,6 @@ async function runUpgradeCli(slockHome, opts, deps = {}) {
|
|
|
33847
33838
|
`Upgrade failed at phase=${result.failedPhase ?? "stage"}: ${result.reason ?? "unknown"}.`
|
|
33848
33839
|
);
|
|
33849
33840
|
}
|
|
33850
|
-
async function defaultFetchDistTags() {
|
|
33851
|
-
const url = `https://registry.npmjs.org/${COMPUTER_PACKAGE_NAME}`;
|
|
33852
|
-
const controller = new AbortController();
|
|
33853
|
-
const timeoutId = setTimeout(() => controller.abort(), 1e4);
|
|
33854
|
-
try {
|
|
33855
|
-
const res = await fetch(url, {
|
|
33856
|
-
signal: controller.signal,
|
|
33857
|
-
headers: { accept: "application/json" }
|
|
33858
|
-
});
|
|
33859
|
-
if (!res.ok) return null;
|
|
33860
|
-
const data = await res.json();
|
|
33861
|
-
return data["dist-tags"] ?? null;
|
|
33862
|
-
} catch {
|
|
33863
|
-
return null;
|
|
33864
|
-
} finally {
|
|
33865
|
-
clearTimeout(timeoutId);
|
|
33866
|
-
}
|
|
33867
|
-
}
|
|
33868
33841
|
function defaultCurrentBinaryDir() {
|
|
33869
33842
|
const here = fileURLToPath3(import.meta.url);
|
|
33870
33843
|
return dirname12(dirname12(here));
|
package/dist/lib/index.js
CHANGED
|
@@ -488,18 +488,6 @@ function readComputerVersion(moduleUrl = import.meta.url) {
|
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
490
|
var COMPUTER_VERSION = readComputerVersion();
|
|
491
|
-
function readComputerPackageName(moduleUrl = import.meta.url) {
|
|
492
|
-
const baked = process.env.SLOCK_COMPUTER_PACKAGE_NAME;
|
|
493
|
-
if (typeof baked === "string" && baked.length > 0) return baked;
|
|
494
|
-
try {
|
|
495
|
-
const require2 = createRequire(moduleUrl);
|
|
496
|
-
const pkg = require2("../package.json");
|
|
497
|
-
return typeof pkg.name === "string" && pkg.name.length > 0 ? pkg.name : "@botiverse/raft-computer";
|
|
498
|
-
} catch {
|
|
499
|
-
return "@botiverse/raft-computer";
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
var COMPUTER_PACKAGE_NAME = readComputerPackageName();
|
|
503
491
|
|
|
504
492
|
// src/service.ts
|
|
505
493
|
import { mkdir as mkdir10, readFile as readFile9, writeFile as writeFile9, open, rename as rename3 } from "fs/promises";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/raft-computer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.53",
|
|
4
4
|
"description": "Canonical Raft Computer — standalone human/local-machine control-plane CLI (login + attach). Provides raft-computer plus the legacy slock-computer alias; distinct from the agent-facing @botiverse/raft CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"commander": "^12.1.0",
|
|
32
32
|
"proper-lockfile": "^4.1.2",
|
|
33
33
|
"undici": "^7.24.7",
|
|
34
|
-
"@botiverse/raft-daemon": "0.
|
|
34
|
+
"@botiverse/raft-daemon": "0.59.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "^25.5.0",
|