@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 CHANGED
@@ -20,7 +20,7 @@ LDM OS is a shared infrastructure that enables:
20
20
  Open your AI and paste this:
21
21
 
22
22
  ```
23
- Read wip.computer/install/wip-ldm-os.txt
23
+ Read https://wip.computer/install/wip-ldm-os.txt
24
24
 
25
25
  Then explain:
26
26
  1. What is LDM OS?
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.24"
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();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-ldm-os",
3
- "version": "0.4.24",
3
+ "version": "0.4.26",
4
4
  "type": "module",
5
5
  "description": "LDM OS: identity, memory, and sovereignty infrastructure for AI agents",
6
6
  "main": "src/boot/boot-hook.mjs",