@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 @@
1
+ .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--animate-fade-in:fade-in .25s ease-out forwards;--animate-fade-out:fade-out .2s ease-in forwards;--animate-slide-in-right:slide-in-right .25s ease-out forwards;--animate-slide-out-right:slide-out-right .2s ease-in forwards;--color-border:hsl(var(--border));--color-background:hsl(var(--background));--color-foreground:hsl(var(--foreground));--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-secondary:hsl(var(--secondary));--color-secondary-foreground:hsl(var(--secondary-foreground));--color-destructive:hsl(var(--destructive));--color-destructive-foreground:hsl(var(--destructive-foreground));--color-muted:hsl(var(--muted));--color-muted-foreground:hsl(var(--muted-foreground));--color-card:hsl(var(--card));--color-card-foreground:hsl(var(--card-foreground));--color-status-synced:#22c55e;--color-status-pending:#eab308;--color-status-error:#ef4444;--color-status-disabled:#6b7280}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--primary:217.2 91.2% 59.8%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:224.3 76.3% 48%;--radius:.5rem}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground);font-feature-settings:"rlig" 1,"calt" 1}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.right-0{right:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.\!h-2{height:calc(var(--spacing)*2)!important}.\!h-3{height:calc(var(--spacing)*3)!important}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\[500px\]{height:500px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.\!w-2{width:calc(var(--spacing)*2)!important}.\!w-3{width:calc(var(--spacing)*3)!important}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-20{width:calc(var(--spacing)*20)}.w-80{width:calc(var(--spacing)*80)}.w-96{width:calc(var(--spacing)*96)}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[110px\]{min-width:110px}.min-w-\[130px\]{min-width:130px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-3{--tw-translate-x:calc(var(--spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-fade-out{animation:var(--animate-fade-out)}.animate-pulse{animation:var(--animate-pulse)}.animate-slide-in-right{animation:var(--animate-slide-in-right)}.animate-slide-out-right{animation:var(--animate-slide-out-right)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-border{border-color:var(--color-border)!important}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/60{border-color:color-mix(in oklab,var(--color-amber-500)60%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.border-blue-500\/60{border-color:#3080ff99}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/60{border-color:color-mix(in oklab,var(--color-blue-500)60%,transparent)}}.border-border\/50{border-color:color-mix(in srgb,hsl(var(--border))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-destructive\/30{border-color:color-mix(in srgb,hsl(var(--destructive))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--color-destructive)30%,transparent)}}.border-destructive\/50{border-color:color-mix(in srgb,hsl(var(--destructive))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--color-destructive)50%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/30{border-color:#6a72824d}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/30{border-color:color-mix(in oklab,var(--color-gray-500)30%,transparent)}}.border-gray-600{border-color:var(--color-gray-600)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500)30%,transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.border-green-500\/40{border-color:color-mix(in oklab,var(--color-green-500)40%,transparent)}}.border-muted{border-color:var(--color-muted)}.border-muted-foreground\/40{border-color:color-mix(in srgb,hsl(var(--muted-foreground))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/40{border-color:color-mix(in oklab,var(--color-muted-foreground)40%,transparent)}}.border-pink-500\/30{border-color:#f6339a4d}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/30{border-color:color-mix(in oklab,var(--color-pink-500)30%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary\/40{border-color:color-mix(in srgb,hsl(var(--primary))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.border-primary\/60{border-color:color-mix(in srgb,hsl(var(--primary))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500)30%,transparent)}}.border-purple-500\/60{border-color:#ac4bff99}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/60{border-color:color-mix(in oklab,var(--color-purple-500)60%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.border-teal-500\/30{border-color:#00baa74d}@supports (color:color-mix(in lab,red,red)){.border-teal-500\/30{border-color:color-mix(in oklab,var(--color-teal-500)30%,transparent)}}.border-teal-500\/60{border-color:#00baa799}@supports (color:color-mix(in lab,red,red)){.border-teal-500\/60{border-color:color-mix(in oklab,var(--color-teal-500)60%,transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.\!bg-card{background-color:var(--color-card)!important}.\!bg-card\/80{background-color:color-mix(in srgb,hsl(var(--card))80%,transparent)!important}@supports (color:color-mix(in lab,red,red)){.\!bg-card\/80{background-color:color-mix(in oklab,var(--color-card)80%,transparent)!important}}.\!bg-muted{background-color:var(--color-muted)!important}.\!bg-primary{background-color:var(--color-primary)!important}.bg-\[\#0c1529\]{background-color:#0c1529}.bg-\[\#1a1408\]{background-color:#1a1408}.bg-\[\#081a1a\]{background-color:#081a1a}.bg-\[\#150c29\]{background-color:#150c29}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-card\/50{background-color:color-mix(in srgb,hsl(var(--card))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--color-card)50%,transparent)}}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/10{background-color:color-mix(in srgb,hsl(var(--destructive))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/10{background-color:color-mix(in oklab,var(--color-gray-500)10%,transparent)}}.bg-gray-700{background-color:var(--color-gray-700)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-500\/15{background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/15{background-color:color-mix(in oklab,var(--color-green-500)15%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-muted\/50{background-color:color-mix(in srgb,hsl(var(--muted))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--color-muted)50%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500)10%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary\/5{background-color:color-mix(in srgb,hsl(var(--primary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:color-mix(in srgb,hsl(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/15{background-color:color-mix(in srgb,hsl(var(--primary))15%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--color-primary)15%,transparent)}}.bg-primary\/20{background-color:color-mix(in srgb,hsl(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.bg-primary\/80{background-color:color-mix(in srgb,hsl(var(--primary))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/80{background-color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-status-disabled{background-color:var(--color-status-disabled)}.bg-status-error{background-color:var(--color-status-error)}.bg-status-pending{background-color:var(--color-status-pending)}.bg-status-synced{background-color:var(--color-status-synced)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.bg-yellow-500\/15{background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/15{background-color:color-mix(in oklab,var(--color-yellow-500)15%,transparent)}}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-amber-400{color:var(--color-amber-400)}.text-black{color:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground{color:var(--color-foreground)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-green-400{color:var(--color-green-400)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/40{color:color-mix(in srgb,hsl(var(--muted-foreground))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--color-muted-foreground)40%,transparent)}}.text-muted-foreground\/60{color:color-mix(in srgb,hsl(var(--muted-foreground))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground)60%,transparent)}}.text-pink-400{color:var(--color-pink-400)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-teal-400{color:var(--color-teal-400)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.accent-cyan-500{accent-color:var(--color-cyan-500)}.accent-emerald-500{accent-color:var(--color-emerald-500)}.accent-orange-500{accent-color:var(--color-orange-500)}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-green-500\/50{--tw-shadow-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.shadow-green-500\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-green-500)50%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-red-500\/50{--tw-shadow-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-red-500)50%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-yellow-500\/50{--tw-shadow-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.shadow-yellow-500\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-yellow-500)50%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-primary\/30{--tw-ring-color:color-mix(in srgb,hsl(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}@media(hover:hover){.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary\/40:hover{border-color:color-mix(in srgb,hsl(var(--primary))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.hover\:border-primary\/60:hover{border-color:color-mix(in srgb,hsl(var(--primary))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/60:hover{border-color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.hover\:border-white\/40:hover{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/40:hover{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.hover\:bg-card:hover{background-color:var(--color-card)}.hover\:bg-destructive\/20:hover{background-color:color-mix(in srgb,hsl(var(--destructive))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:color-mix(in srgb,hsl(var(--destructive))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,hsl(var(--primary))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:color-mix(in srgb,hsl(var(--secondary))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary)80%,transparent)}}.hover\:bg-yellow-400:hover{background-color:var(--color-yellow-400)}.hover\:bg-yellow-500\/15:hover{background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/15:hover{background-color:color-mix(in oklab,var(--color-yellow-500)15%,transparent)}}.hover\:bg-yellow-500\/25:hover{background-color:#edb20040}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/25:hover{background-color:color-mix(in oklab,var(--color-yellow-500)25%,transparent)}}.hover\:text-destructive:hover{color:var(--color-destructive)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\>button\]\:\!border-border>button{border-color:var(--color-border)!important}.\[\&\>button\]\:\!bg-card>button{background-color:var(--color-card)!important}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slide-out-right{0%{transform:translate(0)}to{transform:translate(100%)}}.react-flow__node{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}.react-flow__edge-path{stroke-width:1.5px}.react-flow__edge{cursor:pointer}.react-flow__edge:hover .react-flow__edge-path{stroke-width:3px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Mycelium Control Center</title>
7
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
8
+ <script type="module" crossorigin src="/assets/index-BjDoq18L.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-quBYeTeA.css">
10
+ </head>
11
+ <body>
12
+ <div id="root"></div>
13
+ </body>
14
+ </html>
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ import { marketplaceCommand } from "./commands/marketplace.js";
20
20
  import { serveCommand } from "./commands/serve.js";
