@mycelish/cli 0.1.0 → 0.2.0
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/dist/__tests__/mcp-server.test.d.ts +2 -0
- package/dist/__tests__/mcp-server.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-server.test.js +60 -0
- package/dist/__tests__/mcp-server.test.js.map +1 -0
- package/dist/__tests__/unified-item-state.integration.test.d.ts +7 -0
- package/dist/__tests__/unified-item-state.integration.test.d.ts.map +1 -0
- package/dist/__tests__/unified-item-state.integration.test.js +217 -0
- package/dist/__tests__/unified-item-state.integration.test.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +9 -0
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/disable.d.ts +8 -6
- package/dist/commands/disable.d.ts.map +1 -1
- package/dist/commands/disable.js +143 -136
- package/dist/commands/disable.js.map +1 -1
- package/dist/commands/disable.test.js +117 -23
- package/dist/commands/disable.test.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enable.d.ts +8 -6
- package/dist/commands/enable.d.ts.map +1 -1
- package/dist/commands/enable.js +128 -133
- package/dist/commands/enable.js.map +1 -1
- package/dist/commands/enable.test.js +192 -24
- package/dist/commands/enable.test.js.map +1 -1
- package/dist/commands/health-checks/index.d.ts +2 -1
- package/dist/commands/health-checks/index.d.ts.map +1 -1
- package/dist/commands/health-checks/index.js +2 -1
- package/dist/commands/health-checks/index.js.map +1 -1
- package/dist/commands/health-checks/mcp-check.d.ts +5 -1
- package/dist/commands/health-checks/mcp-check.d.ts.map +1 -1
- package/dist/commands/health-checks/mcp-check.js +32 -1
- package/dist/commands/health-checks/mcp-check.js.map +1 -1
- package/dist/commands/health-checks/plugin-takeover-check.d.ts +15 -0
- package/dist/commands/health-checks/plugin-takeover-check.d.ts.map +1 -0
- package/dist/commands/health-checks/plugin-takeover-check.js +274 -0
- package/dist/commands/health-checks/plugin-takeover-check.js.map +1 -0
- package/dist/commands/health-checks/runner.d.ts.map +1 -1
- package/dist/commands/health-checks/runner.js +18 -0
- package/dist/commands/health-checks/runner.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +33 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +17 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +51 -0
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/preset.test.js +7 -3
- package/dist/commands/preset.test.js.map +1 -1
- package/dist/commands/remove.d.ts +25 -23
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +118 -247
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/remove.test.js +152 -78
- package/dist/commands/remove.test.js.map +1 -1
- package/dist/commands/report.d.ts +8 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +149 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/report.test.d.ts +2 -0
- package/dist/commands/report.test.d.ts.map +1 -0
- package/dist/commands/report.test.js +23 -0
- package/dist/commands/report.test.js.map +1 -0
- package/dist/commands/status.d.ts +9 -4
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +81 -10
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status.test.js +92 -0
- package/dist/commands/status.test.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +138 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/sync.test.js +91 -6
- package/dist/commands/sync.test.js.map +1 -1
- package/dist/core/adapter-base.d.ts +2 -0
- package/dist/core/adapter-base.d.ts.map +1 -1
- package/dist/core/adapter-base.js +2 -1
- package/dist/core/adapter-base.js.map +1 -1
- package/dist/core/auto-adapter.d.ts.map +1 -1
- package/dist/core/auto-adapter.js +58 -3
- package/dist/core/auto-adapter.js.map +1 -1
- package/dist/core/auto-adapter.test.js +155 -0
- package/dist/core/auto-adapter.test.js.map +1 -1
- package/dist/core/config-merger.d.ts +6 -5
- package/dist/core/config-merger.d.ts.map +1 -1
- package/dist/core/config-merger.js +119 -136
- package/dist/core/config-merger.js.map +1 -1
- package/dist/core/config-merger.test.d.ts +1 -1
- package/dist/core/config-merger.test.js +72 -88
- package/dist/core/config-merger.test.js.map +1 -1
- package/dist/core/file-syncer.d.ts +33 -0
- package/dist/core/file-syncer.d.ts.map +1 -0
- package/dist/core/file-syncer.js +138 -0
- package/dist/core/file-syncer.js.map +1 -0
- package/dist/core/file-syncer.test.d.ts +2 -0
- package/dist/core/file-syncer.test.d.ts.map +1 -0
- package/dist/core/file-syncer.test.js +131 -0
- package/dist/core/file-syncer.test.js.map +1 -0
- package/dist/core/global-tracer.d.ts +4 -0
- package/dist/core/global-tracer.d.ts.map +1 -0
- package/dist/core/global-tracer.js +36 -0
- package/dist/core/global-tracer.js.map +1 -0
- package/dist/core/item-loader.d.ts +18 -0
- package/dist/core/item-loader.d.ts.map +1 -0
- package/dist/core/item-loader.js +40 -0
- package/dist/core/item-loader.js.map +1 -0
- package/dist/core/item-loader.test.d.ts +2 -0
- package/dist/core/item-loader.test.d.ts.map +1 -0
- package/dist/core/item-loader.test.js +52 -0
- package/dist/core/item-loader.test.js.map +1 -0
- package/dist/core/manifest-migrator.d.ts +15 -0
- package/dist/core/manifest-migrator.d.ts.map +1 -0
- package/dist/core/manifest-migrator.js +38 -0
- package/dist/core/manifest-migrator.js.map +1 -0
- package/dist/core/manifest-migrator.test.d.ts +2 -0
- package/dist/core/manifest-migrator.test.d.ts.map +1 -0
- package/dist/core/manifest-migrator.test.js +53 -0
- package/dist/core/manifest-migrator.test.js.map +1 -0
- package/dist/core/manifest-state.d.ts +117 -0
- package/dist/core/manifest-state.d.ts.map +1 -0
- package/dist/core/manifest-state.js +218 -0
- package/dist/core/manifest-state.js.map +1 -0
- package/dist/core/manifest-state.test.d.ts +2 -0
- package/dist/core/manifest-state.test.d.ts.map +1 -0
- package/dist/core/manifest-state.test.js +130 -0
- package/dist/core/manifest-state.test.js.map +1 -0
- package/dist/core/marketplace-registry.d.ts +0 -1
- package/dist/core/marketplace-registry.d.ts.map +1 -1
- package/dist/core/marketplace-registry.js +0 -16
- package/dist/core/marketplace-registry.js.map +1 -1
- package/dist/core/marketplace-registry.test.js +1 -14
- package/dist/core/marketplace-registry.test.js.map +1 -1
- package/dist/core/mcp-injector.d.ts +2 -2
- package/dist/core/mcp-injector.d.ts.map +1 -1
- package/dist/core/mcp-injector.js +6 -6
- package/dist/core/mcp-injector.js.map +1 -1
- package/dist/core/mcp-injector.test.js +33 -26
- package/dist/core/mcp-injector.test.js.map +1 -1
- package/dist/core/mcp-registry.js +1 -1
- package/dist/core/mcp-registry.js.map +1 -1
- package/dist/core/mcp-registry.test.js +1 -1
- package/dist/core/mcp-registry.test.js.map +1 -1
- package/dist/core/memory-scoper.test.js +2 -13
- package/dist/core/memory-scoper.test.js.map +1 -1
- package/dist/core/migrator/executor.js +2 -2
- package/dist/core/migrator/executor.js.map +1 -1
- package/dist/core/plugin-state.d.ts +7 -0
- package/dist/core/plugin-state.d.ts.map +1 -0
- package/dist/core/plugin-state.js +88 -0
- package/dist/core/plugin-state.js.map +1 -0
- package/dist/core/plugin-takeover.d.ts +50 -0
- package/dist/core/plugin-takeover.d.ts.map +1 -0
- package/dist/core/plugin-takeover.js +263 -0
- package/dist/core/plugin-takeover.js.map +1 -0
- package/dist/core/plugin-takeover.test.d.ts +2 -0
- package/dist/core/plugin-takeover.test.d.ts.map +1 -0
- package/dist/core/plugin-takeover.test.js +243 -0
- package/dist/core/plugin-takeover.test.js.map +1 -0
- package/dist/core/self-register.d.ts +5 -0
- package/dist/core/self-register.d.ts.map +1 -0
- package/dist/core/self-register.js +43 -0
- package/dist/core/self-register.js.map +1 -0
- package/dist/core/self-register.test.d.ts +2 -0
- package/dist/core/self-register.test.d.ts.map +1 -0
- package/dist/core/self-register.test.js +77 -0
- package/dist/core/self-register.test.js.map +1 -0
- package/dist/core/smart-memory.d.ts +5 -5
- package/dist/core/smart-memory.d.ts.map +1 -1
- package/dist/core/smart-memory.js +1 -10
- package/dist/core/smart-memory.js.map +1 -1
- package/dist/core/smart-memory.test.js +3 -30
- package/dist/core/smart-memory.test.js.map +1 -1
- package/dist/core/state-verifier.d.ts +36 -0
- package/dist/core/state-verifier.d.ts.map +1 -0
- package/dist/core/state-verifier.js +159 -0
- package/dist/core/state-verifier.js.map +1 -0
- package/dist/core/state-verifier.test.d.ts +2 -0
- package/dist/core/state-verifier.test.d.ts.map +1 -0
- package/dist/core/state-verifier.test.js +188 -0
- package/dist/core/state-verifier.test.js.map +1 -0
- package/dist/core/symlink-manager.d.ts +1 -1
- package/dist/core/symlink-manager.d.ts.map +1 -1
- package/dist/core/symlink-manager.js +1 -1
- package/dist/core/symlink-manager.js.map +1 -1
- package/dist/core/symlink-manager.test.js +4 -4
- package/dist/core/symlink-manager.test.js.map +1 -1
- package/dist/core/sync-writer.d.ts +2 -1
- package/dist/core/sync-writer.d.ts.map +1 -1
- package/dist/core/sync-writer.js +108 -22
- package/dist/core/sync-writer.js.map +1 -1
- package/dist/core/sync-writer.test.js +31 -0
- package/dist/core/sync-writer.test.js.map +1 -1
- package/dist/core/tool-adapter.d.ts.map +1 -1
- package/dist/core/tool-adapter.js +45 -6
- package/dist/core/tool-adapter.js.map +1 -1
- package/dist/core/trace-store.d.ts +36 -0
- package/dist/core/trace-store.d.ts.map +1 -0
- package/dist/core/trace-store.js +145 -0
- package/dist/core/trace-store.js.map +1 -0
- package/dist/core/trace-store.test.d.ts +2 -0
- package/dist/core/trace-store.test.d.ts.map +1 -0
- package/dist/core/trace-store.test.js +102 -0
- package/dist/core/trace-store.test.js.map +1 -0
- package/dist/core/tracer.d.ts +27 -0
- package/dist/core/tracer.d.ts.map +1 -0
- package/dist/core/tracer.js +62 -0
- package/dist/core/tracer.js.map +1 -0
- package/dist/core/tracer.test.d.ts +2 -0
- package/dist/core/tracer.test.d.ts.map +1 -0
- package/dist/core/tracer.test.js +54 -0
- package/dist/core/tracer.test.js.map +1 -0
- package/dist/core/watcher.d.ts.map +1 -1
- package/dist/core/watcher.js +9 -2
- package/dist/core/watcher.js.map +1 -1
- package/dist/core/watcher.test.js +9 -0
- package/dist/core/watcher.test.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/prompts.d.ts +3 -0
- package/dist/mcp/prompts.d.ts.map +1 -0
- package/dist/mcp/prompts.js +40 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/resources.d.ts +6 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +24 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +27 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/server.test.d.ts +2 -0
- package/dist/mcp/server.test.d.ts.map +1 -0
- package/dist/mcp/server.test.js +9 -0
- package/dist/mcp/server.test.js.map +1 -0
- package/dist/mcp/tools/config-tools.d.ts +3 -0
- package/dist/mcp/tools/config-tools.d.ts.map +1 -0
- package/dist/mcp/tools/config-tools.js +80 -0
- package/dist/mcp/tools/config-tools.js.map +1 -0
- package/dist/mcp/tools/config-tools.test.d.ts +2 -0
- package/dist/mcp/tools/config-tools.test.d.ts.map +1 -0
- package/dist/mcp/tools/config-tools.test.js +207 -0
- package/dist/mcp/tools/config-tools.test.js.map +1 -0
- package/dist/mcp/tools/item-tools.d.ts +3 -0
- package/dist/mcp/tools/item-tools.d.ts.map +1 -0
- package/dist/mcp/tools/item-tools.js +95 -0
- package/dist/mcp/tools/item-tools.js.map +1 -0
- package/dist/mcp/tools/item-tools.test.d.ts +2 -0
- package/dist/mcp/tools/item-tools.test.d.ts.map +1 -0
- package/dist/mcp/tools/item-tools.test.js +184 -0
- package/dist/mcp/tools/item-tools.test.js.map +1 -0
- package/dist/mcp/tools/marketplace-tools.d.ts +3 -0
- package/dist/mcp/tools/marketplace-tools.d.ts.map +1 -0
- package/dist/mcp/tools/marketplace-tools.js +35 -0
- package/dist/mcp/tools/marketplace-tools.js.map +1 -0
- package/dist/mcp/tools/marketplace-tools.test.d.ts +2 -0
- package/dist/mcp/tools/marketplace-tools.test.d.ts.map +1 -0
- package/dist/mcp/tools/marketplace-tools.test.js +48 -0
- package/dist/mcp/tools/marketplace-tools.test.js.map +1 -0
- package/dist/mcp/tools/memory-tools.d.ts +3 -0
- package/dist/mcp/tools/memory-tools.d.ts.map +1 -0
- package/dist/mcp/tools/memory-tools.js +68 -0
- package/dist/mcp/tools/memory-tools.js.map +1 -0
- package/dist/mcp/tools/memory-tools.test.d.ts +2 -0
- package/dist/mcp/tools/memory-tools.test.d.ts.map +1 -0
- package/dist/mcp/tools/memory-tools.test.js +144 -0
- package/dist/mcp/tools/memory-tools.test.js.map +1 -0
- package/dist/mcp/tools/observe-tools.d.ts +3 -0
- package/dist/mcp/tools/observe-tools.d.ts.map +1 -0
- package/dist/mcp/tools/observe-tools.js +37 -0
- package/dist/mcp/tools/observe-tools.js.map +1 -0
- package/dist/mcp/tools/observe-tools.test.d.ts +2 -0
- package/dist/mcp/tools/observe-tools.test.d.ts.map +1 -0
- package/dist/mcp/tools/observe-tools.test.js +71 -0
- package/dist/mcp/tools/observe-tools.test.js.map +1 -0
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +63 -37
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/plugins.test.d.ts +2 -0
- package/dist/routes/plugins.test.d.ts.map +1 -0
- package/dist/routes/plugins.test.js +56 -0
- package/dist/routes/plugins.test.js.map +1 -0
- package/dist/routes/remove.d.ts.map +1 -1
- package/dist/routes/remove.js +6 -15
- package/dist/routes/remove.js.map +1 -1
- package/dist/routes/state.d.ts.map +1 -1
- package/dist/routes/state.js +35 -70
- package/dist/routes/state.js.map +1 -1
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/sync.js +10 -3
- package/dist/routes/sync.js.map +1 -1
- package/package.json +6 -2
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Config merge priority: Project > Machine > Global
|
|
5
5
|
* - Global provides base set of skills/mcps/memory
|
|
6
6
|
* - Machine can add/override for hardware-specific needs
|
|
7
|
-
* - Project can add/override/DISABLE specific items (
|
|
7
|
+
* - Project can add/override/DISABLE specific items (state: "disabled")
|
|
8
8
|
*/
|
|
9
9
|
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
10
10
|
import * as os from "node:os";
|
|
@@ -22,12 +22,12 @@ describe("mergeConfigs", () => {
|
|
|
22
22
|
"context7": {
|
|
23
23
|
command: "npx",
|
|
24
24
|
args: ["-y", "@context7/mcp"],
|
|
25
|
-
|
|
25
|
+
state: "enabled",
|
|
26
26
|
},
|
|
27
27
|
"filesystem": {
|
|
28
28
|
command: "npx",
|
|
29
29
|
args: ["-y", "@modelcontextprotocol/server-filesystem"],
|
|
30
|
-
|
|
30
|
+
state: "enabled",
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
};
|
|
@@ -36,7 +36,7 @@ describe("mergeConfigs", () => {
|
|
|
36
36
|
"project-specific": {
|
|
37
37
|
command: "node",
|
|
38
38
|
args: ["./local-mcp.js"],
|
|
39
|
-
|
|
39
|
+
state: "enabled",
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
42
|
};
|
|
@@ -59,7 +59,7 @@ describe("mergeConfigs", () => {
|
|
|
59
59
|
command: "npx",
|
|
60
60
|
args: ["-y", "@context7/mcp"],
|
|
61
61
|
env: { DEFAULT_ENV: "value" },
|
|
62
|
-
|
|
62
|
+
state: "enabled",
|
|
63
63
|
},
|
|
64
64
|
},
|
|
65
65
|
};
|
|
@@ -68,7 +68,7 @@ describe("mergeConfigs", () => {
|
|
|
68
68
|
"context7": {
|
|
69
69
|
command: "npx",
|
|
70
70
|
args: ["-y", "@context7/mcp", "--custom-flag"],
|
|
71
|
-
|
|
71
|
+
state: "enabled",
|
|
72
72
|
},
|
|
73
73
|
},
|
|
74
74
|
};
|
|
@@ -78,19 +78,19 @@ describe("mergeConfigs", () => {
|
|
|
78
78
|
// Command should remain from project (or global if not overridden)
|
|
79
79
|
expect(result.mcps["context7"].command).toBe("npx");
|
|
80
80
|
});
|
|
81
|
-
it("project can disable global MCPs with
|
|
81
|
+
it("project can disable global MCPs with state: disabled", async () => {
|
|
82
82
|
const { mergeConfigs } = await import("./config-merger.js");
|
|
83
83
|
const globalConfig = {
|
|
84
84
|
mcps: {
|
|
85
85
|
"context7": {
|
|
86
86
|
command: "npx",
|
|
87
87
|
args: ["-y", "@context7/mcp"],
|
|
88
|
-
|
|
88
|
+
state: "enabled",
|
|
89
89
|
},
|
|
90
90
|
"filesystem": {
|
|
91
91
|
command: "npx",
|
|
92
92
|
args: ["-y", "@modelcontextprotocol/server-filesystem"],
|
|
93
|
-
|
|
93
|
+
state: "enabled",
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
};
|
|
@@ -99,15 +99,15 @@ describe("mergeConfigs", () => {
|
|
|
99
99
|
"context7": {
|
|
100
100
|
command: "npx",
|
|
101
101
|
args: ["-y", "@context7/mcp"],
|
|
102
|
-
|
|
102
|
+
state: "disabled", // Disable this MCP for the project
|
|
103
103
|
},
|
|
104
104
|
},
|
|
105
105
|
};
|
|
106
106
|
const result = mergeConfigs(globalConfig, undefined, projectConfig);
|
|
107
107
|
// context7 should be disabled
|
|
108
|
-
expect(result.mcps["context7"].
|
|
108
|
+
expect(result.mcps["context7"].state).toBe("disabled");
|
|
109
109
|
// filesystem should remain enabled
|
|
110
|
-
expect(result.mcps["filesystem"].
|
|
110
|
+
expect(result.mcps["filesystem"].state).toBe("enabled");
|
|
111
111
|
});
|
|
112
112
|
it("project can add new MCPs not in global", async () => {
|
|
113
113
|
const { mergeConfigs } = await import("./config-merger.js");
|
|
@@ -116,7 +116,7 @@ describe("mergeConfigs", () => {
|
|
|
116
116
|
"context7": {
|
|
117
117
|
command: "npx",
|
|
118
118
|
args: ["-y", "@context7/mcp"],
|
|
119
|
-
|
|
119
|
+
state: "enabled",
|
|
120
120
|
},
|
|
121
121
|
},
|
|
122
122
|
};
|
|
@@ -126,7 +126,7 @@ describe("mergeConfigs", () => {
|
|
|
126
126
|
command: "node",
|
|
127
127
|
args: ["./db-mcp.js"],
|
|
128
128
|
env: { DB_URL: "postgres://localhost" },
|
|
129
|
-
|
|
129
|
+
state: "enabled",
|
|
130
130
|
},
|
|
131
131
|
},
|
|
132
132
|
};
|
|
@@ -145,7 +145,7 @@ describe("mergeConfigs", () => {
|
|
|
145
145
|
"context7": {
|
|
146
146
|
command: "npx",
|
|
147
147
|
args: ["-y", "@context7/mcp"],
|
|
148
|
-
|
|
148
|
+
state: "enabled",
|
|
149
149
|
},
|
|
150
150
|
},
|
|
151
151
|
};
|
|
@@ -155,12 +155,12 @@ describe("mergeConfigs", () => {
|
|
|
155
155
|
command: "npx",
|
|
156
156
|
args: ["-y", "@context7/mcp"],
|
|
157
157
|
env: { MACHINE_SPECIFIC: "gpu-optimized" },
|
|
158
|
-
|
|
158
|
+
state: "enabled",
|
|
159
159
|
},
|
|
160
160
|
"machine-gpu": {
|
|
161
161
|
command: "cuda-mcp",
|
|
162
162
|
args: ["--gpu=0"],
|
|
163
|
-
|
|
163
|
+
state: "enabled",
|
|
164
164
|
},
|
|
165
165
|
},
|
|
166
166
|
};
|
|
@@ -169,7 +169,7 @@ describe("mergeConfigs", () => {
|
|
|
169
169
|
"project-specific": {
|
|
170
170
|
command: "node",
|
|
171
171
|
args: ["./local.js"],
|
|
172
|
-
|
|
172
|
+
state: "enabled",
|
|
173
173
|
},
|
|
174
174
|
},
|
|
175
175
|
};
|
|
@@ -188,7 +188,7 @@ describe("mergeConfigs", () => {
|
|
|
188
188
|
"global-mcp": {
|
|
189
189
|
command: "npx",
|
|
190
190
|
args: ["global"],
|
|
191
|
-
|
|
191
|
+
state: "enabled",
|
|
192
192
|
},
|
|
193
193
|
},
|
|
194
194
|
};
|
|
@@ -197,7 +197,7 @@ describe("mergeConfigs", () => {
|
|
|
197
197
|
"machine-mcp": {
|
|
198
198
|
command: "machine",
|
|
199
199
|
args: ["machine"],
|
|
200
|
-
|
|
200
|
+
state: "enabled",
|
|
201
201
|
},
|
|
202
202
|
},
|
|
203
203
|
};
|
|
@@ -206,7 +206,7 @@ describe("mergeConfigs", () => {
|
|
|
206
206
|
"project-mcp": {
|
|
207
207
|
command: "project",
|
|
208
208
|
args: ["project"],
|
|
209
|
-
|
|
209
|
+
state: "enabled",
|
|
210
210
|
},
|
|
211
211
|
},
|
|
212
212
|
};
|
|
@@ -223,7 +223,7 @@ describe("mergeConfigs", () => {
|
|
|
223
223
|
"shared-mcp": {
|
|
224
224
|
command: "global-cmd",
|
|
225
225
|
args: ["global"],
|
|
226
|
-
|
|
226
|
+
state: "enabled",
|
|
227
227
|
},
|
|
228
228
|
},
|
|
229
229
|
};
|
|
@@ -232,7 +232,7 @@ describe("mergeConfigs", () => {
|
|
|
232
232
|
"shared-mcp": {
|
|
233
233
|
command: "machine-cmd",
|
|
234
234
|
args: ["machine"],
|
|
235
|
-
|
|
235
|
+
state: "enabled",
|
|
236
236
|
},
|
|
237
237
|
},
|
|
238
238
|
};
|
|
@@ -241,7 +241,7 @@ describe("mergeConfigs", () => {
|
|
|
241
241
|
"shared-mcp": {
|
|
242
242
|
command: "project-cmd",
|
|
243
243
|
args: ["project"],
|
|
244
|
-
|
|
244
|
+
state: "enabled",
|
|
245
245
|
},
|
|
246
246
|
},
|
|
247
247
|
};
|
|
@@ -258,7 +258,7 @@ describe("mergeConfigs", () => {
|
|
|
258
258
|
"only-global": {
|
|
259
259
|
command: "npx",
|
|
260
260
|
args: ["test"],
|
|
261
|
-
|
|
261
|
+
state: "enabled",
|
|
262
262
|
},
|
|
263
263
|
},
|
|
264
264
|
};
|
|
@@ -271,24 +271,22 @@ describe("loadGlobalConfig", () => {
|
|
|
271
271
|
beforeEach(() => {
|
|
272
272
|
vi.resetAllMocks();
|
|
273
273
|
});
|
|
274
|
-
it("loads from ~/.mycelium/", async () => {
|
|
274
|
+
it("loads from ~/.mycelium/global/mcps.yaml", async () => {
|
|
275
275
|
const fs = await import("node:fs/promises");
|
|
276
276
|
const { loadGlobalConfig } = await import("./config-merger.js");
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
},
|
|
284
|
-
},
|
|
285
|
-
};
|
|
277
|
+
const yamlContent = `test-mcp:
|
|
278
|
+
command: npx
|
|
279
|
+
args:
|
|
280
|
+
- "-y"
|
|
281
|
+
- test-mcp
|
|
282
|
+
state: enabled`;
|
|
286
283
|
vi.mocked(fs.access).mockResolvedValue(undefined);
|
|
287
|
-
vi.mocked(fs.readFile).mockResolvedValue(
|
|
284
|
+
vi.mocked(fs.readFile).mockResolvedValue(yamlContent);
|
|
288
285
|
const result = await loadGlobalConfig();
|
|
289
286
|
const home = os.homedir();
|
|
290
|
-
expect(fs.readFile).toHaveBeenCalledWith(path.join(home, ".mycelium", "mcps.
|
|
287
|
+
expect(fs.readFile).toHaveBeenCalledWith(path.join(home, ".mycelium", "global", "mcps.yaml"), "utf-8");
|
|
291
288
|
expect(result.mcps).toHaveProperty("test-mcp");
|
|
289
|
+
expect(result.mcps["test-mcp"].command).toBe("npx");
|
|
292
290
|
});
|
|
293
291
|
it("returns empty config if global config does not exist", async () => {
|
|
294
292
|
const fs = await import("node:fs/promises");
|
|
@@ -302,22 +300,18 @@ describe("loadProjectConfig", () => {
|
|
|
302
300
|
beforeEach(() => {
|
|
303
301
|
vi.resetAllMocks();
|
|
304
302
|
});
|
|
305
|
-
it("loads from .mycelium/ in project root", async () => {
|
|
303
|
+
it("loads from .mycelium/mcps.yaml in project root", async () => {
|
|
306
304
|
const fs = await import("node:fs/promises");
|
|
307
305
|
const { loadProjectConfig } = await import("./config-merger.js");
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
enabled: true,
|
|
314
|
-
},
|
|
315
|
-
},
|
|
316
|
-
};
|
|
306
|
+
const yamlContent = `project-mcp:
|
|
307
|
+
command: node
|
|
308
|
+
args:
|
|
309
|
+
- "./mcp.js"
|
|
310
|
+
state: enabled`;
|
|
317
311
|
vi.mocked(fs.access).mockResolvedValue(undefined);
|
|
318
|
-
vi.mocked(fs.readFile).mockResolvedValue(
|
|
312
|
+
vi.mocked(fs.readFile).mockResolvedValue(yamlContent);
|
|
319
313
|
const result = await loadProjectConfig("/home/user/my-project");
|
|
320
|
-
expect(fs.readFile).toHaveBeenCalledWith("/home/user/my-project/.mycelium/mcps.
|
|
314
|
+
expect(fs.readFile).toHaveBeenCalledWith("/home/user/my-project/.mycelium/mcps.yaml", "utf-8");
|
|
321
315
|
expect(result.mcps).toHaveProperty("project-mcp");
|
|
322
316
|
});
|
|
323
317
|
it("returns empty config if project config does not exist", async () => {
|
|
@@ -332,24 +326,25 @@ describe("loadMachineConfig", () => {
|
|
|
332
326
|
beforeEach(() => {
|
|
333
327
|
vi.resetAllMocks();
|
|
334
328
|
});
|
|
335
|
-
it("loads from ~/.mycelium/machines/{hostname}
|
|
329
|
+
it("loads from ~/.mycelium/machines/{hostname}.yaml", async () => {
|
|
336
330
|
const fs = await import("node:fs/promises");
|
|
337
331
|
const { loadMachineConfig } = await import("./config-merger.js");
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
enabled: true,
|
|
344
|
-
},
|
|
345
|
-
},
|
|
346
|
-
};
|
|
347
|
-
vi.mocked(fs.access).mockResolvedValue(undefined);
|
|
348
|
-
vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(mockMcpsConfig));
|
|
349
|
-
const result = await loadMachineConfig();
|
|
332
|
+
const yamlContent = `machine-mcp:
|
|
333
|
+
command: cuda-mcp
|
|
334
|
+
args:
|
|
335
|
+
- "--gpu"
|
|
336
|
+
state: enabled`;
|
|
350
337
|
const home = os.homedir();
|
|
351
338
|
const hostname = os.hostname();
|
|
352
|
-
|
|
339
|
+
vi.mocked(fs.access).mockImplementation(async (p) => {
|
|
340
|
+
const s = String(p);
|
|
341
|
+
if (s.endsWith(`${hostname}.yaml`))
|
|
342
|
+
return undefined;
|
|
343
|
+
throw new Error("ENOENT");
|
|
344
|
+
});
|
|
345
|
+
vi.mocked(fs.readFile).mockResolvedValue(yamlContent);
|
|
346
|
+
const result = await loadMachineConfig();
|
|
347
|
+
expect(fs.readFile).toHaveBeenCalledWith(path.join(home, ".mycelium", "machines", `${hostname}.yaml`), "utf-8");
|
|
353
348
|
expect(result.mcps).toHaveProperty("machine-mcp");
|
|
354
349
|
});
|
|
355
350
|
it("returns empty config if machine config does not exist", async () => {
|
|
@@ -367,35 +362,24 @@ describe("loadAndMergeAllConfigs", () => {
|
|
|
367
362
|
it("loads and merges all config levels", async () => {
|
|
368
363
|
const fs = await import("node:fs/promises");
|
|
369
364
|
const { loadAndMergeAllConfigs } = await import("./config-merger.js");
|
|
370
|
-
const
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
},
|
|
374
|
-
};
|
|
375
|
-
const machineMcps = {
|
|
376
|
-
mcps: {
|
|
377
|
-
"machine-mcp": { command: "machine", args: [], enabled: true },
|
|
378
|
-
},
|
|
379
|
-
};
|
|
380
|
-
const projectMcps = {
|
|
381
|
-
mcps: {
|
|
382
|
-
"project-mcp": { command: "project", args: [], enabled: true },
|
|
383
|
-
},
|
|
384
|
-
};
|
|
365
|
+
const globalYaml = `global-mcp:\n command: global\n args: []\n state: enabled`;
|
|
366
|
+
const machineYaml = `machine-mcp:\n command: machine\n args: []\n state: enabled`;
|
|
367
|
+
const projectYaml = `project-mcp:\n command: project\n args: []\n state: enabled`;
|
|
385
368
|
const home = os.homedir();
|
|
386
369
|
const hostname = os.hostname();
|
|
387
|
-
vi.mocked(fs.access).
|
|
370
|
+
vi.mocked(fs.access).mockImplementation(async (p) => {
|
|
371
|
+
const s = String(p);
|
|
372
|
+
if (s.endsWith("mcps.yaml") || s.endsWith(`${hostname}.yaml`))
|
|
373
|
+
return undefined;
|
|
374
|
+
throw new Error("ENOENT");
|
|
375
|
+
});
|
|
388
376
|
vi.mocked(fs.readFile).mockImplementation(async (filePath) => {
|
|
389
377
|
const pathStr = filePath.toString();
|
|
390
|
-
if (pathStr.includes(
|
|
391
|
-
return
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}
|
|
396
|
-
else {
|
|
397
|
-
return JSON.stringify(projectMcps);
|
|
398
|
-
}
|
|
378
|
+
if (pathStr.includes(`${hostname}.yaml`))
|
|
379
|
+
return machineYaml;
|
|
380
|
+
if (pathStr.includes("global/mcps.yaml"))
|
|
381
|
+
return globalYaml;
|
|
382
|
+
return projectYaml;
|
|
399
383
|
});
|
|
400
384
|
const result = await loadAndMergeAllConfigs("/home/user/my-project");
|
|
401
385
|
expect(result.mcps).toHaveProperty("global-mcp");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-merger.test.js","sourceRoot":"","sources":["../../src/core/config-merger.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-merger.test.js","sourceRoot":"","sources":["../../src/core/config-merger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Syncer for Mycelium
|
|
3
|
+
*
|
|
4
|
+
* Generalized file sync using symlink or copy strategy.
|
|
5
|
+
* Handles create/update/remove based on item state, with orphan cleanup.
|
|
6
|
+
*/
|
|
7
|
+
import type { ItemState } from "@mycelish/core";
|
|
8
|
+
export interface FileSyncStrategy {
|
|
9
|
+
type: "symlink" | "copy";
|
|
10
|
+
}
|
|
11
|
+
export interface FileSyncItem {
|
|
12
|
+
name: string;
|
|
13
|
+
path: string;
|
|
14
|
+
state?: ItemState;
|
|
15
|
+
}
|
|
16
|
+
export interface FileSyncResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
created: string[];
|
|
19
|
+
updated: string[];
|
|
20
|
+
removed: string[];
|
|
21
|
+
unchanged: string[];
|
|
22
|
+
errors: Array<{
|
|
23
|
+
item: string;
|
|
24
|
+
error: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Sync files from source paths to a target directory using symlink or copy strategy.
|
|
29
|
+
*/
|
|
30
|
+
export declare function syncFilesToDir(items: FileSyncItem[], targetDir: string, strategy: FileSyncStrategy, options?: {
|
|
31
|
+
removeOrphans?: boolean;
|
|
32
|
+
}): Promise<FileSyncResult>;
|
|
33
|
+
//# sourceMappingURL=file-syncer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-syncer.d.ts","sourceRoot":"","sources":["../../src/core/file-syncer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC,OAAO,CAAC,cAAc,CAAC,CA+CzB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Syncer for Mycelium
|
|
3
|
+
*
|
|
4
|
+
* Generalized file sync using symlink or copy strategy.
|
|
5
|
+
* Handles create/update/remove based on item state, with orphan cleanup.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from "node:fs/promises";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Core
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* Sync files from source paths to a target directory using symlink or copy strategy.
|
|
14
|
+
*/
|
|
15
|
+
export async function syncFilesToDir(items, targetDir, strategy, options) {
|
|
16
|
+
const result = {
|
|
17
|
+
success: true,
|
|
18
|
+
created: [],
|
|
19
|
+
updated: [],
|
|
20
|
+
removed: [],
|
|
21
|
+
unchanged: [],
|
|
22
|
+
errors: [],
|
|
23
|
+
};
|
|
24
|
+
await fs.mkdir(targetDir, { recursive: true });
|
|
25
|
+
const itemNames = new Set(items.map((i) => i.name));
|
|
26
|
+
for (const item of items) {
|
|
27
|
+
const targetPath = path.join(targetDir, path.basename(item.path));
|
|
28
|
+
const isEnabled = !item.state || item.state === "enabled";
|
|
29
|
+
if (isEnabled) {
|
|
30
|
+
try {
|
|
31
|
+
const action = strategy.type === "symlink"
|
|
32
|
+
? await syncSymlink(item.path, targetPath)
|
|
33
|
+
: await syncCopy(item.path, targetPath);
|
|
34
|
+
if (action === "created")
|
|
35
|
+
result.created.push(item.name);
|
|
36
|
+
else if (action === "updated")
|
|
37
|
+
result.updated.push(item.name);
|
|
38
|
+
else
|
|
39
|
+
result.unchanged.push(item.name);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
result.success = false;
|
|
43
|
+
result.errors.push({
|
|
44
|
+
item: item.name,
|
|
45
|
+
error: error instanceof Error ? error.message : String(error),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Remove disabled/deleted items
|
|
51
|
+
const removed = await tryRemove(targetPath, strategy.type);
|
|
52
|
+
if (removed)
|
|
53
|
+
result.removed.push(item.name);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (options?.removeOrphans) {
|
|
57
|
+
await removeOrphans(targetDir, itemNames, strategy.type, result);
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// Internal helpers
|
|
63
|
+
// ============================================================================
|
|
64
|
+
async function syncSymlink(sourcePath, targetPath) {
|
|
65
|
+
let stats;
|
|
66
|
+
try {
|
|
67
|
+
stats = await fs.lstat(targetPath);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
await fs.symlink(sourcePath, targetPath);
|
|
71
|
+
return "created";
|
|
72
|
+
}
|
|
73
|
+
if (stats.isSymbolicLink()) {
|
|
74
|
+
const current = await fs.readlink(targetPath);
|
|
75
|
+
if (current === sourcePath)
|
|
76
|
+
return "unchanged";
|
|
77
|
+
await fs.unlink(targetPath);
|
|
78
|
+
await fs.symlink(sourcePath, targetPath);
|
|
79
|
+
return "updated";
|
|
80
|
+
}
|
|
81
|
+
// Not a symlink — replace
|
|
82
|
+
await fs.unlink(targetPath);
|
|
83
|
+
await fs.symlink(sourcePath, targetPath);
|
|
84
|
+
return "updated";
|
|
85
|
+
}
|
|
86
|
+
async function syncCopy(sourcePath, targetPath) {
|
|
87
|
+
let targetStats;
|
|
88
|
+
try {
|
|
89
|
+
targetStats = await fs.stat(targetPath);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
await fs.copyFile(sourcePath, targetPath);
|
|
93
|
+
return "created";
|
|
94
|
+
}
|
|
95
|
+
const sourceStats = await fs.stat(sourcePath);
|
|
96
|
+
if (sourceStats.mtimeMs > targetStats.mtimeMs) {
|
|
97
|
+
await fs.copyFile(sourcePath, targetPath);
|
|
98
|
+
return "updated";
|
|
99
|
+
}
|
|
100
|
+
return "unchanged";
|
|
101
|
+
}
|
|
102
|
+
async function tryRemove(targetPath, strategyType) {
|
|
103
|
+
try {
|
|
104
|
+
const stats = await fs.lstat(targetPath);
|
|
105
|
+
if (strategyType === "symlink" && !stats.isSymbolicLink())
|
|
106
|
+
return false;
|
|
107
|
+
await fs.unlink(targetPath);
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async function removeOrphans(targetDir, itemNames, strategyType, result) {
|
|
115
|
+
try {
|
|
116
|
+
const entries = await fs.readdir(targetDir);
|
|
117
|
+
for (const entry of entries) {
|
|
118
|
+
// Derive item name from the filename to check against known items
|
|
119
|
+
if (itemNames.has(path.parse(entry).name))
|
|
120
|
+
continue;
|
|
121
|
+
const entryPath = path.join(targetDir, entry);
|
|
122
|
+
try {
|
|
123
|
+
const stats = await fs.lstat(entryPath);
|
|
124
|
+
if (strategyType === "symlink" && !stats.isSymbolicLink())
|
|
125
|
+
continue;
|
|
126
|
+
await fs.unlink(entryPath);
|
|
127
|
+
result.removed.push(entry);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// ignore
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// ignore
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=file-syncer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-syncer.js","sourceRoot":"","sources":["../../src/core/file-syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-syncer.test.d.ts","sourceRoot":"","sources":["../../src/core/file-syncer.test.ts"],"names":[],"mappings":""}
|