@wipcomputer/wip-ldm-os 0.4.24 → 0.4.26
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/README.md +1 -1
- package/SKILL.md +15 -1
- package/bin/ldm.js +13 -0
- package/package.json +1 -1
package/README.md
CHANGED
package/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
interface: [cli, skill]
|
|
6
6
|
metadata:
|
|
7
7
|
display-name: "LDM OS"
|
|
8
|
-
version: "0.4.
|
|
8
|
+
version: "0.4.26"
|
|
9
9
|
homepage: "https://github.com/wipcomputer/wip-ldm-os"
|
|
10
10
|
author: "Parker Todd Brooks"
|
|
11
11
|
category: infrastructure
|
|
@@ -32,6 +32,20 @@ compatibility: Requires git, npm, node. Node.js 18+.
|
|
|
32
32
|
|
|
33
33
|
# LDM OS
|
|
34
34
|
|
|
35
|
+
## CRITICAL: Bootstrap (read this first)
|
|
36
|
+
|
|
37
|
+
If `ldm` is not installed, run this BEFORE anything else:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install -g @wipcomputer/wip-ldm-os
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Then check: `ldm --version`. If that works, proceed with `ldm install --dry-run`.
|
|
44
|
+
|
|
45
|
+
If npm/node is not installed, the user needs Node.js 18+ from https://nodejs.org first.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
35
49
|
You use Claude Code, GPT, OpenClaw, others. They don't share memory. They don't know each other. They don't know how to work together.
|
|
36
50
|
|
|
37
51
|
LDM OS is the shared infrastructure layer. Install it once and every AI you use gets:
|
package/bin/ldm.js
CHANGED
|
@@ -31,6 +31,17 @@ const LDM_EXTENSIONS = join(LDM_ROOT, 'extensions');
|
|
|
31
31
|
const VERSION_PATH = join(LDM_ROOT, 'version.json');
|
|
32
32
|
const REGISTRY_PATH = join(LDM_EXTENSIONS, 'registry.json');
|
|
33
33
|
|
|
34
|
+
// Install log (#101): append to ~/.ldm/logs/install.log
|
|
35
|
+
import { appendFileSync } from 'node:fs';
|
|
36
|
+
const LOG_DIR = join(LDM_ROOT, 'logs');
|
|
37
|
+
const LOG_PATH = join(LOG_DIR, 'install.log');
|
|
38
|
+
function installLog(msg) {
|
|
39
|
+
try {
|
|
40
|
+
mkdirSync(LOG_DIR, { recursive: true });
|
|
41
|
+
appendFileSync(LOG_PATH, `[${new Date().toISOString()}] ${msg}\n`);
|
|
42
|
+
} catch {}
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
// Read our own version from package.json
|
|
35
46
|
const pkgPath = join(__dirname, '..', 'package.json');
|
|
36
47
|
let PKG_VERSION = '0.2.0';
|
|
@@ -654,6 +665,7 @@ function autoDetectExtensions() {
|
|
|
654
665
|
|
|
655
666
|
async function cmdInstallCatalog() {
|
|
656
667
|
// No lock here. cmdInstall() already holds it when calling this.
|
|
668
|
+
installLog(`ldm install started (v${PKG_VERSION}, DRY_RUN=${DRY_RUN})`);
|
|
657
669
|
|
|
658
670
|
// Self-update: check if CLI itself is outdated. Update first, then re-exec.
|
|
659
671
|
// This breaks the chicken-and-egg: new features in ldm install are always
|
|
@@ -1089,6 +1101,7 @@ async function cmdInstallCatalog() {
|
|
|
1089
1101
|
|
|
1090
1102
|
console.log('');
|
|
1091
1103
|
console.log(` Updated ${updated}/${totalUpdates} extension(s).`);
|
|
1104
|
+
installLog(`ldm install complete: ${updated}/${totalUpdates} updated, ${healthFixes} health fix(es)`);
|
|
1092
1105
|
|
|
1093
1106
|
// Check if CLI itself is outdated (#29)
|
|
1094
1107
|
checkCliVersion();
|