@mycelish/cli 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +65 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/health-checks/runner.d.ts.map +1 -1
- package/dist/commands/health-checks/runner.js +23 -1
- package/dist/commands/health-checks/runner.js.map +1 -1
- package/dist/commands/marketplace.d.ts.map +1 -1
- package/dist/commands/marketplace.js +34 -1
- package/dist/commands/marketplace.js.map +1 -1
- package/dist/commands/remote.d.ts.map +1 -1
- package/dist/commands/remote.js +17 -0
- package/dist/commands/remote.js.map +1 -1
- package/dist/commands/remove.d.ts +16 -8
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +163 -42
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/remove.test.js +4 -4
- package/dist/commands/remove.test.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +20 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/core/auto-adapter.d.ts.map +1 -1
- package/dist/core/auto-adapter.js +2 -0
- package/dist/core/auto-adapter.js.map +1 -1
- package/dist/core/content-hash.d.ts +3 -0
- package/dist/core/content-hash.d.ts.map +1 -0
- package/dist/core/content-hash.js +11 -0
- package/dist/core/content-hash.js.map +1 -0
- package/dist/core/env-template.d.ts +8 -0
- package/dist/core/env-template.d.ts.map +1 -1
- package/dist/core/env-template.js +67 -1
- package/dist/core/env-template.js.map +1 -1
- package/dist/core/env-template.test.js +100 -1
- package/dist/core/env-template.test.js.map +1 -1
- package/dist/core/manifest-migrator.d.ts +0 -1
- package/dist/core/manifest-migrator.d.ts.map +1 -1
- package/dist/core/manifest-migrator.js +1 -1
- package/dist/core/manifest-migrator.js.map +1 -1
- package/dist/core/manifest-state.d.ts +2 -1
- package/dist/core/manifest-state.d.ts.map +1 -1
- package/dist/core/manifest-state.js.map +1 -1
- package/dist/core/marketplace-cache.d.ts +12 -0
- package/dist/core/marketplace-cache.d.ts.map +1 -0
- package/dist/core/marketplace-cache.js +127 -0
- package/dist/core/marketplace-cache.js.map +1 -0
- package/dist/core/marketplace-cache.test.d.ts +2 -0
- package/dist/core/marketplace-cache.test.d.ts.map +1 -0
- package/dist/core/marketplace-cache.test.js +122 -0
- package/dist/core/marketplace-cache.test.js.map +1 -0
- package/dist/core/marketplace-constants.d.ts +14 -0
- package/dist/core/marketplace-constants.d.ts.map +1 -0
- package/dist/core/marketplace-constants.js +14 -0
- package/dist/core/marketplace-constants.js.map +1 -0
- package/dist/core/marketplace-deduplicator.d.ts +13 -0
- package/dist/core/marketplace-deduplicator.d.ts.map +1 -0
- package/dist/core/marketplace-deduplicator.js +84 -0
- package/dist/core/marketplace-deduplicator.js.map +1 -0
- package/dist/core/marketplace-deduplicator.test.d.ts +2 -0
- package/dist/core/marketplace-deduplicator.test.d.ts.map +1 -0
- package/dist/core/marketplace-deduplicator.test.js +70 -0
- package/dist/core/marketplace-deduplicator.test.js.map +1 -0
- package/dist/core/marketplace-registry.d.ts.map +1 -1
- package/dist/core/marketplace-registry.js +10 -16
- package/dist/core/marketplace-registry.js.map +1 -1
- package/dist/core/marketplace-registry.test.js +5 -4
- package/dist/core/marketplace-registry.test.js.map +1 -1
- package/dist/core/marketplace-sources.d.ts +47 -25
- package/dist/core/marketplace-sources.d.ts.map +1 -1
- package/dist/core/marketplace-sources.js +331 -106
- package/dist/core/marketplace-sources.js.map +1 -1
- package/dist/core/marketplace-sources.test.js +158 -5
- package/dist/core/marketplace-sources.test.js.map +1 -1
- package/dist/core/marketplace.d.ts +22 -5
- package/dist/core/marketplace.d.ts.map +1 -1
- package/dist/core/marketplace.js +280 -127
- package/dist/core/marketplace.js.map +1 -1
- package/dist/core/marketplace.test.js +20 -58
- package/dist/core/marketplace.test.js.map +1 -1
- package/dist/core/migrator/executor.d.ts.map +1 -1
- package/dist/core/migrator/executor.js +11 -2
- package/dist/core/migrator/executor.js.map +1 -1
- package/dist/core/migrator/manifest.d.ts +10 -1
- package/dist/core/migrator/manifest.d.ts.map +1 -1
- package/dist/core/migrator/manifest.js +12 -2
- package/dist/core/migrator/manifest.js.map +1 -1
- package/dist/core/plugin-scanner.test.js +0 -4
- package/dist/core/plugin-scanner.test.js.map +1 -1
- package/dist/core/plugin-state.d.ts.map +1 -1
- package/dist/core/plugin-state.js +50 -18
- package/dist/core/plugin-state.js.map +1 -1
- package/dist/core/plugin-takeover.d.ts +15 -0
- package/dist/core/plugin-takeover.d.ts.map +1 -1
- package/dist/core/plugin-takeover.js +163 -3
- package/dist/core/plugin-takeover.js.map +1 -1
- package/dist/core/presets.test.js +0 -3
- package/dist/core/presets.test.js.map +1 -1
- package/dist/core/secret-detector.d.ts +20 -0
- package/dist/core/secret-detector.d.ts.map +1 -0
- package/dist/core/secret-detector.js +83 -0
- package/dist/core/secret-detector.js.map +1 -0
- package/dist/core/secret-detector.test.d.ts +2 -0
- package/dist/core/secret-detector.test.d.ts.map +1 -0
- package/dist/core/secret-detector.test.js +91 -0
- package/dist/core/secret-detector.test.js.map +1 -0
- package/dist/core/security-scanner.d.ts +24 -0
- package/dist/core/security-scanner.d.ts.map +1 -0
- package/dist/core/security-scanner.js +182 -0
- package/dist/core/security-scanner.js.map +1 -0
- package/dist/core/security-scanner.test.d.ts +2 -0
- package/dist/core/security-scanner.test.d.ts.map +1 -0
- package/dist/core/security-scanner.test.js +120 -0
- package/dist/core/security-scanner.test.js.map +1 -0
- package/dist/core/snapshot.d.ts.map +1 -1
- package/dist/core/snapshot.js +0 -6
- package/dist/core/snapshot.js.map +1 -1
- package/dist/core/snapshot.test.js +0 -4
- package/dist/core/snapshot.test.js.map +1 -1
- package/dist/dashboard/assets/_baseUniq-CaVE7eUV.js +1 -0
- package/dist/dashboard/assets/arc-CR894Erh.js +1 -0
- package/dist/dashboard/assets/architectureDiagram-VXUJARFQ-vuLSFK92.js +36 -0
- package/dist/dashboard/assets/blockDiagram-VD42YOAC-CjXwNwFV.js +122 -0
- package/dist/dashboard/assets/c4Diagram-YG6GDRKO-BUk0KT3V.js +10 -0
- package/dist/dashboard/assets/channel-BzUEK7Iv.js +1 -0
- package/dist/dashboard/assets/chunk-4BX2VUAB-BCCD1RD0.js +1 -0
- package/dist/dashboard/assets/chunk-55IACEB6-7M5H4j_M.js +1 -0
- package/dist/dashboard/assets/chunk-B4BG7PRW-CkuZp9sw.js +165 -0
- package/dist/dashboard/assets/chunk-DI55MBZ5-aoWuqaxJ.js +220 -0
- package/dist/dashboard/assets/chunk-FMBD7UC4-zGR2QW6c.js +15 -0
- package/dist/dashboard/assets/chunk-QN33PNHL-Lj8Zu7hm.js +1 -0
- package/dist/dashboard/assets/chunk-QZHKN3VN-JLEIDbAK.js +1 -0
- package/dist/dashboard/assets/chunk-TZMSLE5B-BB4GoxaV.js +1 -0
- package/dist/dashboard/assets/classDiagram-2ON5EDUG-CMpOlMXG.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-WZHVMYZB-CMpOlMXG.js +1 -0
- package/dist/dashboard/assets/clone-CHi7kZ5h.js +1 -0
- package/dist/dashboard/assets/cose-bilkent-S5V4N54A-DLEOmN1S.js +1 -0
- package/dist/dashboard/assets/cytoscape.esm-5J0xJHOV.js +321 -0
- package/dist/dashboard/assets/dagre-6UL2VRFP-BKeNwVe7.js +4 -0
- package/dist/dashboard/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/dashboard/assets/diagram-PSM6KHXK-BwTCZWHJ.js +24 -0
- package/dist/dashboard/assets/diagram-QEK2KX5R-Bg109hRA.js +43 -0
- package/dist/dashboard/assets/diagram-S2PKOQOG-CjzZEN97.js +24 -0
- package/dist/dashboard/assets/erDiagram-Q2GNP2WA-C_o1kY7B.js +60 -0
- package/dist/dashboard/assets/flowDiagram-NV44I4VS-CGcmMJTD.js +162 -0
- package/dist/dashboard/assets/ganttDiagram-JELNMOA3-Dh1Atgfm.js +267 -0
- package/dist/dashboard/assets/gitGraphDiagram-NY62KEGX-BkHRiPWO.js +65 -0
- package/dist/dashboard/assets/graph-gTAnu0gr.js +1 -0
- package/dist/dashboard/assets/index-DFP3ko3G.css +1 -0
- package/dist/dashboard/assets/index-Dr2pvJml.js +189 -0
- package/dist/dashboard/assets/infoDiagram-WHAUD3N6-CdqkT51i.js +2 -0
- package/dist/dashboard/assets/init-Gi6I4Gst.js +1 -0
- package/dist/dashboard/assets/journeyDiagram-XKPGCS4Q-D6H-T7IF.js +139 -0
- package/dist/dashboard/assets/kanban-definition-3W4ZIXB7-CdtlB9dE.js +89 -0
- package/dist/dashboard/assets/katex-DhXJpUyf.js +261 -0
- package/dist/dashboard/assets/layout-5P3G0oCF.js +1 -0
- package/dist/dashboard/assets/linear-BEr0iAwY.js +1 -0
- package/dist/dashboard/assets/mermaid.core-DY8Lk9ir.js +250 -0
- package/dist/dashboard/assets/min-rFBMICyx.js +1 -0
- package/dist/dashboard/assets/mindmap-definition-VGOIOE7T-BBgtd54T.js +68 -0
- package/dist/dashboard/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/dashboard/assets/pieDiagram-ADFJNKIX-fgAzUnCv.js +30 -0
- package/dist/dashboard/assets/quadrantDiagram-AYHSOK5B-BtBFRMty.js +7 -0
- package/dist/dashboard/assets/requirementDiagram-UZGBJVZJ-Dsb2J8qM.js +64 -0
- package/dist/dashboard/assets/sankeyDiagram-TZEHDZUN-DgeXoGZy.js +10 -0
- package/dist/dashboard/assets/sequenceDiagram-WL72ISMW-CW8ApGYu.js +145 -0
- package/dist/dashboard/assets/stateDiagram-FKZM4ZOC-CFKNRDGr.js +1 -0
- package/dist/dashboard/assets/stateDiagram-v2-4FDKWEC3-B3pJgIRu.js +1 -0
- package/dist/dashboard/assets/timeline-definition-IT6M3QCI-DeE7K_Tn.js +61 -0
- package/dist/dashboard/assets/treemap-KMMF4GRG-DgksShPO.js +128 -0
- package/dist/dashboard/assets/xychartDiagram-PRI3JC2R-C8fn_Zm6.js +7 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/routes/marketplace.d.ts.map +1 -1
- package/dist/routes/marketplace.js +179 -1
- package/dist/routes/marketplace.js.map +1 -1
- package/dist/routes/remove.js +4 -4
- package/dist/routes/remove.js.map +1 -1
- package/dist/routes/state.d.ts.map +1 -1
- package/dist/routes/state.js +56 -9
- package/dist/routes/state.js.map +1 -1
- package/package.json +2 -2
- package/dist/dashboard/assets/index-CAenUQES.css +0 -1
- package/dist/dashboard/assets/index-DDo3xcmE.js +0 -150
|
@@ -2,51 +2,9 @@ import { MARKETPLACE_SOURCES as MS } from "@mycelish/core";
|
|
|
2
2
|
import * as fs from "node:fs/promises";
|
|
3
3
|
import * as os from "node:os";
|
|
4
4
|
import * as path from "node:path";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export async function fetchNpmDownloads(names) {
|
|
9
|
-
const result = {};
|
|
10
|
-
if (names.length === 0)
|
|
11
|
-
return result;
|
|
12
|
-
const fetches = names.slice(0, 20).map(async (name) => {
|
|
13
|
-
try {
|
|
14
|
-
const res = await fetch(`https://api.npmjs.org/downloads/point/last-week/${encodeURIComponent(name)}`);
|
|
15
|
-
if (res.ok) {
|
|
16
|
-
const data = (await res.json());
|
|
17
|
-
if (data.downloads)
|
|
18
|
-
result[name] = data.downloads;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// Non-critical
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
await Promise.allSettled(fetches);
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
// ============================================================================
|
|
29
|
-
// OpenSkills (npm registry)
|
|
30
|
-
// ============================================================================
|
|
31
|
-
export async function searchOpenSkills(query) {
|
|
32
|
-
const res = await fetch(`https://registry.npmjs.org/-/v1/search?text=openskills+${encodeURIComponent(query)}&size=12`);
|
|
33
|
-
if (!res.ok)
|
|
34
|
-
throw new Error(`openskills search failed: ${res.statusText}`);
|
|
35
|
-
const data = (await res.json());
|
|
36
|
-
const names = data.objects.map(o => o.package.name);
|
|
37
|
-
const downloads = await fetchNpmDownloads(names);
|
|
38
|
-
const entries = data.objects.map((o) => ({
|
|
39
|
-
name: o.package.name,
|
|
40
|
-
description: o.package.description || "",
|
|
41
|
-
author: o.package.author?.name,
|
|
42
|
-
version: o.package.version,
|
|
43
|
-
latestVersion: o.package.version,
|
|
44
|
-
downloads: downloads[o.package.name],
|
|
45
|
-
source: MS.OPENSKILLS,
|
|
46
|
-
type: "skill",
|
|
47
|
-
}));
|
|
48
|
-
return { entries, total: entries.length, source: MS.OPENSKILLS };
|
|
49
|
-
}
|
|
5
|
+
import { cachedFetch } from "./marketplace-cache.js";
|
|
6
|
+
import { computeContentHash } from "./content-hash.js";
|
|
7
|
+
import { MARKETPLACE_FETCH_LIMIT, TIMEOUT_GITHUB, TIMEOUT_UNGH, TIMEOUT_NPM, TIMEOUT_GLAMA, BATCH_NPM, BATCH_GITHUB, } from "./marketplace-constants.js";
|
|
50
8
|
// ============================================================================
|
|
51
9
|
// Claude Plugins (local installed_plugins.json v2)
|
|
52
10
|
// ============================================================================
|
|
@@ -55,29 +13,19 @@ export async function listInstalledPlugins() {
|
|
|
55
13
|
const filePath = path.join(os.homedir(), ".claude", "plugins", "installed_plugins.json");
|
|
56
14
|
const raw = await fs.readFile(filePath, "utf-8");
|
|
57
15
|
const data = JSON.parse(raw);
|
|
58
|
-
if (
|
|
16
|
+
if (data.version === 2 && data.plugins) {
|
|
59
17
|
return parseV2Plugins(data.plugins);
|
|
60
18
|
}
|
|
61
|
-
if (Array.isArray(data)) {
|
|
62
|
-
return data.map((p) => ({
|
|
63
|
-
name: p.name,
|
|
64
|
-
description: p.description || "",
|
|
65
|
-
version: p.version,
|
|
66
|
-
author: p.author,
|
|
67
|
-
installed: true,
|
|
68
|
-
source: MS.CLAUDE_PLUGINS,
|
|
69
|
-
type: "plugin",
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
19
|
return [];
|
|
73
20
|
}
|
|
74
21
|
catch (e) {
|
|
75
22
|
if (e && typeof e === "object" && e.code !== "ENOENT") {
|
|
76
|
-
|
|
23
|
+
// Non-critical warning — skip logging to avoid noise
|
|
77
24
|
}
|
|
78
25
|
return [];
|
|
79
26
|
}
|
|
80
27
|
}
|
|
28
|
+
/** Pure parser — no filtering. Visibility policy is handled by getLivePluginState. */
|
|
81
29
|
function parseV2Plugins(plugins) {
|
|
82
30
|
const entries = [];
|
|
83
31
|
for (const [key, installs] of Object.entries(plugins)) {
|
|
@@ -91,27 +39,102 @@ function parseV2Plugins(plugins) {
|
|
|
91
39
|
name: pluginName,
|
|
92
40
|
description: marketplace ? `From ${marketplace}` : "",
|
|
93
41
|
version: latest.version,
|
|
94
|
-
latestVersion: latest.version,
|
|
95
42
|
installedVersion: latest.version,
|
|
96
43
|
installed: true,
|
|
97
44
|
updatedAt: latest.lastUpdated ? new Date(latest.lastUpdated).toISOString().slice(0, 10) : undefined,
|
|
98
45
|
source: MS.CLAUDE_PLUGINS,
|
|
99
46
|
type: "plugin",
|
|
47
|
+
category: marketplace,
|
|
100
48
|
});
|
|
101
49
|
}
|
|
102
50
|
return entries;
|
|
103
51
|
}
|
|
104
52
|
export async function searchClaudePlugins(query) {
|
|
105
53
|
const plugins = await listInstalledPlugins();
|
|
54
|
+
await enrichPluginsWithLatestVersions(plugins);
|
|
106
55
|
const q = query.toLowerCase();
|
|
107
56
|
const entries = plugins.filter((p) => p.name.toLowerCase().includes(q) || p.description.toLowerCase().includes(q));
|
|
108
57
|
return { entries, total: entries.length, source: MS.CLAUDE_PLUGINS };
|
|
109
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Enrich installed plugins with latest versions from their marketplace repos.
|
|
61
|
+
* Reads known_marketplaces.json → fetches marketplace.json from GitHub → extracts latest versions.
|
|
62
|
+
*/
|
|
63
|
+
export async function enrichPluginsWithLatestVersions(plugins) {
|
|
64
|
+
try {
|
|
65
|
+
const knownPath = path.join(os.homedir(), ".claude", "plugins", "known_marketplaces.json");
|
|
66
|
+
const raw = await fs.readFile(knownPath, "utf-8");
|
|
67
|
+
const known = JSON.parse(raw);
|
|
68
|
+
// Build a map: marketplace name → GitHub owner/repo
|
|
69
|
+
const repoMap = new Map();
|
|
70
|
+
for (const [name, info] of Object.entries(known)) {
|
|
71
|
+
if (info.source?.source === "github" && info.source.repo) {
|
|
72
|
+
const parts = info.source.repo.split("/");
|
|
73
|
+
if (parts.length === 2)
|
|
74
|
+
repoMap.set(name, { owner: parts[0], repo: parts[1] });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (repoMap.size === 0)
|
|
78
|
+
return;
|
|
79
|
+
const marketplacePlugins = new Map();
|
|
80
|
+
const fetches = [...repoMap.entries()].map(async ([marketplace, { owner, repo }]) => {
|
|
81
|
+
try {
|
|
82
|
+
const data = await cachedFetch(`plugin-meta-${marketplace}`, async () => {
|
|
83
|
+
const headers = {};
|
|
84
|
+
const ghToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
|
|
85
|
+
if (ghToken)
|
|
86
|
+
headers.Authorization = `Bearer ${ghToken}`;
|
|
87
|
+
const res = await fetch(`https://raw.githubusercontent.com/${owner}/${repo}/main/.claude-plugin/marketplace.json`, { headers, signal: AbortSignal.timeout(TIMEOUT_GITHUB) });
|
|
88
|
+
if (!res.ok)
|
|
89
|
+
return { plugins: [] };
|
|
90
|
+
return (await res.json());
|
|
91
|
+
});
|
|
92
|
+
const meta = new Map();
|
|
93
|
+
for (const p of data.plugins ?? []) {
|
|
94
|
+
if (!p.name)
|
|
95
|
+
continue;
|
|
96
|
+
// Extract the actual plugin repo URL from the source field
|
|
97
|
+
let pluginUrl;
|
|
98
|
+
if (p.source?.url) {
|
|
99
|
+
pluginUrl = p.source.url.replace(/\.git$/, "");
|
|
100
|
+
}
|
|
101
|
+
meta.set(p.name, { version: p.version, url: pluginUrl });
|
|
102
|
+
}
|
|
103
|
+
marketplacePlugins.set(marketplace, meta);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Non-critical
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
await Promise.allSettled(fetches);
|
|
110
|
+
// Enrich entries with latest versions and correct plugin URLs
|
|
111
|
+
for (const plugin of plugins) {
|
|
112
|
+
const mpName = plugin.category;
|
|
113
|
+
const mpMeta = mpName ? marketplacePlugins.get(mpName) : undefined;
|
|
114
|
+
const meta = mpMeta?.get(plugin.name)
|
|
115
|
+
?? [...marketplacePlugins.values()].find(m => m.has(plugin.name))?.get(plugin.name);
|
|
116
|
+
if (meta?.version)
|
|
117
|
+
plugin.latestVersion = meta.version;
|
|
118
|
+
// Use the actual plugin repo URL, not the marketplace repo
|
|
119
|
+
if (!plugin.url && meta?.url) {
|
|
120
|
+
plugin.url = meta.url;
|
|
121
|
+
}
|
|
122
|
+
// Fallback: marketplace repo if no per-plugin URL
|
|
123
|
+
if (!plugin.url && mpName && repoMap.has(mpName)) {
|
|
124
|
+
const { owner, repo } = repoMap.get(mpName);
|
|
125
|
+
plugin.url = `https://github.com/${owner}/${repo}`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// known_marketplaces.json missing or unreadable — skip
|
|
131
|
+
}
|
|
132
|
+
}
|
|
110
133
|
const MCP_REGISTRY_URL = "https://registry.modelcontextprotocol.io";
|
|
111
134
|
export async function fetchMcpServers(query) {
|
|
112
135
|
const url = query
|
|
113
|
-
? `${MCP_REGISTRY_URL}/v0.1/servers?
|
|
114
|
-
: `${MCP_REGISTRY_URL}/v0.1/servers?limit
|
|
136
|
+
? `${MCP_REGISTRY_URL}/v0.1/servers?search=${encodeURIComponent(query)}&limit=${MARKETPLACE_FETCH_LIMIT}`
|
|
137
|
+
: `${MCP_REGISTRY_URL}/v0.1/servers?limit=${MARKETPLACE_FETCH_LIMIT}`;
|
|
115
138
|
const res = await fetch(url);
|
|
116
139
|
if (!res.ok)
|
|
117
140
|
throw new Error(`MCP Registry failed: ${res.statusText}`);
|
|
@@ -120,6 +143,8 @@ export async function fetchMcpServers(query) {
|
|
|
120
143
|
}
|
|
121
144
|
export function mcpServerToEntry(s) {
|
|
122
145
|
const srv = s.server;
|
|
146
|
+
const url = srv.repository?.url || srv.websiteUrl || undefined;
|
|
147
|
+
const npmPkg = srv.packages?.find(p => p.registryType === "npm")?.identifier;
|
|
123
148
|
return {
|
|
124
149
|
name: srv.name,
|
|
125
150
|
description: srv.description || "",
|
|
@@ -127,23 +152,69 @@ export function mcpServerToEntry(s) {
|
|
|
127
152
|
latestVersion: srv.version,
|
|
128
153
|
source: MS.MCP_REGISTRY,
|
|
129
154
|
type: "mcp",
|
|
155
|
+
url,
|
|
156
|
+
npmPackage: npmPkg,
|
|
130
157
|
};
|
|
131
158
|
}
|
|
132
|
-
export async function searchMcpRegistry(query) {
|
|
133
|
-
const servers =
|
|
159
|
+
export async function searchMcpRegistry(query, options) {
|
|
160
|
+
const servers = query
|
|
161
|
+
? await fetchMcpServers(query) // user search: live
|
|
162
|
+
: await cachedFetch("mcp-registry", () => fetchMcpServers(""), options); // browse: cached
|
|
134
163
|
const entries = servers.map(mcpServerToEntry);
|
|
135
164
|
return { entries, total: entries.length, source: MS.MCP_REGISTRY };
|
|
136
165
|
}
|
|
166
|
+
const GLAMA_API = "https://glama.ai/api/mcp/v1/servers";
|
|
167
|
+
export async function fetchGlamaServers(query) {
|
|
168
|
+
const params = new URLSearchParams({ limit: String(MARKETPLACE_FETCH_LIMIT) });
|
|
169
|
+
if (query)
|
|
170
|
+
params.set("query", query);
|
|
171
|
+
const res = await fetch(`${GLAMA_API}?${params}`, { signal: AbortSignal.timeout(TIMEOUT_GLAMA) });
|
|
172
|
+
if (!res.ok)
|
|
173
|
+
throw new Error(`Glama API failed: ${res.statusText}`);
|
|
174
|
+
const data = (await res.json());
|
|
175
|
+
return data.servers || [];
|
|
176
|
+
}
|
|
177
|
+
export function glamaServerToEntry(s) {
|
|
178
|
+
return {
|
|
179
|
+
name: s.name,
|
|
180
|
+
description: s.description || "",
|
|
181
|
+
source: MS.GLAMA,
|
|
182
|
+
type: "mcp",
|
|
183
|
+
url: s.repository?.url || s.url || undefined,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export async function searchGlama(query, options) {
|
|
187
|
+
const servers = query
|
|
188
|
+
? await fetchGlamaServers(query)
|
|
189
|
+
: await cachedFetch("glama", () => fetchGlamaServers(""), options);
|
|
190
|
+
const entries = servers.map(glamaServerToEntry);
|
|
191
|
+
return { entries, total: entries.length, source: MS.GLAMA };
|
|
192
|
+
}
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// GitHub tree (uses cachedFetch for L1+L2 caching)
|
|
195
|
+
// ============================================================================
|
|
196
|
+
async function fetchGitHubTree(owner, repo, options) {
|
|
197
|
+
return cachedFetch(`github-${owner}-${repo}`, async () => {
|
|
198
|
+
const headers = { Accept: "application/vnd.github.v3+json" };
|
|
199
|
+
const ghToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
|
|
200
|
+
if (ghToken)
|
|
201
|
+
headers.Authorization = `Bearer ${ghToken}`;
|
|
202
|
+
const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/git/trees/main?recursive=1`, { headers });
|
|
203
|
+
if (!res.ok) {
|
|
204
|
+
const hint = res.status === 403 ? " (rate limited — try again later or set GITHUB_TOKEN)" : "";
|
|
205
|
+
throw new Error(`GitHub API ${res.status} for ${owner}/${repo}${hint}`);
|
|
206
|
+
}
|
|
207
|
+
const body = (await res.json());
|
|
208
|
+
return body.tree;
|
|
209
|
+
}, options);
|
|
210
|
+
}
|
|
137
211
|
// ============================================================================
|
|
138
212
|
// Anthropic Skills (GitHub)
|
|
139
213
|
// ============================================================================
|
|
140
|
-
export async function fetchAnthropicSkillsList() {
|
|
141
|
-
const
|
|
142
|
-
if (!res.ok)
|
|
143
|
-
return [];
|
|
144
|
-
const data = (await res.json());
|
|
214
|
+
export async function fetchAnthropicSkillsList(options) {
|
|
215
|
+
const tree = await fetchGitHubTree("anthropics", "skills", options);
|
|
145
216
|
const skills = [];
|
|
146
|
-
for (const t of
|
|
217
|
+
for (const t of tree) {
|
|
147
218
|
if (t.type === "blob" && t.path.endsWith("/SKILL.md") && t.path.startsWith("skills/")) {
|
|
148
219
|
const parts = t.path.split("/");
|
|
149
220
|
if (parts.length === 3)
|
|
@@ -152,8 +223,11 @@ export async function fetchAnthropicSkillsList() {
|
|
|
152
223
|
}
|
|
153
224
|
return skills;
|
|
154
225
|
}
|
|
155
|
-
export async function searchAnthropicSkills(query) {
|
|
156
|
-
const allSkills = await
|
|
226
|
+
export async function searchAnthropicSkills(query, options) {
|
|
227
|
+
const [allSkills, stars] = await Promise.all([
|
|
228
|
+
fetchAnthropicSkillsList(options),
|
|
229
|
+
fetchGitHubRepoStars("anthropics", "skills", options),
|
|
230
|
+
]);
|
|
157
231
|
const q = query.toLowerCase();
|
|
158
232
|
const filtered = q ? allSkills.filter(s => s.toLowerCase().includes(q)) : allSkills;
|
|
159
233
|
const entries = filtered.map(name => ({
|
|
@@ -162,47 +236,67 @@ export async function searchAnthropicSkills(query) {
|
|
|
162
236
|
author: "anthropics",
|
|
163
237
|
source: MS.ANTHROPIC_SKILLS,
|
|
164
238
|
type: "skill",
|
|
239
|
+
stars,
|
|
240
|
+
url: `https://github.com/anthropics/skills/tree/main/skills/${name}`,
|
|
165
241
|
}));
|
|
166
242
|
return { entries, total: entries.length, source: MS.ANTHROPIC_SKILLS };
|
|
167
243
|
}
|
|
168
|
-
export async function searchClawHub(query) {
|
|
169
|
-
const res = await fetch(`https://clawhub.ai/api/v1/search?q=${encodeURIComponent(query)}&limit=12`, { headers: { Accept: "application/json" } });
|
|
170
|
-
if (!res.ok)
|
|
171
|
-
throw new Error(`ClawHub search failed: ${res.statusText}`);
|
|
172
|
-
const data = (await res.json());
|
|
173
|
-
const entries = (data.results || []).map((item) => ({
|
|
174
|
-
name: item.slug,
|
|
175
|
-
description: item.summary || item.displayName || "",
|
|
176
|
-
version: item.version,
|
|
177
|
-
latestVersion: item.version,
|
|
178
|
-
updatedAt: item.updatedAt ? new Date(item.updatedAt).toISOString().slice(0, 10) : undefined,
|
|
179
|
-
source: MS.CLAWHUB,
|
|
180
|
-
type: "skill",
|
|
181
|
-
}));
|
|
182
|
-
return { entries, total: entries.length, source: MS.CLAWHUB };
|
|
183
|
-
}
|
|
184
|
-
// ============================================================================
|
|
185
|
-
// SkillsMP (disabled — needs API key)
|
|
186
|
-
// ============================================================================
|
|
187
|
-
export async function searchSkillsmp(_query) {
|
|
188
|
-
return { entries: [], total: 0, source: MS.SKILLSMP };
|
|
189
|
-
}
|
|
190
244
|
/**
|
|
191
245
|
* Parse a github.com URL into owner/repo.
|
|
192
246
|
* Returns null if not a GitHub URL.
|
|
193
247
|
*/
|
|
248
|
+
const GITHUB_NAME_RE = /^[a-zA-Z0-9._-]+$/;
|
|
194
249
|
export function parseGitHubUrl(url) {
|
|
195
250
|
const m = url.match(/github\.com\/([^/]+)\/([^/]+)/);
|
|
196
251
|
if (!m)
|
|
197
252
|
return null;
|
|
198
|
-
|
|
253
|
+
const owner = m[1];
|
|
254
|
+
const repo = m[2].replace(/\.git$/, "");
|
|
255
|
+
if (!GITHUB_NAME_RE.test(owner) || !GITHUB_NAME_RE.test(repo))
|
|
256
|
+
return null;
|
|
257
|
+
return { owner, repo };
|
|
199
258
|
}
|
|
200
259
|
/**
|
|
201
260
|
* Search a GitHub repo for skills, agents, and commands.
|
|
202
261
|
* Uses the recursive tree endpoint (same pattern as fetchAnthropicSkillsList).
|
|
203
262
|
*/
|
|
204
|
-
|
|
205
|
-
|
|
263
|
+
async function fetchGitHubRepoStars(owner, repo, options) {
|
|
264
|
+
try {
|
|
265
|
+
const data = await cachedFetch(`github-stars-${owner}-${repo}`, async () => {
|
|
266
|
+
// Tier 1: ungh.cc — free, no auth, no rate limit
|
|
267
|
+
try {
|
|
268
|
+
const unghRes = await fetch(`https://ungh.cc/repos/${owner}/${repo}`, { signal: AbortSignal.timeout(TIMEOUT_UNGH) });
|
|
269
|
+
if (unghRes.ok) {
|
|
270
|
+
const json = (await unghRes.json());
|
|
271
|
+
if (json.repo?.stars != null)
|
|
272
|
+
return { stars: json.repo.stars };
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Fall through to GitHub API
|
|
277
|
+
}
|
|
278
|
+
// Tier 2/3: GitHub API (with token if available, unauth otherwise)
|
|
279
|
+
const headers = { Accept: "application/vnd.github.v3+json" };
|
|
280
|
+
const ghToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
|
|
281
|
+
if (ghToken)
|
|
282
|
+
headers.Authorization = `Bearer ${ghToken}`;
|
|
283
|
+
const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers, signal: AbortSignal.timeout(TIMEOUT_GITHUB) });
|
|
284
|
+
if (!res.ok)
|
|
285
|
+
throw new Error(`GitHub API ${res.status} for ${owner}/${repo}`);
|
|
286
|
+
const json = (await res.json());
|
|
287
|
+
return { stars: json.stargazers_count };
|
|
288
|
+
}, options);
|
|
289
|
+
return data.stars;
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
export async function searchGitHubRepo(owner, repo, query, sourceName, options) {
|
|
296
|
+
const [items, stars] = await Promise.all([
|
|
297
|
+
fetchGitHubRepoItems(owner, repo, options),
|
|
298
|
+
fetchGitHubRepoStars(owner, repo, options),
|
|
299
|
+
]);
|
|
206
300
|
const q = query.toLowerCase();
|
|
207
301
|
const filtered = q
|
|
208
302
|
? items.filter(i => i.name.toLowerCase().includes(q) || (i.description?.toLowerCase().includes(q) ?? false))
|
|
@@ -213,24 +307,37 @@ export async function searchGitHubRepo(owner, repo, query, sourceName) {
|
|
|
213
307
|
author: owner,
|
|
214
308
|
source: sourceName,
|
|
215
309
|
type: item.type,
|
|
310
|
+
stars,
|
|
311
|
+
url: `https://github.com/${owner}/${repo}/tree/main/${item.path}`,
|
|
216
312
|
}));
|
|
313
|
+
// If the repo has multiple item types, add a plugin entry representing the whole repo
|
|
314
|
+
const types = new Set(items.map(i => i.type));
|
|
315
|
+
if (types.size > 1 && (!q || repo.toLowerCase().includes(q) || owner.toLowerCase().includes(q))) {
|
|
316
|
+
const counts = [...types].map(t => `${items.filter(i => i.type === t).length} ${t}s`).join(", ");
|
|
317
|
+
entries.unshift({
|
|
318
|
+
name: repo,
|
|
319
|
+
description: `Plugin bundle: ${counts}`,
|
|
320
|
+
author: owner,
|
|
321
|
+
source: sourceName,
|
|
322
|
+
type: "plugin",
|
|
323
|
+
stars,
|
|
324
|
+
url: `https://github.com/${owner}/${repo}`,
|
|
325
|
+
});
|
|
326
|
+
}
|
|
217
327
|
return { entries, total: entries.length, source: sourceName };
|
|
218
328
|
}
|
|
219
329
|
/**
|
|
220
330
|
* Fetch all items (skills, agents, commands) from a GitHub repo tree.
|
|
221
331
|
*/
|
|
222
|
-
export async function fetchGitHubRepoItems(owner, repo) {
|
|
223
|
-
const
|
|
224
|
-
if (!res.ok)
|
|
225
|
-
return [];
|
|
226
|
-
const data = (await res.json());
|
|
332
|
+
export async function fetchGitHubRepoItems(owner, repo, options) {
|
|
333
|
+
const tree = await fetchGitHubTree(owner, repo, options);
|
|
227
334
|
const items = [];
|
|
228
335
|
const dirMap = {
|
|
229
336
|
skills: "skill",
|
|
230
337
|
agents: "agent",
|
|
231
338
|
commands: "command",
|
|
232
339
|
};
|
|
233
|
-
for (const t of
|
|
340
|
+
for (const t of tree) {
|
|
234
341
|
if (t.type !== "blob")
|
|
235
342
|
continue;
|
|
236
343
|
for (const [dir, itemType] of Object.entries(dirMap)) {
|
|
@@ -284,17 +391,135 @@ export async function installGitHubRepoItem(owner, repo, entry) {
|
|
|
284
391
|
await fs.mkdir(localDir, { recursive: true });
|
|
285
392
|
const filePath = path.join(localDir, fileName);
|
|
286
393
|
await fs.writeFile(filePath, content, "utf-8");
|
|
287
|
-
return { success: true, path: filePath };
|
|
394
|
+
return { success: true, path: filePath, contentHash: computeContentHash(content) };
|
|
395
|
+
}
|
|
396
|
+
// ============================================================================
|
|
397
|
+
// npm Download Enrichment
|
|
398
|
+
// ============================================================================
|
|
399
|
+
/**
|
|
400
|
+
* Enrich marketplace entries with npm weekly download counts.
|
|
401
|
+
* Tries the entry name as an npm package name (works for most MCP servers).
|
|
402
|
+
* Uses cachedFetch to avoid redundant API calls.
|
|
403
|
+
*/
|
|
404
|
+
export async function enrichWithNpmDownloads(entries) {
|
|
405
|
+
// Only enrich MCP-type entries (not plugins — plugin names don't match npm packages)
|
|
406
|
+
const candidates = entries.filter(e => e.downloads == null && e.type === "mcp");
|
|
407
|
+
if (candidates.length === 0)
|
|
408
|
+
return;
|
|
409
|
+
// Batch: max BATCH_NPM concurrent
|
|
410
|
+
const batch = candidates.slice(0, BATCH_NPM);
|
|
411
|
+
await Promise.allSettled(batch.map(async (entry) => {
|
|
412
|
+
try {
|
|
413
|
+
// Use the npm package name — for scoped names like @modelcontextprotocol/server-*
|
|
414
|
+
// the entry name is usually the npm package name for MCP entries
|
|
415
|
+
const pkgName = entry.name;
|
|
416
|
+
const data = await cachedFetch(`npm-dl-${pkgName}`, async () => {
|
|
417
|
+
// First verify the package exists and is MCP-related (check keywords)
|
|
418
|
+
const metaRes = await fetch(`https://registry.npmjs.org/${encodeURIComponent(pkgName)}`, { signal: AbortSignal.timeout(TIMEOUT_NPM), headers: { Accept: "application/vnd.npm.install-v1+json" } });
|
|
419
|
+
if (!metaRes.ok)
|
|
420
|
+
return { downloads: undefined };
|
|
421
|
+
const meta = (await metaRes.json());
|
|
422
|
+
// Validate it's actually an MCP package (description or keywords mention "mcp")
|
|
423
|
+
const desc = (meta.description || "").toLowerCase();
|
|
424
|
+
const kw = (meta.keywords || []).join(" ").toLowerCase();
|
|
425
|
+
if (!desc.includes("mcp") && !kw.includes("mcp") && !desc.includes("model context protocol")) {
|
|
426
|
+
return { downloads: undefined };
|
|
427
|
+
}
|
|
428
|
+
const dlRes = await fetch(`https://api.npmjs.org/downloads/point/last-week/${encodeURIComponent(pkgName)}`, { signal: AbortSignal.timeout(TIMEOUT_NPM) });
|
|
429
|
+
if (!dlRes.ok)
|
|
430
|
+
return { downloads: undefined };
|
|
431
|
+
const json = (await dlRes.json());
|
|
432
|
+
return { downloads: json.downloads };
|
|
433
|
+
});
|
|
434
|
+
if (data.downloads != null && data.downloads > 0) {
|
|
435
|
+
entry.downloads = data.downloads;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
catch {
|
|
439
|
+
// Non-critical
|
|
440
|
+
}
|
|
441
|
+
}));
|
|
442
|
+
}
|
|
443
|
+
// ============================================================================
|
|
444
|
+
// GitHub Stars Enrichment (for entries with GitHub URLs)
|
|
445
|
+
// ============================================================================
|
|
446
|
+
/**
|
|
447
|
+
* Resolve a GitHub URL from an npm package name via the npm registry.
|
|
448
|
+
* Returns a github.com URL or undefined.
|
|
449
|
+
*/
|
|
450
|
+
async function resolveGitHubUrlFromNpm(pkg) {
|
|
451
|
+
try {
|
|
452
|
+
const data = await cachedFetch(`npm-repo-${pkg}`, async () => {
|
|
453
|
+
const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(pkg)}`, { signal: AbortSignal.timeout(TIMEOUT_NPM) });
|
|
454
|
+
if (!res.ok)
|
|
455
|
+
throw new Error(`npm ${res.status}`);
|
|
456
|
+
const json = (await res.json());
|
|
457
|
+
const repoUrl = typeof json.repository === "string" ? json.repository : json.repository?.url;
|
|
458
|
+
return { repoUrl: repoUrl || null };
|
|
459
|
+
});
|
|
460
|
+
if (data.repoUrl && data.repoUrl.includes("github.com")) {
|
|
461
|
+
// Normalize git+https://github.com/foo/bar.git → https://github.com/foo/bar
|
|
462
|
+
return data.repoUrl.replace(/^git\+/, "").replace(/\.git$/, "");
|
|
463
|
+
}
|
|
464
|
+
return undefined;
|
|
465
|
+
}
|
|
466
|
+
catch {
|
|
467
|
+
return undefined;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Enrich marketplace entries with GitHub star counts.
|
|
472
|
+
* For entries without a GitHub URL but with an npm package, resolves the repo via npm first.
|
|
473
|
+
* Uses ungh.cc → GitHub API (token) → GitHub API (unauth) priority chain.
|
|
474
|
+
*/
|
|
475
|
+
export async function enrichWithGitHubStars(entries) {
|
|
476
|
+
// Phase 1: resolve GitHub URLs from npm packages for entries missing a GitHub URL
|
|
477
|
+
const needsNpmResolve = entries.filter(e => e.stars == null && e.npmPackage && (!e.url || !e.url.includes("github.com")));
|
|
478
|
+
if (needsNpmResolve.length > 0) {
|
|
479
|
+
await Promise.allSettled(needsNpmResolve.map(async (entry) => {
|
|
480
|
+
const ghUrl = await resolveGitHubUrlFromNpm(entry.npmPackage);
|
|
481
|
+
if (ghUrl)
|
|
482
|
+
entry.url = ghUrl;
|
|
483
|
+
}));
|
|
484
|
+
}
|
|
485
|
+
// Phase 2: enrich with stars
|
|
486
|
+
const needsStars = entries.filter(e => e.url && e.stars == null && e.url.includes("github.com"));
|
|
487
|
+
if (needsStars.length === 0)
|
|
488
|
+
return;
|
|
489
|
+
// Extract owner/repo from URL, dedupe repos
|
|
490
|
+
const repoMap = new Map();
|
|
491
|
+
for (const entry of needsStars) {
|
|
492
|
+
const parsed = parseGitHubUrl(entry.url);
|
|
493
|
+
if (!parsed)
|
|
494
|
+
continue;
|
|
495
|
+
const key = `${parsed.owner}/${parsed.repo}`;
|
|
496
|
+
if (!repoMap.has(key))
|
|
497
|
+
repoMap.set(key, []);
|
|
498
|
+
repoMap.get(key).push(entry);
|
|
499
|
+
}
|
|
500
|
+
// Fetch stars in parallel (max BATCH_GITHUB repos per batch to be polite)
|
|
501
|
+
const repos = [...repoMap.entries()].slice(0, BATCH_GITHUB);
|
|
502
|
+
await Promise.allSettled(repos.map(async ([repo, repoEntries]) => {
|
|
503
|
+
try {
|
|
504
|
+
const [owner, repoName] = repo.split("/");
|
|
505
|
+
const stars = await fetchGitHubRepoStars(owner, repoName);
|
|
506
|
+
if (stars != null) {
|
|
507
|
+
for (const entry of repoEntries)
|
|
508
|
+
entry.stars = stars;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
catch {
|
|
512
|
+
// Non-critical — skip enrichment for failed repos
|
|
513
|
+
}
|
|
514
|
+
}));
|
|
288
515
|
}
|
|
289
516
|
// ============================================================================
|
|
290
517
|
// Searcher map
|
|
291
518
|
// ============================================================================
|
|
292
519
|
export const KNOWN_SEARCHERS = {
|
|
293
|
-
[MS.SKILLSMP]: searchSkillsmp,
|
|
294
|
-
[MS.OPENSKILLS]: searchOpenSkills,
|
|
295
520
|
[MS.CLAUDE_PLUGINS]: searchClaudePlugins,
|
|
296
521
|
[MS.MCP_REGISTRY]: searchMcpRegistry,
|
|
522
|
+
[MS.GLAMA]: searchGlama,
|
|
297
523
|
[MS.ANTHROPIC_SKILLS]: searchAnthropicSkills,
|
|
298
|
-
[MS.CLAWHUB]: searchClawHub,
|
|
299
524
|
};
|
|
300
525
|
//# sourceMappingURL=marketplace-sources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-sources.js","sourceRoot":"","sources":["../../src/core/marketplace-sources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marketplace-sources.js","sourceRoot":"","sources":["../../src/core/marketplace-sources.ts"],"names":[],"mappings":"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"}
|