@kybernesis/create 0.24.0 → 0.24.2
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/upgrade.js +20 -1
- package/package.json +1 -1
package/dist/upgrade.js
CHANGED
|
@@ -785,6 +785,12 @@ function newestBuildForEve(name, eve) {
|
|
|
785
785
|
const candidates = [];
|
|
786
786
|
for (const version of ordered) {
|
|
787
787
|
const peer = targetEvePeer(name, version);
|
|
788
|
+
// A package whose newest build declares no eve peer at all (this CLI,
|
|
789
|
+
// @kybernesis/create) is not built per eve line: its newest is the answer.
|
|
790
|
+
// Without this, every agent that keeps kyb in its own package.json could
|
|
791
|
+
// never plan an upgrade (`kyb upgrade --check` reported it unresolved).
|
|
792
|
+
if (!peer && candidates.length === 0)
|
|
793
|
+
return version;
|
|
788
794
|
candidates.push({ version, ...(peer ? { peer } : {}) });
|
|
789
795
|
const hit = newestOnLine(candidates, eve);
|
|
790
796
|
if (hit)
|
|
@@ -989,6 +995,10 @@ export async function upgrade(options = {}) {
|
|
|
989
995
|
installedMajorMinor &&
|
|
990
996
|
targetMajorMinor &&
|
|
991
997
|
(installedMajorMinor[0] !== targetMajorMinor[0] || installedMajorMinor[1] !== targetMajorMinor[1]));
|
|
998
|
+
// eve already at the pin but saved as a range (an agent scaffolded before
|
|
999
|
+
// the pin was exact, or installed by hand): pin it in place. The version
|
|
1000
|
+
// does not move, so this is not a change to plan or approve.
|
|
1001
|
+
const loosePin = Boolean(eveTarget && eveInstalled === eveTarget && targets.some((target) => target.name === "eve" && target.currentRange !== eveTarget));
|
|
992
1002
|
const changed = [...new Set(targets
|
|
993
1003
|
.filter((target) => target.installedVersion !== target.targetVersion && !(target.name === "eve" && versionLt(target.targetVersion, target.installedVersion)))
|
|
994
1004
|
.map((target) => `${target.name}@${target.targetVersion}`))];
|
|
@@ -1009,6 +1019,15 @@ export async function upgrade(options = {}) {
|
|
|
1009
1019
|
}
|
|
1010
1020
|
repairLocalQueueTimeouts(cwd, deps);
|
|
1011
1021
|
if (changed.length === 0) {
|
|
1022
|
+
if (loosePin) {
|
|
1023
|
+
const pinned = commandResult("npm", ["install", "--save-exact", `eve@${eveTarget}`], cwd);
|
|
1024
|
+
if (pinned.status !== 0) {
|
|
1025
|
+
console.log(red(`\nCould not pin eve exactly to ${eveTarget}:\n${pinned.stderr.trim()}`));
|
|
1026
|
+
process.exitCode = 1;
|
|
1027
|
+
return;
|
|
1028
|
+
}
|
|
1029
|
+
console.log(` ${green("✓")} eve pinned exactly to ${eveTarget} ${dim("(was a range)")}`);
|
|
1030
|
+
}
|
|
1012
1031
|
console.log(`\n${green("Everything is at latest certified versions.")}\n`);
|
|
1013
1032
|
repairBuzzSetup(cwd, deps);
|
|
1014
1033
|
repairRemovedDefaultTools(cwd);
|
|
@@ -1043,7 +1062,7 @@ export async function upgrade(options = {}) {
|
|
|
1043
1062
|
}
|
|
1044
1063
|
// Outside a clean install, eve goes in with --save-exact for the same
|
|
1045
1064
|
// reason rewriteManifest pins it: npm would save a caret by default.
|
|
1046
|
-
const eveChange = changed.find((spec) => spec.startsWith("eve@"));
|
|
1065
|
+
const eveChange = changed.find((spec) => spec.startsWith("eve@")) ?? (loosePin ? `eve@${eveTarget}` : undefined);
|
|
1047
1066
|
const others = changed.filter((spec) => spec !== eveChange);
|
|
1048
1067
|
/**
|
|
1049
1068
|
* A third-party extension whose declared peer range trails the certified
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kybernesis/create",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"description": "The Kybernesis agent scaffolder and FDE toolkit: one command to a governed, remembering, multiplayer, self-testing eve agent \u2014 plus doctor and upgrade.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|