@wipcomputer/wip-ldm-os 0.4.50 → 0.4.52
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/lib/deploy.mjs +12 -11
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -9,7 +9,7 @@ license: MIT
|
|
|
9
9
|
compatibility: Requires git, npm, node. Node.js 18+.
|
|
10
10
|
metadata:
|
|
11
11
|
display-name: "LDM OS"
|
|
12
|
-
version: "0.4.
|
|
12
|
+
version: "0.4.52"
|
|
13
13
|
homepage: "https://github.com/wipcomputer/wip-ldm-os"
|
|
14
14
|
author: "Parker Todd Brooks"
|
|
15
15
|
category: infrastructure
|
package/lib/deploy.mjs
CHANGED
|
@@ -814,32 +814,33 @@ export function installSingleTool(toolPath) {
|
|
|
814
814
|
}
|
|
815
815
|
}
|
|
816
816
|
|
|
817
|
-
//
|
|
817
|
+
// Deploy MCP, hooks, and skills for any extension that is enabled OR already deployed.
|
|
818
|
+
// Extensions installed before the enable/disable system have enabled=false in the registry
|
|
819
|
+
// but are already running (MCP registered, hooks in settings.json). Don't block their updates.
|
|
818
820
|
const registry = loadRegistry();
|
|
819
|
-
const
|
|
821
|
+
const registryEntry = registry.extensions?.[toolName];
|
|
822
|
+
const isEnabled = registryEntry?.enabled ?? CORE_EXTENSIONS.has(toolName);
|
|
823
|
+
const isAlreadyDeployed = registryEntry?.ldmPath && existsSync(registryEntry.ldmPath);
|
|
820
824
|
|
|
821
825
|
if (interfaces.mcp) {
|
|
822
|
-
if (isEnabled) {
|
|
826
|
+
if (isEnabled || isAlreadyDeployed) {
|
|
823
827
|
if (registerMCP(toolPath, interfaces.mcp, toolName)) installed++;
|
|
824
828
|
} else {
|
|
825
|
-
skip(`MCP: ${toolName}
|
|
829
|
+
skip(`MCP: ${toolName} not enabled. Run: ldm enable ${toolName}`);
|
|
826
830
|
}
|
|
827
831
|
}
|
|
828
832
|
|
|
829
833
|
if (interfaces.claudeCodeHook) {
|
|
830
|
-
if (isEnabled) {
|
|
834
|
+
if (isEnabled || isAlreadyDeployed) {
|
|
831
835
|
if (installClaudeCodeHook(toolPath, interfaces.claudeCodeHook)) installed++;
|
|
832
836
|
} else {
|
|
833
|
-
skip(`Hook: ${toolName}
|
|
837
|
+
skip(`Hook: ${toolName} not enabled`);
|
|
834
838
|
}
|
|
835
839
|
}
|
|
836
840
|
|
|
837
841
|
if (interfaces.skill) {
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
} else {
|
|
841
|
-
skip(`Skill: ${toolName} installed but not enabled`);
|
|
842
|
-
}
|
|
842
|
+
// Skills always deploy. They're instruction files, not running code.
|
|
843
|
+
if (installSkill(toolPath, toolName)) installed++;
|
|
843
844
|
}
|
|
844
845
|
|
|
845
846
|
if (interfaces.module) {
|