21
21
  import { pushCommand, pullCommand, envCommand } from "./commands/remote.js";
22
22
  import { removeCommand } from "./commands/remove.js";
23
+ import { reportCommand } from "./commands/report.js";
24
+ import { mcpCommand } from "./commands/mcp.js";
23
25
  const program = new Command();
24
26
  program
25
27
  .name("mycelium")
@@ -43,5 +45,7 @@ program.addCommand(pushCommand);
43
45
  program.addCommand(pullCommand);
44
46
  program.addCommand(envCommand);
45
47
  program.addCommand(removeCommand);
48
+ program.addCommand(reportCommand);
49
+ program.addCommand(mcpCommand);
46
50
  program.parse();
47
51
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CACV,uFAAuF,CACxF;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CACV,uFAAuF,CACxF;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerPrompts(server: McpServer): void;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuCvD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MCP Prompts — guided workflows exposed to AI tools via the MCP protocol.
3
+ */
4
+ import * as fs from "node:fs/promises";
5
+ import * as path from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ export function registerPrompts(server) {
9
+ server.registerPrompt("debug_mycelium", { description: "Step-by-step diagnostic workflow for troubleshooting Mycelium issues" }, async () => {
10
+ const skillPath = path.resolve(__dirname, "../../skills/debug-mycelium.md");
11
+ let content;
12
+ try {
13
+ content = await fs.readFile(skillPath, "utf-8");
14
+ }
15
+ catch {
16
+ content = "Debug skill not found. Run `mycelium init` to install bundled skills.";
17
+ }
18
+ return { messages: [{ role: "user", content: { type: "text", text: content } }] };
19
+ });
20
+ server.registerPrompt("mycelium_setup", { description: "Interactive setup guide for new Mycelium users" }, async () => ({
21
+ messages: [{
22
+ role: "user",
23
+ content: {
24
+ type: "text",
25
+ text: [
26
+ "Help me set up Mycelium. Here's what to do:",
27
+ "",
28
+ "1. Run `mycelium doctor` to check what tools are detected",
29
+ "2. Run `mycelium status` to see current config state",
30
+ "3. If nothing is configured, run `mycelium init` for auto-setup",
31
+ "4. Use `mycelium marketplace list` to discover skills and MCPs",
32
+ "5. Use `mycelium sync` to push config to all tools",
33
+ "",
34
+ "Start by calling mycelium_doctor to check system health.",
35
+ ].join("\n"),
36
+ },
37
+ }],
38
+ }));
39
+ }
40
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,cAAc,CACnB,gBAAgB,EAChB,EAAE,WAAW,EAAE,sEAAsE,EAAE,EACvF,KAAK,IAAI,EAAE;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;QAC5E,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,uEAAuE,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,cAAc,CACnB,gBAAgB,EAChB,EAAE,WAAW,EAAE,gDAAgD,EAAE,EACjE,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACJ,6CAA6C;wBAC7C,EAAE;wBACF,2DAA2D;wBAC3D,sDAAsD;wBACtD,iEAAiE;wBACjE,gEAAgE;wBAChE,oDAAoD;wBACpD,EAAE;wBACF,0DAA0D;qBAC3D,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MCP Resources — read-only data exposed to AI tools via the MCP protocol.
3
+ */
4
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ export declare function registerResources(server: McpServer): void;
6
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiCzD"}
@@ -0,0 +1,24 @@
1
+ export function registerResources(server) {
2
+ server.registerResource("mycelium_config", "mycelium://config", { description: "Current merged mycelium configuration (MCPs, skills, memory scopes)" }, async () => {
3
+ const { loadAndMergeAllConfigs } = await import("../core/config-merger.js");
4
+ const config = await loadAndMergeAllConfigs(process.cwd());
5
+ return {
6
+ contents: [{
7
+ uri: "mycelium://config",
8
+ text: JSON.stringify(config, null, 2),
9
+ mimeType: "application/json",
10
+ }],
11
+ };
12
+ });
13
+ server.registerResource("mycelium_tools", "mycelium://tools", { description: "Tool registry — all 9 supported tools with capabilities, paths, and formats" }, async () => {
14
+ const { TOOL_REGISTRY } = await import("@mycelish/core");
15
+ return {
16
+ contents: [{
17
+ uri: "mycelium://tools",
18
+ text: JSON.stringify(TOOL_REGISTRY, null, 2),
19
+ mimeType: "application/json",
20
+ }],
21
+ };
22
+ });
23
+ }
24
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,gBAAgB,CACrB,iBAAiB,EACjB,mBAAmB,EACnB,EAAE,WAAW,EAAE,qEAAqE,EAAE,EACtF,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,mBAAmB;oBACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrC,QAAQ,EAAE,kBAAkB;iBAC7B,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,kBAAkB,EAClB,EAAE,WAAW,EAAE,6EAA6E,EAAE,EAC9F,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,kBAAkB;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,QAAQ,EAAE,kBAAkB;iBAC7B,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mycelium MCP Server factory.
3
+ * Creates and configures an McpServer with all tool/resource/prompt registrations.
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ export declare function createMyceliumMcpServer(): McpServer;
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,uBAAuB,IAAI,SAAS,CAgBnD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Mycelium MCP Server factory.
3
+ * Creates and configures an McpServer with all tool/resource/prompt registrations.
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { registerConfigTools } from "./tools/config-tools.js";
7
+ import { registerItemTools } from "./tools/item-tools.js";
8
+ import { registerMemoryTools } from "./tools/memory-tools.js";
9
+ import { registerMarketplaceTools } from "./tools/marketplace-tools.js";
10
+ import { registerObserveTools } from "./tools/observe-tools.js";
11
+ import { registerResources } from "./resources.js";
12
+ import { registerPrompts } from "./prompts.js";
13
+ export function createMyceliumMcpServer() {
14
+ const server = new McpServer({
15
+ name: "mycelium",
16
+ version: "0.1.0",
17
+ });
18
+ registerConfigTools(server);
19
+ registerItemTools(server);
20
+ registerMemoryTools(server);
21
+ registerMarketplaceTools(server);
22
+ registerObserveTools(server);
23
+ registerResources(server);
24
+ registerPrompts(server);
25
+ return server;
26
+ }
27
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,uBAAuB;IACrC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../src/mcp/server.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { describe, it, expect } from "vitest";
2
+ describe("createMyceliumMcpServer", () => {
3
+ it("creates an McpServer with name and version", async () => {
4
+ const { createMyceliumMcpServer } = await import("./server.js");
5
+ const server = createMyceliumMcpServer();
6
+ expect(server).toBeDefined();
7
+ });
8
+ });
9
+ //# sourceMappingURL=server.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/mcp/server.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerConfigTools(server: McpServer): void;
3
+ //# sourceMappingURL=config-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/config-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiF3D"}
@@ -0,0 +1,80 @@
1
+ import { z } from "zod";
2
+ import { ALL_TOOL_IDS } from "@mycelish/core";
3
+ export function registerConfigTools(server) {
4
+ server.registerTool("mycelium_status", {
5
+ title: "Mycelium Status",
6
+ description: "Show current config state: all MCPs, skills, and memory scopes with their state (enabled/disabled) and source (global/machine/project).",
7
+ inputSchema: {
8
+ tool: z
9
+ .string()
10
+ .optional()
11
+ .describe("Filter status for a specific tool ID"),
12
+ },
13
+ }, async ({ tool }) => {
14
+ const { loadAndMergeAllConfigs } = await import("../../core/config-merger.js");
15
+ const merged = await loadAndMergeAllConfigs(process.cwd());
16
+ const result = tool
17
+ ? { mcps: filterByTool(merged.mcps, tool), sources: merged.sources }
18
+ : merged;
19
+ return {
20
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
21
+ };
22
+ });
23
+ server.registerTool("mycelium_sync", {
24
+ title: "Sync Config",
25
+ description: "Push mycelium config (MCPs, skills, memory) to detected AI tools. Performs overlay sync — only touches mycelium-managed sections.",
26
+ inputSchema: {
27
+ tool: z
28
+ .string()
29
+ .optional()
30
+ .describe("Sync only this tool (e.g. 'claude-code', 'cursor')"),
31
+ },
32
+ }, async ({ tool }) => {
33
+ const { loadAndMergeAllConfigs } = await import("../../core/config-merger.js");
34
+ const { syncToTool } = await import("../../core/sync-writer.js");
35
+ const { getTracer } = await import("../../core/global-tracer.js");
36
+ const tracer = getTracer();
37
+ const log = tracer.createTrace("mcp");
38
+ const merged = await loadAndMergeAllConfigs(process.cwd());
39
+ const toolIds = tool ? [tool] : [...ALL_TOOL_IDS];
40
+ const results = {};
41
+ for (const id of toolIds) {
42
+ try {
43
+ const result = await syncToTool(id, merged.mcps, undefined, log);
44
+ results[id] = { success: result.success, error: result.error };
45
+ log.info({ scope: "mcp", op: "sync", tool: id, msg: `Sync ${result.success ? "ok" : "failed"}` });
46
+ }
47
+ catch (e) {
48
+ const msg = e instanceof Error ? e.message : String(e);
49
+ results[id] = { success: false, error: msg };
50
+ log.warn({ scope: "mcp", op: "sync", tool: id, msg, error: msg });
51
+ }
52
+ }
53
+ return {
54
+ content: [{ type: "text", text: JSON.stringify(results, null, 2) }],
55
+ };
56
+ });
57
+ server.registerTool("mycelium_doctor", {
58
+ title: "Doctor",
59
+ description: "Run health checks: tool detection, MCP connectivity, config integrity, memory size, self-registration status.",
60
+ inputSchema: {},
61
+ }, async () => {
62
+ const { runAllChecks, formatDoctorJson } = await import("../../commands/health-checks/index.js");
63
+ const result = await runAllChecks();
64
+ return {
65
+ content: [{ type: "text", text: formatDoctorJson(result) }],
66
+ };
67
+ });
68
+ }
69
+ function filterByTool(mcps, tool) {
70
+ const filtered = {};
71
+ for (const [name, config] of Object.entries(mcps)) {
72
+ if (config.tools && !config.tools.includes(tool))
73
+ continue;
74
+ if (config.excludeTools?.includes(tool))
75
+ continue;
76
+ filtered[name] = config;
77
+ }
78
+ return filtered;
79
+ }
80
+ //# sourceMappingURL=config-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/config-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QACrC,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sCAAsC,CAAC;SACpD;KACF,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACpB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,6BAA6B,CAC9B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,IAAI;YACjB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACpE,CAAC,CAAC,MAAM,CAAC;QAEX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;QACnC,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,mIAAmI;QACrI,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;SAClE;KACF,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACpB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,6BAA6B,CAC9B,CAAC;QACF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACjE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QAClD,MAAM,OAAO,GAAyD,EAAE,CAAC;QAEzE,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBACjE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QACrC,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,+GAA+G;QACjH,WAAW,EAAE,EAAE;KAChB,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CACrD,uCAAuC,CACxC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CACnB,IAAqC,EACrC,IAAY;IAEZ,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-tools.test.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/config-tools.test.ts"],"names":[],"mappings":""}