@wipcomputer/wip-ldm-os 0.4.33 → 0.4.34
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 +28 -3
- package/catalog.json +17 -0
- package/package.json +1 -1
package/SKILL.md
CHANGED
package/bin/ldm.js
CHANGED
|
@@ -778,10 +778,35 @@ async function cmdInstallCatalog() {
|
|
|
778
778
|
cleaned++;
|
|
779
779
|
continue;
|
|
780
780
|
}
|
|
781
|
-
//
|
|
781
|
+
// Rename ldm-install- prefixed entries to clean names (#141)
|
|
782
782
|
if (name.startsWith('ldm-install-')) {
|
|
783
783
|
const cleanName = name.replace(/^ldm-install-/, '');
|
|
784
|
+
// Transfer registry entry to clean name
|
|
785
|
+
if (!registry.extensions[cleanName]) {
|
|
786
|
+
registry.extensions[cleanName] = { ...registry.extensions[name] };
|
|
787
|
+
}
|
|
784
788
|
delete registry.extensions[name];
|
|
789
|
+
// Rename the actual directory if it exists
|
|
790
|
+
if (!DRY_RUN) {
|
|
791
|
+
const ghostDir = join(LDM_EXTENSIONS, name);
|
|
792
|
+
const cleanDir = join(LDM_EXTENSIONS, cleanName);
|
|
793
|
+
if (existsSync(ghostDir) && !existsSync(cleanDir)) {
|
|
794
|
+
try {
|
|
795
|
+
execSync(`mv "${ghostDir}" "${cleanDir}"`, { stdio: 'pipe' });
|
|
796
|
+
} catch {}
|
|
797
|
+
} else if (existsSync(ghostDir) && existsSync(cleanDir)) {
|
|
798
|
+
// Clean version exists, remove ghost
|
|
799
|
+
try { execSync(`rm -rf "${ghostDir}"`, { stdio: 'pipe' }); } catch {}
|
|
800
|
+
}
|
|
801
|
+
// Same for OC extensions
|
|
802
|
+
const ocGhost = join(HOME, '.openclaw', 'extensions', name);
|
|
803
|
+
const ocClean = join(HOME, '.openclaw', 'extensions', cleanName);
|
|
804
|
+
if (existsSync(ocGhost) && !existsSync(ocClean)) {
|
|
805
|
+
try { execSync(`mv "${ocGhost}" "${ocClean}"`, { stdio: 'pipe' }); } catch {}
|
|
806
|
+
} else if (existsSync(ocGhost) && existsSync(ocClean)) {
|
|
807
|
+
try { execSync(`rm -rf "${ocGhost}"`, { stdio: 'pipe' }); } catch {}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
785
810
|
cleaned++;
|
|
786
811
|
}
|
|
787
812
|
}
|
|
@@ -820,7 +845,7 @@ async function cmdInstallCatalog() {
|
|
|
820
845
|
const extPkgPath = join(LDM_EXTENSIONS, name, 'package.json');
|
|
821
846
|
const extPkg = readJSON(extPkgPath);
|
|
822
847
|
const npmPkg = extPkg?.name;
|
|
823
|
-
if (!npmPkg
|
|
848
|
+
if (!npmPkg) continue; // no package name, skip
|
|
824
849
|
|
|
825
850
|
// Find catalog entry for the repo URL (used for clone if update needed)
|
|
826
851
|
const catalogEntry = components.find(c => {
|
|
@@ -1493,7 +1518,7 @@ function cmdStatus() {
|
|
|
1493
1518
|
const extPkgPath = join(LDM_EXTENSIONS, name, 'package.json');
|
|
1494
1519
|
const extPkg = readJSON(extPkgPath);
|
|
1495
1520
|
const npmPkg = extPkg?.name;
|
|
1496
|
-
if (!npmPkg
|
|
1521
|
+
if (!npmPkg) continue;
|
|
1497
1522
|
const currentVersion = extPkg.version || info.version;
|
|
1498
1523
|
if (!currentVersion) continue;
|
|
1499
1524
|
try {
|
package/catalog.json
CHANGED
|
@@ -281,6 +281,23 @@
|
|
|
281
281
|
"skill": "SKILL.md (protocol documentation for agents)",
|
|
282
282
|
"docs": "19-page paper on memory consolidation. No runtime components."
|
|
283
283
|
}
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"id": "tavily",
|
|
287
|
+
"name": "Tavily",
|
|
288
|
+
"description": "Web search and content extraction via Tavily API.",
|
|
289
|
+
"npm": "tavily",
|
|
290
|
+
"repo": null,
|
|
291
|
+
"registryMatches": [
|
|
292
|
+
"tavily"
|
|
293
|
+
],
|
|
294
|
+
"cliMatches": [],
|
|
295
|
+
"recommended": false,
|
|
296
|
+
"status": "stable",
|
|
297
|
+
"postInstall": null,
|
|
298
|
+
"installs": {
|
|
299
|
+
"ocPlugin": "Web search and content extraction"
|
|
300
|
+
}
|
|
284
301
|
}
|
|
285
302
|
]
|
|
286
303
|
}
|