@mycelish/cli 0.1.0 → 0.2.1

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.
Files changed (307) hide show
  1. package/dist/__tests__/mcp-server.test.d.ts +2 -0
  2. package/dist/__tests__/mcp-server.test.d.ts.map +1 -0
  3. package/dist/__tests__/mcp-server.test.js +60 -0
  4. package/dist/__tests__/mcp-server.test.js.map +1 -0
  5. package/dist/__tests__/unified-item-state.integration.test.d.ts +7 -0
  6. package/dist/__tests__/unified-item-state.integration.test.d.ts.map +1 -0
  7. package/dist/__tests__/unified-item-state.integration.test.js +217 -0
  8. package/dist/__tests__/unified-item-state.integration.test.js.map +1 -0
  9. package/dist/commands/add.d.ts.map +1 -1
  10. package/dist/commands/add.js +9 -0
  11. package/dist/commands/add.js.map +1 -1
  12. package/dist/commands/disable.d.ts +8 -6
  13. package/dist/commands/disable.d.ts.map +1 -1
  14. package/dist/commands/disable.js +143 -136
  15. package/dist/commands/disable.js.map +1 -1
  16. package/dist/commands/disable.test.js +117 -23
  17. package/dist/commands/disable.test.js.map +1 -1
  18. package/dist/commands/doctor.d.ts +1 -1
  19. package/dist/commands/doctor.d.ts.map +1 -1
  20. package/dist/commands/doctor.js +1 -1
  21. package/dist/commands/doctor.js.map +1 -1
  22. package/dist/commands/enable.d.ts +8 -6
  23. package/dist/commands/enable.d.ts.map +1 -1
  24. package/dist/commands/enable.js +128 -133
  25. package/dist/commands/enable.js.map +1 -1
  26. package/dist/commands/enable.test.js +192 -24
  27. package/dist/commands/enable.test.js.map +1 -1
  28. package/dist/commands/health-checks/index.d.ts +2 -1
  29. package/dist/commands/health-checks/index.d.ts.map +1 -1
  30. package/dist/commands/health-checks/index.js +2 -1
  31. package/dist/commands/health-checks/index.js.map +1 -1
  32. package/dist/commands/health-checks/mcp-check.d.ts +5 -1
  33. package/dist/commands/health-checks/mcp-check.d.ts.map +1 -1
  34. package/dist/commands/health-checks/mcp-check.js +32 -1
  35. package/dist/commands/health-checks/mcp-check.js.map +1 -1
  36. package/dist/commands/health-checks/plugin-takeover-check.d.ts +15 -0
  37. package/dist/commands/health-checks/plugin-takeover-check.d.ts.map +1 -0
  38. package/dist/commands/health-checks/plugin-takeover-check.js +274 -0
  39. package/dist/commands/health-checks/plugin-takeover-check.js.map +1 -0
  40. package/dist/commands/health-checks/runner.d.ts.map +1 -1
  41. package/dist/commands/health-checks/runner.js +18 -0
  42. package/dist/commands/health-checks/runner.js.map +1 -1
  43. package/dist/commands/init.d.ts.map +1 -1
  44. package/dist/commands/init.js +40 -4
  45. package/dist/commands/init.js.map +1 -1
  46. package/dist/commands/mcp.d.ts +9 -0
  47. package/dist/commands/mcp.d.ts.map +1 -0
  48. package/dist/commands/mcp.js +17 -0
  49. package/dist/commands/mcp.js.map +1 -0
  50. package/dist/commands/migrate.d.ts.map +1 -1
  51. package/dist/commands/migrate.js +51 -0
  52. package/dist/commands/migrate.js.map +1 -1
  53. package/dist/commands/preset.test.js +7 -3
  54. package/dist/commands/preset.test.js.map +1 -1
  55. package/dist/commands/remove.d.ts +25 -23
  56. package/dist/commands/remove.d.ts.map +1 -1
  57. package/dist/commands/remove.js +118 -247
  58. package/dist/commands/remove.js.map +1 -1
  59. package/dist/commands/remove.test.js +152 -78
  60. package/dist/commands/remove.test.js.map +1 -1
  61. package/dist/commands/report.d.ts +8 -0
  62. package/dist/commands/report.d.ts.map +1 -0
  63. package/dist/commands/report.js +149 -0
  64. package/dist/commands/report.js.map +1 -0
  65. package/dist/commands/report.test.d.ts +2 -0
  66. package/dist/commands/report.test.d.ts.map +1 -0
  67. package/dist/commands/report.test.js +23 -0
  68. package/dist/commands/report.test.js.map +1 -0
  69. package/dist/commands/serve.d.ts.map +1 -1
  70. package/dist/commands/serve.js +1 -18
  71. package/dist/commands/serve.js.map +1 -1
  72. package/dist/commands/serve.test.js +2 -21
  73. package/dist/commands/serve.test.js.map +1 -1
  74. package/dist/commands/status.d.ts +9 -4
  75. package/dist/commands/status.d.ts.map +1 -1
  76. package/dist/commands/status.js +81 -10
  77. package/dist/commands/status.js.map +1 -1
  78. package/dist/commands/status.test.js +92 -0
  79. package/dist/commands/status.test.js.map +1 -1
  80. package/dist/commands/sync.d.ts.map +1 -1
  81. package/dist/commands/sync.js +138 -7
  82. package/dist/commands/sync.js.map +1 -1
  83. package/dist/commands/sync.test.js +91 -6
  84. package/dist/commands/sync.test.js.map +1 -1
  85. package/dist/core/adapter-base.d.ts +2 -0
  86. package/dist/core/adapter-base.d.ts.map +1 -1
  87. package/dist/core/adapter-base.js +2 -1
  88. package/dist/core/adapter-base.js.map +1 -1
  89. package/dist/core/auto-adapter.d.ts.map +1 -1
  90. package/dist/core/auto-adapter.js +58 -3
  91. package/dist/core/auto-adapter.js.map +1 -1
  92. package/dist/core/auto-adapter.test.js +155 -0
  93. package/dist/core/auto-adapter.test.js.map +1 -1
  94. package/dist/core/config-merger.d.ts +6 -5
  95. package/dist/core/config-merger.d.ts.map +1 -1
  96. package/dist/core/config-merger.js +119 -136
  97. package/dist/core/config-merger.js.map +1 -1
  98. package/dist/core/config-merger.test.d.ts +1 -1
  99. package/dist/core/config-merger.test.js +72 -88
  100. package/dist/core/config-merger.test.js.map +1 -1
  101. package/dist/core/file-syncer.d.ts +33 -0
  102. package/dist/core/file-syncer.d.ts.map +1 -0
  103. package/dist/core/file-syncer.js +138 -0
  104. package/dist/core/file-syncer.js.map +1 -0
  105. package/dist/core/file-syncer.test.d.ts +2 -0
  106. package/dist/core/file-syncer.test.d.ts.map +1 -0
  107. package/dist/core/file-syncer.test.js +131 -0
  108. package/dist/core/file-syncer.test.js.map +1 -0
  109. package/dist/core/global-tracer.d.ts +4 -0
  110. package/dist/core/global-tracer.d.ts.map +1 -0
  111. package/dist/core/global-tracer.js +36 -0
  112. package/dist/core/global-tracer.js.map +1 -0
  113. package/dist/core/item-loader.d.ts +18 -0
  114. package/dist/core/item-loader.d.ts.map +1 -0
  115. package/dist/core/item-loader.js +40 -0
  116. package/dist/core/item-loader.js.map +1 -0
  117. package/dist/core/item-loader.test.d.ts +2 -0
  118. package/dist/core/item-loader.test.d.ts.map +1 -0
  119. package/dist/core/item-loader.test.js +52 -0
  120. package/dist/core/item-loader.test.js.map +1 -0
  121. package/dist/core/manifest-migrator.d.ts +15 -0
  122. package/dist/core/manifest-migrator.d.ts.map +1 -0
  123. package/dist/core/manifest-migrator.js +38 -0
  124. package/dist/core/manifest-migrator.js.map +1 -0
  125. package/dist/core/manifest-migrator.test.d.ts +2 -0
  126. package/dist/core/manifest-migrator.test.d.ts.map +1 -0
  127. package/dist/core/manifest-migrator.test.js +53 -0
  128. package/dist/core/manifest-migrator.test.js.map +1 -0
  129. package/dist/core/manifest-state.d.ts +117 -0
  130. package/dist/core/manifest-state.d.ts.map +1 -0
  131. package/dist/core/manifest-state.js +218 -0
  132. package/dist/core/manifest-state.js.map +1 -0
  133. package/dist/core/manifest-state.test.d.ts +2 -0
  134. package/dist/core/manifest-state.test.d.ts.map +1 -0
  135. package/dist/core/manifest-state.test.js +130 -0
  136. package/dist/core/manifest-state.test.js.map +1 -0
  137. package/dist/core/marketplace-registry.d.ts +0 -1
  138. package/dist/core/marketplace-registry.d.ts.map +1 -1
  139. package/dist/core/marketplace-registry.js +0 -16
  140. package/dist/core/marketplace-registry.js.map +1 -1
  141. package/dist/core/marketplace-registry.test.js +1 -14
  142. package/dist/core/marketplace-registry.test.js.map +1 -1
  143. package/dist/core/mcp-injector.d.ts +2 -2
  144. package/dist/core/mcp-injector.d.ts.map +1 -1
  145. package/dist/core/mcp-injector.js +6 -6
  146. package/dist/core/mcp-injector.js.map +1 -1
  147. package/dist/core/mcp-injector.test.js +33 -26
  148. package/dist/core/mcp-injector.test.js.map +1 -1
  149. package/dist/core/mcp-registry.js +1 -1
  150. package/dist/core/mcp-registry.js.map +1 -1
  151. package/dist/core/mcp-registry.test.js +1 -1
  152. package/dist/core/mcp-registry.test.js.map +1 -1
  153. package/dist/core/memory-scoper.test.js +2 -13
  154. package/dist/core/memory-scoper.test.js.map +1 -1
  155. package/dist/core/migrator/executor.js +2 -2
  156. package/dist/core/migrator/executor.js.map +1 -1
  157. package/dist/core/plugin-state.d.ts +7 -0
  158. package/dist/core/plugin-state.d.ts.map +1 -0
  159. package/dist/core/plugin-state.js +88 -0
  160. package/dist/core/plugin-state.js.map +1 -0
  161. package/dist/core/plugin-takeover.d.ts +50 -0
  162. package/dist/core/plugin-takeover.d.ts.map +1 -0
  163. package/dist/core/plugin-takeover.js +263 -0
  164. package/dist/core/plugin-takeover.js.map +1 -0
  165. package/dist/core/plugin-takeover.test.d.ts +2 -0
  166. package/dist/core/plugin-takeover.test.d.ts.map +1 -0
  167. package/dist/core/plugin-takeover.test.js +243 -0
  168. package/dist/core/plugin-takeover.test.js.map +1 -0
  169. package/dist/core/self-register.d.ts +5 -0
  170. package/dist/core/self-register.d.ts.map +1 -0
  171. package/dist/core/self-register.js +43 -0
  172. package/dist/core/self-register.js.map +1 -0
  173. package/dist/core/self-register.test.d.ts +2 -0
  174. package/dist/core/self-register.test.d.ts.map +1 -0
  175. package/dist/core/self-register.test.js +77 -0
  176. package/dist/core/self-register.test.js.map +1 -0
  177. package/dist/core/smart-memory.d.ts +5 -5
  178. package/dist/core/smart-memory.d.ts.map +1 -1
  179. package/dist/core/smart-memory.js +1 -10
  180. package/dist/core/smart-memory.js.map +1 -1
  181. package/dist/core/smart-memory.test.js +3 -30
  182. package/dist/core/smart-memory.test.js.map +1 -1
  183. package/dist/core/state-verifier.d.ts +36 -0
  184. package/dist/core/state-verifier.d.ts.map +1 -0
  185. package/dist/core/state-verifier.js +159 -0
  186. package/dist/core/state-verifier.js.map +1 -0
  187. package/dist/core/state-verifier.test.d.ts +2 -0
  188. package/dist/core/state-verifier.test.d.ts.map +1 -0
  189. package/dist/core/state-verifier.test.js +188 -0
  190. package/dist/core/state-verifier.test.js.map +1 -0
  191. package/dist/core/symlink-manager.d.ts +1 -1
  192. package/dist/core/symlink-manager.d.ts.map +1 -1
  193. package/dist/core/symlink-manager.js +1 -1
  194. package/dist/core/symlink-manager.js.map +1 -1
  195. package/dist/core/symlink-manager.test.js +4 -4
  196. package/dist/core/symlink-manager.test.js.map +1 -1
  197. package/dist/core/sync-writer.d.ts +2 -1
  198. package/dist/core/sync-writer.d.ts.map +1 -1
  199. package/dist/core/sync-writer.js +108 -22
  200. package/dist/core/sync-writer.js.map +1 -1
  201. package/dist/core/sync-writer.test.js +31 -0
  202. package/dist/core/sync-writer.test.js.map +1 -1
  203. package/dist/core/tool-adapter.d.ts.map +1 -1
  204. package/dist/core/tool-adapter.js +45 -6
  205. package/dist/core/tool-adapter.js.map +1 -1
  206. package/dist/core/trace-store.d.ts +36 -0
  207. package/dist/core/trace-store.d.ts.map +1 -0
  208. package/dist/core/trace-store.js +145 -0
  209. package/dist/core/trace-store.js.map +1 -0
  210. package/dist/core/trace-store.test.d.ts +2 -0
  211. package/dist/core/trace-store.test.d.ts.map +1 -0
  212. package/dist/core/trace-store.test.js +102 -0
  213. package/dist/core/trace-store.test.js.map +1 -0
  214. package/dist/core/tracer.d.ts +27 -0
  215. package/dist/core/tracer.d.ts.map +1 -0
  216. package/dist/core/tracer.js +62 -0
  217. package/dist/core/tracer.js.map +1 -0
  218. package/dist/core/tracer.test.d.ts +2 -0
  219. package/dist/core/tracer.test.d.ts.map +1 -0
  220. package/dist/core/tracer.test.js +54 -0
  221. package/dist/core/tracer.test.js.map +1 -0
  222. package/dist/core/watcher.d.ts.map +1 -1
  223. package/dist/core/watcher.js +9 -2
  224. package/dist/core/watcher.js.map +1 -1
  225. package/dist/core/watcher.test.js +9 -0
  226. package/dist/core/watcher.test.js.map +1 -1
  227. package/dist/dashboard/assets/index-BjDoq18L.js +153 -0
  228. package/dist/dashboard/assets/index-quBYeTeA.css +1 -0
  229. package/dist/dashboard/index.html +14 -0
  230. package/dist/index.js +4 -0
  231. package/dist/index.js.map +1 -1
  232. package/dist/mcp/prompts.d.ts +3 -0
  233. package/dist/mcp/prompts.d.ts.map +1 -0
  234. package/dist/mcp/prompts.js +40 -0
  235. package/dist/mcp/prompts.js.map +1 -0
  236. package/dist/mcp/resources.d.ts +6 -0
  237. package/dist/mcp/resources.d.ts.map +1 -0
  238. package/dist/mcp/resources.js +24 -0
  239. package/dist/mcp/resources.js.map +1 -0
  240. package/dist/mcp/server.d.ts +7 -0
  241. package/dist/mcp/server.d.ts.map +1 -0
  242. package/dist/mcp/server.js +27 -0
  243. package/dist/mcp/server.js.map +1 -0
  244. package/dist/mcp/server.test.d.ts +2 -0
  245. package/dist/mcp/server.test.d.ts.map +1 -0
  246. package/dist/mcp/server.test.js +9 -0
  247. package/dist/mcp/server.test.js.map +1 -0
  248. package/dist/mcp/tools/config-tools.d.ts +3 -0
  249. package/dist/mcp/tools/config-tools.d.ts.map +1 -0
  250. package/dist/mcp/tools/config-tools.js +80 -0
  251. package/dist/mcp/tools/config-tools.js.map +1 -0
  252. package/dist/mcp/tools/config-tools.test.d.ts +2 -0
  253. package/dist/mcp/tools/config-tools.test.d.ts.map +1 -0
  254. package/dist/mcp/tools/config-tools.test.js +207 -0
  255. package/dist/mcp/tools/config-tools.test.js.map +1 -0
  256. package/dist/mcp/tools/item-tools.d.ts +3 -0
  257. package/dist/mcp/tools/item-tools.d.ts.map +1 -0
  258. package/dist/mcp/tools/item-tools.js +95 -0
  259. package/dist/mcp/tools/item-tools.js.map +1 -0
  260. package/dist/mcp/tools/item-tools.test.d.ts +2 -0
  261. package/dist/mcp/tools/item-tools.test.d.ts.map +1 -0
  262. package/dist/mcp/tools/item-tools.test.js +184 -0
  263. package/dist/mcp/tools/item-tools.test.js.map +1 -0
  264. package/dist/mcp/tools/marketplace-tools.d.ts +3 -0
  265. package/dist/mcp/tools/marketplace-tools.d.ts.map +1 -0
  266. package/dist/mcp/tools/marketplace-tools.js +35 -0
  267. package/dist/mcp/tools/marketplace-tools.js.map +1 -0
  268. package/dist/mcp/tools/marketplace-tools.test.d.ts +2 -0
  269. package/dist/mcp/tools/marketplace-tools.test.d.ts.map +1 -0
  270. package/dist/mcp/tools/marketplace-tools.test.js +48 -0
  271. package/dist/mcp/tools/marketplace-tools.test.js.map +1 -0
  272. package/dist/mcp/tools/memory-tools.d.ts +3 -0
  273. package/dist/mcp/tools/memory-tools.d.ts.map +1 -0
  274. package/dist/mcp/tools/memory-tools.js +68 -0
  275. package/dist/mcp/tools/memory-tools.js.map +1 -0
  276. package/dist/mcp/tools/memory-tools.test.d.ts +2 -0
  277. package/dist/mcp/tools/memory-tools.test.d.ts.map +1 -0
  278. package/dist/mcp/tools/memory-tools.test.js +144 -0
  279. package/dist/mcp/tools/memory-tools.test.js.map +1 -0
  280. package/dist/mcp/tools/observe-tools.d.ts +3 -0
  281. package/dist/mcp/tools/observe-tools.d.ts.map +1 -0
  282. package/dist/mcp/tools/observe-tools.js +37 -0
  283. package/dist/mcp/tools/observe-tools.js.map +1 -0
  284. package/dist/mcp/tools/observe-tools.test.d.ts +2 -0
  285. package/dist/mcp/tools/observe-tools.test.d.ts.map +1 -0
  286. package/dist/mcp/tools/observe-tools.test.js +71 -0
  287. package/dist/mcp/tools/observe-tools.test.js.map +1 -0
  288. package/dist/routes/plugins.d.ts.map +1 -1
  289. package/dist/routes/plugins.js +63 -37
  290. package/dist/routes/plugins.js.map +1 -1
  291. package/dist/routes/plugins.test.d.ts +2 -0
  292. package/dist/routes/plugins.test.d.ts.map +1 -0
  293. package/dist/routes/plugins.test.js +56 -0
  294. package/dist/routes/plugins.test.js.map +1 -0
  295. package/dist/routes/remove.d.ts.map +1 -1
  296. package/dist/routes/remove.js +6 -15
  297. package/dist/routes/remove.js.map +1 -1
  298. package/dist/routes/state.d.ts.map +1 -1
  299. package/dist/routes/state.js +35 -70
  300. package/dist/routes/state.js.map +1 -1
  301. package/dist/routes/sync.d.ts.map +1 -1
  302. package/dist/routes/sync.js +10 -3
  303. package/dist/routes/sync.js.map +1 -1
  304. package/dist/server.d.ts.map +1 -1
  305. package/dist/server.js +24 -5
  306. package/dist/server.js.map +1 -1
  307. package/package.json +7 -3
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-server.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mcp-server.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Integration test for the MCP server factory.
3
+ * Verifies that all tool/resource/prompt registrations succeed without errors.
4
+ */
5
+ import { describe, it, expect, vi } from "vitest";
6
+ // Mock business logic modules to avoid filesystem access
7
+ vi.mock("../core/config-merger.js", () => ({
8
+ loadAndMergeAllConfigs: vi.fn().mockResolvedValue({
9
+ mcps: {},
10
+ skills: {},
11
+ memory: { scopes: {} },
12
+ sources: {},
13
+ }),
14
+ loadGlobalConfig: vi.fn().mockResolvedValue({ mcps: {} }),
15
+ loadProjectConfig: vi.fn().mockResolvedValue({ mcps: {} }),
16
+ }));
17
+ vi.mock("../core/sync-writer.js", () => ({
18
+ syncToTool: vi.fn().mockResolvedValue({
19
+ configPath: "/test",
20
+ backupPath: "/test.bak",
21
+ sectionsUpdated: ["mcps"],
22
+ success: true,
23
+ }),
24
+ }));
25
+ vi.mock("../core/global-tracer.js", () => ({
26
+ getTracer: vi.fn().mockReturnValue({
27
+ createTrace: vi.fn().mockReturnValue({
28
+ info: vi.fn(),
29
+ warn: vi.fn(),
30
+ error: vi.fn(),
31
+ debug: vi.fn(),
32
+ }),
33
+ query: vi.fn().mockReturnValue([]),
34
+ }),
35
+ }));
36
+ vi.mock("../core/marketplace-registry.js", () => ({
37
+ loadMarketplaceRegistry: vi.fn().mockResolvedValue({}),
38
+ }));
39
+ vi.mock("../commands/health-checks/index.js", () => ({
40
+ runAllChecks: vi.fn().mockResolvedValue({
41
+ success: true,
42
+ checks: [],
43
+ summary: { passed: 0, failed: 0, warnings: 0 },
44
+ }),
45
+ formatDoctorJson: vi.fn().mockReturnValue("{}"),
46
+ }));
47
+ describe("MCP Server Integration", () => {
48
+ it("creates server with all registrations without throwing", async () => {
49
+ const { createMyceliumMcpServer } = await import("../mcp/server.js");
50
+ const server = createMyceliumMcpServer();
51
+ expect(server).toBeDefined();
52
+ });
53
+ it("server has resource, prompt, and tool handlers registered", async () => {
54
+ const { createMyceliumMcpServer } = await import("../mcp/server.js");
55
+ const server = createMyceliumMcpServer();
56
+ // The underlying Server instance should exist
57
+ expect(server.server).toBeDefined();
58
+ });
59
+ });
60
+ //# sourceMappingURL=mcp-server.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.test.js","sourceRoot":"","sources":["../../src/__tests__/mcp-server.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Integration tests for unified item state management
3
+ * Verifies that state: "enabled" | "disabled" | "deleted" works correctly
4
+ * across the entire sync pipeline, symlink manager, and manifest migration.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=unified-item-state.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-item-state.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/unified-item-state.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Integration tests for unified item state management
3
+ * Verifies that state: "enabled" | "disabled" | "deleted" works correctly
4
+ * across the entire sync pipeline, symlink manager, and manifest migration.
5
+ */
6
+ import { describe, it, expect, beforeEach, vi } from "vitest";
7
+ // ---------------------------------------------------------------------------
8
+ // Mocks
9
+ // ---------------------------------------------------------------------------
10
+ vi.mock("../core/config-merger.js", () => ({
11
+ loadAndMergeAllConfigs: vi.fn(),
12
+ loadGlobalConfig: vi.fn().mockResolvedValue({}),
13
+ loadProjectConfig: vi.fn().mockResolvedValue({}),
14
+ }));
15
+ vi.mock("../core/conflict-detector.js", () => ({
16
+ detectConflicts: vi.fn().mockReturnValue([]),
17
+ }));
18
+ vi.mock("../core/symlink-manager.js", () => ({
19
+ syncSkillsToTool: vi.fn().mockResolvedValue({
20
+ success: true,
21
+ created: [],
22
+ updated: [],
23
+ removed: [],
24
+ unchanged: [],
25
+ errors: [],
26
+ }),
27
+ }));
28
+ vi.mock("../core/mcp-injector.js", () => ({
29
+ filterMcpsForTool: vi.fn(),
30
+ resolveEnvVarsInMcps: vi.fn(),
31
+ }));
32
+ const mockSyncAll = vi.fn().mockResolvedValue({ success: true });
33
+ vi.mock("../core/tool-adapter.js", () => ({
34
+ getAdapter: vi.fn(() => ({
35
+ syncAll: mockSyncAll,
36
+ syncOne: vi.fn().mockResolvedValue({ success: true }),
37
+ })),
38
+ }));
39
+ vi.mock("../core/memory-scoper.js", () => ({
40
+ syncMemoryToTool: vi.fn().mockResolvedValue({ success: true, filesWritten: 0 }),
41
+ getMemoryFilesForTool: vi.fn().mockResolvedValue([]),
42
+ }));
43
+ // Imports after mocks
44
+ import { syncTool } from "../commands/sync.js";
45
+ import { syncSkillsToTool } from "../core/symlink-manager.js";
46
+ import { filterMcpsForTool, resolveEnvVarsInMcps, } from "../core/mcp-injector.js";
47
+ import { migrateManifestV1ToV2 } from "../core/manifest-migrator.js";
48
+ // ---------------------------------------------------------------------------
49
+ // Helpers
50
+ // ---------------------------------------------------------------------------
51
+ function baseMergedConfig(mcps = {}, skills = {}) {
52
+ return {
53
+ mcps,
54
+ skills,
55
+ agents: {},
56
+ rules: {},
57
+ commands: {},
58
+ memory: { scopes: { shared: { syncTo: [], path: "", files: [] }, coding: { syncTo: [], path: "", files: [] }, personal: { syncTo: [], path: "", files: [] } } },
59
+ sources: {},
60
+ };
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Tests
64
+ // ---------------------------------------------------------------------------
65
+ describe("unified item state integration", () => {
66
+ const toolId = "claude-code";
67
+ beforeEach(() => {
68
+ vi.clearAllMocks();
69
+ // Default: filterMcpsForTool passes through only enabled MCPs (real behaviour)
70
+ filterMcpsForTool.mockImplementation((mcps, _toolId) => {
71
+ const result = {};
72
+ for (const [name, cfg] of Object.entries(mcps)) {
73
+ if (cfg.state && cfg.state !== "enabled")
74
+ continue;
75
+ result[name] = cfg;
76
+ }
77
+ return result;
78
+ });
79
+ resolveEnvVarsInMcps.mockImplementation((mcps) => mcps);
80
+ });
81
+ // -----------------------------------------------------------------------
82
+ // MCP state filtering through sync pipeline
83
+ // -----------------------------------------------------------------------
84
+ it("sync skips MCPs with state:disabled", async () => {
85
+ const config = baseMergedConfig({
86
+ foo: { command: "node", args: ["foo.js"], state: "disabled" },
87
+ });
88
+ await syncTool(toolId, config);
89
+ // The adapter should receive an empty MCP set
90
+ expect(mockSyncAll).toHaveBeenCalledWith({});
91
+ });
92
+ it("sync skips MCPs with state:deleted", async () => {
93
+ const config = baseMergedConfig({
94
+ foo: { command: "node", args: ["foo.js"], state: "deleted" },
95
+ });
96
+ await syncTool(toolId, config);
97
+ expect(mockSyncAll).toHaveBeenCalledWith({});
98
+ });
99
+ it("sync includes MCPs with state:enabled", async () => {
100
+ const mcp = { command: "node", args: ["foo.js"], state: "enabled" };
101
+ const config = baseMergedConfig({ foo: mcp });
102
+ await syncTool(toolId, config);
103
+ const passedMcps = mockSyncAll.mock.calls[0][0];
104
+ expect(passedMcps).toHaveProperty("foo");
105
+ expect(passedMcps.foo.command).toBe("node");
106
+ });
107
+ it("sync includes MCPs with state:undefined (default enabled)", async () => {
108
+ const mcp = { command: "node", args: ["foo.js"] };
109
+ const config = baseMergedConfig({ foo: mcp });
110
+ await syncTool(toolId, config);
111
+ const passedMcps = mockSyncAll.mock.calls[0][0];
112
+ expect(passedMcps).toHaveProperty("foo");
113
+ });
114
+ // -----------------------------------------------------------------------
115
+ // Skills with state filtering through symlink manager
116
+ // -----------------------------------------------------------------------
117
+ it("sync skips skills with state:disabled in symlink manager", async () => {
118
+ const config = baseMergedConfig({}, {
119
+ "my-skill": {
120
+ name: "my-skill",
121
+ path: "/tmp/skills/my-skill",
122
+ manifest: { name: "my-skill", state: "disabled" },
123
+ },
124
+ });
125
+ await syncTool(toolId, config);
126
+ // syncSkillsToTool should be called — the symlink manager itself filters
127
+ expect(syncSkillsToTool).toHaveBeenCalled();
128
+ const passedSkills = syncSkillsToTool.mock.calls[0][0];
129
+ // The skill is passed; the symlink-manager is responsible for skipping disabled ones
130
+ expect(passedSkills).toHaveLength(1);
131
+ expect(passedSkills[0].manifest.state).toBe("disabled");
132
+ });
133
+ // -----------------------------------------------------------------------
134
+ // End-to-end: disable then sync excludes the item
135
+ // -----------------------------------------------------------------------
136
+ it("disable then sync excludes the item", async () => {
137
+ // Simulate: user disables "playwright" MCP — state becomes "disabled"
138
+ const config = baseMergedConfig({
139
+ playwright: { command: "npx", args: ["@anthropic/mcp-playwright"], state: "disabled" },
140
+ whark: { command: "uvx", args: ["whark-mcp"], state: "enabled" },
141
+ });
142
+ await syncTool(toolId, config);
143
+ const passedMcps = mockSyncAll.mock.calls[0][0];
144
+ expect(passedMcps).not.toHaveProperty("playwright");
145
+ expect(passedMcps).toHaveProperty("whark");
146
+ });
147
+ // -----------------------------------------------------------------------
148
+ // End-to-end: remove (state:deleted) then sync excludes the item
149
+ // -----------------------------------------------------------------------
150
+ it("remove then sync excludes the item", async () => {
151
+ const config = baseMergedConfig({
152
+ removed: { command: "node", args: ["gone.js"], state: "deleted" },
153
+ active: { command: "node", args: ["here.js"], state: "enabled" },
154
+ });
155
+ await syncTool(toolId, config);
156
+ const passedMcps = mockSyncAll.mock.calls[0][0];
157
+ expect(passedMcps).not.toHaveProperty("removed");
158
+ expect(passedMcps).toHaveProperty("active");
159
+ });
160
+ // -----------------------------------------------------------------------
161
+ // Enable restores a deleted item
162
+ // -----------------------------------------------------------------------
163
+ it("enable restores a deleted item", () => {
164
+ // Simulating what the enable command does: set state from "deleted" to "enabled"
165
+ const item = { command: "node", args: ["restored.js"], state: "deleted" };
166
+ // Simulate enable action
167
+ item.state = "enabled";
168
+ expect(item.state).toBe("enabled");
169
+ // Now verify it would pass through the filter
170
+ const mcps = { restored: item };
171
+ const filtered = {};
172
+ for (const [name, cfg] of Object.entries(mcps)) {
173
+ if (cfg.state && cfg.state !== "enabled")
174
+ continue;
175
+ filtered[name] = cfg;
176
+ }
177
+ expect(filtered).toHaveProperty("restored");
178
+ });
179
+ // -----------------------------------------------------------------------
180
+ // Manifest migration: enabled:false -> state:disabled
181
+ // -----------------------------------------------------------------------
182
+ it("manifest migration converts enabled:false to state:disabled", () => {
183
+ const v1 = {
184
+ skills: {
185
+ foo: { name: "foo", enabled: false },
186
+ bar: { name: "bar", enabled: true },
187
+ },
188
+ mcps: {
189
+ pg: { command: "node", args: ["pg.js"], enabled: false },
190
+ },
191
+ };
192
+ const v2 = migrateManifestV1ToV2(v1);
193
+ const skills = v2.skills;
194
+ expect(skills.foo.state).toBe("disabled");
195
+ expect(skills.foo).not.toHaveProperty("enabled");
196
+ expect(skills.bar.state).toBe("enabled");
197
+ expect(skills.bar).not.toHaveProperty("enabled");
198
+ const mcps = v2.mcps;
199
+ expect(mcps.pg.state).toBe("disabled");
200
+ expect(mcps.pg).not.toHaveProperty("enabled");
201
+ });
202
+ // -----------------------------------------------------------------------
203
+ // Mixed states: only enabled items pass through
204
+ // -----------------------------------------------------------------------
205
+ it("mixed states: only enabled and undefined-state items pass through filter", async () => {
206
+ const config = baseMergedConfig({
207
+ a: { command: "node", args: ["a.js"], state: "enabled" },
208
+ b: { command: "node", args: ["b.js"], state: "disabled" },
209
+ c: { command: "node", args: ["c.js"], state: "deleted" },
210
+ d: { command: "node", args: ["d.js"] }, // undefined = enabled
211
+ });
212
+ await syncTool(toolId, config);
213
+ const passedMcps = mockSyncAll.mock.calls[0][0];
214
+ expect(Object.keys(passedMcps).sort()).toEqual(["a", "d"]);
215
+ });
216
+ });
217
+ //# sourceMappingURL=unified-item-state.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-item-state.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/unified-item-state.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgG1F;;GAEG;AACH,eAAO,MAAM,UAAU,SAGE,CAAC"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAyG1F;;GAEG;AACH,eAAO,MAAM,UAAU,SAGE,CAAC"}
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { Command } from "commander";
14
14
  import { addSkill, addMcp, fetchMcpFromRegistry, } from "../core/add-helpers.js";
15
+ import { getTracer } from "../core/global-tracer.js";
15
16
  export { parseSkillSource, addSkill, parseMcpName, addMcp } from "../core/add-helpers.js";
16
17
  /**
17
18
  * skill subcommand: mycelium add skill <source>
@@ -22,14 +23,18 @@ const skillCommand = new Command("skill")
22
23
  .option("-g, --global", "Add to global configuration (~/.mycelium/)")
23
24
  .option("-f, --force", "Overwrite existing skill")
24
25
  .action(async (source, options) => {
26
+ const log = getTracer().createTrace("add");
27
+ log.info({ scope: "skill", op: "add", msg: `Adding skill from ${source}`, item: source });
25
28
  const result = await addSkill(source, {
26
29
  global: options.global ?? true,
27
30
  force: options.force ?? false,
28
31
  });
29
32
  if (result.success) {
33
+ log.info({ scope: "skill", op: "add", msg: result.message ?? "Added", item: source });
30
34
  console.log(result.message);
31
35
  }
32
36
  else {
37
+ log.error({ scope: "skill", op: "add", msg: result.error ?? "Failed", item: source, error: result.error });
33
38
  console.error(`Error: ${result.error}`);
34
39
  process.exit(1);
35
40
  }
@@ -60,6 +65,8 @@ const mcpCommand = new Command("mcp")
60
65
  options.env = registryConfig.env;
61
66
  }
62
67
  }
68
+ const log = getTracer().createTrace("add");
69
+ log.info({ scope: "mcp", op: "add", msg: `Adding MCP ${name}`, item: name });
63
70
  if (!options.command) {
64
71
  console.error("Error: --command is required (or use --from-registry)");
65
72
  process.exit(1);
@@ -82,9 +89,11 @@ const mcpCommand = new Command("mcp")
82
89
  force: options.force ?? false,
83
90
  });
84
91
  if (result.success) {
92
+ log.info({ scope: "mcp", op: "add", msg: result.message ?? "Added", item: name });
85
93
  console.log(result.message);
86
94
  }
87
95
  else {
96
+ log.error({ scope: "mcp", op: "add", msg: result.error ?? "Failed", item: name, error: result.error });
88
97
  console.error(`Error: ${result.error}`);
89
98
  process.exit(1);
90
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Disable Command Module
3
3
  *
4
- * Disable a skill or MCP globally or for a specific tool:
5
- * - mycelium disable <name> # Disable skill/MCP at project level
6
- * - mycelium disable <name> --global # Disable skill/MCP globally
7
- * - mycelium disable <name> --tool <id> # Disable skill/MCP for specific tool only
4
+ * Disable a skill, MCP, hook, or memory item globally or for a specific tool:
5
+ * - mycelium disable <name> # Disable item at project level
6
+ * - mycelium disable <name> --global # Disable item globally
7
+ * - mycelium disable <name> --tool <id> # Disable item for specific tool only
8
8
  */
9
9
  import { Command } from "commander";
10
10
  import { type ToolId } from "@mycelish/core";
11
+ import { type ItemType } from "../core/manifest-state.js";
11
12
  export interface DisableOptions {
12
13
  name: string;
13
14
  tool?: ToolId;
@@ -18,15 +19,16 @@ export interface DisableOptions {
18
19
  export interface DisableResult {
19
20
  success: boolean;
20
21
  name: string;
21
- type?: "skill" | "mcp";
22
+ type?: ItemType;
22
23
  level?: "global" | "project";
23
24
  tool?: ToolId;
24
25
  alreadyDisabled?: boolean;
26
+ pluginTakeover?: boolean;
25
27
  message?: string;
26
28
  error?: string;
27
29
  }
28
30
  /**
29
- * Disable a skill or MCP
31
+ * Disable a skill, MCP, hook, or memory item
30
32
  */
31
33
  export declare function disableSkillOrMcp(options: DisableOptions): Promise<DisableResult>;
32
34
  export declare const disableCommand: Command;
@@ -1 +1 @@
1
- {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,KAAK,MAAM,EAA2C,MAAM,gBAAgB,CAAC;AAMtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmGvF;AAMD,eAAO,MAAM,cAAc,SAsBvB,CAAC"}
1
+ {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EASL,KAAK,QAAQ,EACd,MAAM,2BAA2B,CAAC;AAQnC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwJvF;AAeD,eAAO,MAAM,cAAc,SAyBvB,CAAC"}