@wipcomputer/wip-ldm-os 0.4.17 → 0.4.18
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/SKILL.md +1 -1
- package/bin/ldm.js +44 -3
- package/package.json +1 -1
package/SKILL.md
CHANGED
package/bin/ldm.js
CHANGED
|
@@ -784,6 +784,50 @@ async function cmdInstallCatalog() {
|
|
|
784
784
|
const totalUpdates = npmUpdates.length;
|
|
785
785
|
|
|
786
786
|
if (DRY_RUN) {
|
|
787
|
+
// Summary block (#80)
|
|
788
|
+
const cliLatest = (() => {
|
|
789
|
+
try {
|
|
790
|
+
return execSync('npm view @wipcomputer/wip-ldm-os version 2>/dev/null', {
|
|
791
|
+
encoding: 'utf8', timeout: 10000,
|
|
792
|
+
}).trim();
|
|
793
|
+
} catch { return null; }
|
|
794
|
+
})();
|
|
795
|
+
|
|
796
|
+
const agentDirs = (() => {
|
|
797
|
+
try {
|
|
798
|
+
return readdirSync(join(LDM_ROOT, 'agents'), { withFileTypes: true })
|
|
799
|
+
.filter(d => d.isDirectory() && d.name !== '_trash').map(d => d.name);
|
|
800
|
+
} catch { return []; }
|
|
801
|
+
})();
|
|
802
|
+
|
|
803
|
+
const totalExtensions = Object.keys(reconciled).length;
|
|
804
|
+
const majorBumps = npmUpdates.filter(e => {
|
|
805
|
+
const curMajor = parseInt(e.currentVersion.split('.')[0], 10);
|
|
806
|
+
const latMajor = parseInt(e.latestVersion.split('.')[0], 10);
|
|
807
|
+
return latMajor > curMajor;
|
|
808
|
+
});
|
|
809
|
+
|
|
810
|
+
console.log('');
|
|
811
|
+
console.log(' Summary');
|
|
812
|
+
console.log(' ────────────────────────────────────');
|
|
813
|
+
if (cliLatest && cliLatest !== PKG_VERSION) {
|
|
814
|
+
console.log(` LDM OS CLI v${PKG_VERSION} -> v${cliLatest} (run: npm install -g @wipcomputer/wip-ldm-os@${cliLatest})`);
|
|
815
|
+
} else {
|
|
816
|
+
console.log(` LDM OS CLI v${PKG_VERSION} (latest)`);
|
|
817
|
+
}
|
|
818
|
+
if (npmUpdates.length > 0) {
|
|
819
|
+
console.log(` Extensions ${totalExtensions} installed, ${npmUpdates.length} update(s)`);
|
|
820
|
+
} else {
|
|
821
|
+
console.log(` Extensions ${totalExtensions} installed, all up to date`);
|
|
822
|
+
}
|
|
823
|
+
for (const m of majorBumps) {
|
|
824
|
+
console.log(` Major bump ${m.name} v${m.currentVersion} -> v${m.latestVersion}`);
|
|
825
|
+
}
|
|
826
|
+
if (agentDirs.length > 0) {
|
|
827
|
+
console.log(` Agents ${agentDirs.join(', ')} (no change)`);
|
|
828
|
+
}
|
|
829
|
+
console.log(` Data crystal.db, agent files, secrets (never touched)`);
|
|
830
|
+
|
|
787
831
|
if (npmUpdates.length > 0) {
|
|
788
832
|
// Table output
|
|
789
833
|
const nameW = Math.max(10, ...npmUpdates.map(e => e.name.length));
|
|
@@ -803,10 +847,7 @@ async function cmdInstallCatalog() {
|
|
|
803
847
|
console.log(` ${pad(e.name, nameW)} │ ${pad('v' + e.currentVersion, curW)} │ ${pad('v' + e.latestVersion, latW)} │ ${pad(e.catalogNpm, pkgW)}`);
|
|
804
848
|
}
|
|
805
849
|
console.log('');
|
|
806
|
-
console.log(' No data (crystal.db, agent files) would be touched.');
|
|
807
850
|
console.log(' Old versions would be moved to ~/.ldm/_trash/ (never deleted).');
|
|
808
|
-
} else {
|
|
809
|
-
console.log(' Everything is up to date. No changes needed.');
|
|
810
851
|
}
|
|
811
852
|
|
|
812
853
|
console.log('');
|