claudeup 1.4.5 → 1.6.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.
@@ -78,111 +78,141 @@ function getGitRemote(marketplacePath) {
78
78
  return undefined;
79
79
  }
80
80
  }
81
+ /**
82
+ * Scan a single marketplace directory and return marketplace info
83
+ */
84
+ async function scanSingleMarketplace(marketplacePath, marketplaceName) {
85
+ const manifestPath = path.join(marketplacePath, '.claude-plugin', 'marketplace.json');
86
+ if (!(await fs.pathExists(manifestPath)))
87
+ return null;
88
+ try {
89
+ const manifest = await fs.readJson(manifestPath);
90
+ const gitRepo = getGitRemote(marketplacePath);
91
+ const plugins = [];
92
+ const validManifestPlugins = [];
93
+ let manifestModified = false;
94
+ if (manifest.plugins && Array.isArray(manifest.plugins)) {
95
+ for (const plugin of manifest.plugins) {
96
+ // Try to scan plugin directory for component counts
97
+ let agents = [];
98
+ let commands = [];
99
+ let skills = [];
100
+ let mcpServers = [];
101
+ // Handle both string sources (local paths) and object sources (remote URLs)
102
+ const sourceStr = typeof plugin.source === 'string' ? plugin.source : null;
103
+ if (sourceStr) {
104
+ const pluginPath = path.join(marketplacePath, sourceStr.replace('./', ''));
105
+ // Remove plugins whose source directory doesn't exist
106
+ if (!(await fs.pathExists(pluginPath))) {
107
+ manifestModified = true;
108
+ continue;
109
+ }
110
+ try {
111
+ // Scan for agents
112
+ const agentsDir = path.join(pluginPath, 'agents');
113
+ if (await fs.pathExists(agentsDir)) {
114
+ const agentFiles = await fs.readdir(agentsDir);
115
+ agents = agentFiles.filter((f) => f.endsWith('.md')).map((f) => f.replace('.md', ''));
116
+ }
117
+ // Scan for commands
118
+ const commandsDir = path.join(pluginPath, 'commands');
119
+ if (await fs.pathExists(commandsDir)) {
120
+ const cmdFiles = await fs.readdir(commandsDir);
121
+ commands = cmdFiles.filter((f) => f.endsWith('.md')).map((f) => f.replace('.md', ''));
122
+ }
123
+ // Scan for skills
124
+ const skillsDir = path.join(pluginPath, 'skills');
125
+ if (await fs.pathExists(skillsDir)) {
126
+ const skillFiles = await fs.readdir(skillsDir);
127
+ skills = skillFiles.filter((f) => f.endsWith('.md') || fs.statSync(path.join(skillsDir, f)).isDirectory());
128
+ }
129
+ // Scan for MCP servers
130
+ const mcpDir = path.join(pluginPath, 'mcp-servers');
131
+ if (await fs.pathExists(mcpDir)) {
132
+ const mcpFiles = await fs.readdir(mcpDir);
133
+ mcpServers = mcpFiles.filter((f) => f.endsWith('.json')).map((f) => f.replace('.json', ''));
134
+ }
135
+ }
136
+ catch {
137
+ // Ignore scan errors
138
+ }
139
+ }
140
+ validManifestPlugins.push(plugin);
141
+ plugins.push({
142
+ name: plugin.name,
143
+ version: plugin.version || '0.0.0',
144
+ description: plugin.description || '',
145
+ source: plugin.source,
146
+ category: plugin.category,
147
+ author: plugin.author,
148
+ strict: plugin.strict,
149
+ lspServers: plugin.lspServers,
150
+ agents,
151
+ commands,
152
+ skills,
153
+ mcpServers,
154
+ });
155
+ }
156
+ }
157
+ // Update marketplace.json if we removed invalid plugins
158
+ if (manifestModified) {
159
+ manifest.plugins = validManifestPlugins;
160
+ await fs.writeJson(manifestPath, manifest, { spaces: 2 });
161
+ }
162
+ return {
163
+ name: manifest.name || marketplaceName,
164
+ description: manifest.description || manifest.metadata?.description || '',
165
+ plugins,
166
+ gitRepo,
167
+ };
168
+ }
169
+ catch {
170
+ return null;
171
+ }
172
+ }
81
173
  /**
82
174
  * Scan local marketplace cache and return marketplace info
175
+ * Includes both:
176
+ * - Marketplaces in ~/.claude/plugins/marketplaces/
177
+ * - Directory-based marketplaces from known_marketplaces.json
83
178
  */
84
179
  export async function scanLocalMarketplaces() {
85
180
  const marketplaces = new Map();
86
- if (!(await fs.pathExists(CLAUDE_PLUGINS_DIR))) {
87
- return marketplaces;
181
+ // 1. Scan marketplaces from the standard directory
182
+ if (await fs.pathExists(CLAUDE_PLUGINS_DIR)) {
183
+ try {
184
+ const entries = await fs.readdir(CLAUDE_PLUGINS_DIR, { withFileTypes: true });
185
+ for (const entry of entries) {
186
+ if (!entry.isDirectory())
187
+ continue;
188
+ const marketplacePath = path.join(CLAUDE_PLUGINS_DIR, entry.name);
189
+ const marketplace = await scanSingleMarketplace(marketplacePath, entry.name);
190
+ if (marketplace) {
191
+ marketplaces.set(entry.name, marketplace);
192
+ }
193
+ }
194
+ }
195
+ catch {
196
+ // Ignore read errors
197
+ }
88
198
  }
199
+ // 2. Add directory-based marketplaces from known_marketplaces.json
89
200
  try {
90
- const entries = await fs.readdir(CLAUDE_PLUGINS_DIR, { withFileTypes: true });
91
- for (const entry of entries) {
92
- if (!entry.isDirectory())
93
- continue;
94
- const marketplacePath = path.join(CLAUDE_PLUGINS_DIR, entry.name);
95
- const manifestPath = path.join(marketplacePath, '.claude-plugin', 'marketplace.json');
96
- if (!(await fs.pathExists(manifestPath)))
97
- continue;
98
- try {
99
- const manifest = await fs.readJson(manifestPath);
100
- const gitRepo = getGitRemote(marketplacePath);
101
- const plugins = [];
102
- const validManifestPlugins = [];
103
- let manifestModified = false;
104
- if (manifest.plugins && Array.isArray(manifest.plugins)) {
105
- for (const plugin of manifest.plugins) {
106
- // Try to scan plugin directory for component counts
107
- let agents = [];
108
- let commands = [];
109
- let skills = [];
110
- let mcpServers = [];
111
- // Handle both string sources (local paths) and object sources (remote URLs)
112
- const sourceStr = typeof plugin.source === 'string' ? plugin.source : null;
113
- if (sourceStr) {
114
- const pluginPath = path.join(marketplacePath, sourceStr.replace('./', ''));
115
- // Remove plugins whose source directory doesn't exist
116
- if (!(await fs.pathExists(pluginPath))) {
117
- manifestModified = true;
118
- continue;
119
- }
120
- try {
121
- // Scan for agents
122
- const agentsDir = path.join(pluginPath, 'agents');
123
- if (await fs.pathExists(agentsDir)) {
124
- const agentFiles = await fs.readdir(agentsDir);
125
- agents = agentFiles.filter(f => f.endsWith('.md')).map(f => f.replace('.md', ''));
126
- }
127
- // Scan for commands
128
- const commandsDir = path.join(pluginPath, 'commands');
129
- if (await fs.pathExists(commandsDir)) {
130
- const cmdFiles = await fs.readdir(commandsDir);
131
- commands = cmdFiles.filter(f => f.endsWith('.md')).map(f => f.replace('.md', ''));
132
- }
133
- // Scan for skills
134
- const skillsDir = path.join(pluginPath, 'skills');
135
- if (await fs.pathExists(skillsDir)) {
136
- const skillFiles = await fs.readdir(skillsDir);
137
- skills = skillFiles.filter(f => f.endsWith('.md') || (fs.statSync(path.join(skillsDir, f)).isDirectory()));
138
- }
139
- // Scan for MCP servers
140
- const mcpDir = path.join(pluginPath, 'mcp-servers');
141
- if (await fs.pathExists(mcpDir)) {
142
- const mcpFiles = await fs.readdir(mcpDir);
143
- mcpServers = mcpFiles.filter(f => f.endsWith('.json')).map(f => f.replace('.json', ''));
144
- }
145
- }
146
- catch {
147
- // Ignore scan errors
148
- }
149
- }
150
- validManifestPlugins.push(plugin);
151
- plugins.push({
152
- name: plugin.name,
153
- version: plugin.version || '0.0.0',
154
- description: plugin.description || '',
155
- source: plugin.source,
156
- category: plugin.category,
157
- author: plugin.author,
158
- strict: plugin.strict,
159
- lspServers: plugin.lspServers,
160
- agents,
161
- commands,
162
- skills,
163
- mcpServers,
164
- });
201
+ const known = await readKnownMarketplaces();
202
+ for (const [name, entry] of Object.entries(known)) {
203
+ // Only add if it's a directory source AND not already in the map
204
+ if (entry.source.source === 'directory' && entry.installLocation && !marketplaces.has(name)) {
205
+ if (await fs.pathExists(entry.installLocation)) {
206
+ const marketplace = await scanSingleMarketplace(entry.installLocation, name);
207
+ if (marketplace) {
208
+ marketplaces.set(name, marketplace);
165
209
  }
166
210
  }
167
- // Update marketplace.json if we removed invalid plugins
168
- if (manifestModified) {
169
- manifest.plugins = validManifestPlugins;
170
- await fs.writeJson(manifestPath, manifest, { spaces: 2 });
171
- }
172
- marketplaces.set(entry.name, {
173
- name: manifest.name || entry.name,
174
- description: manifest.description || manifest.metadata?.description || '',
175
- plugins,
176
- gitRepo,
177
- });
178
- }
179
- catch {
180
- // Skip invalid marketplace
181
211
  }
182
212
  }
183
213
  }
184
214
  catch {
185
- // Return empty if can't read directory
215
+ // Ignore errors reading known_marketplaces
186
216
  }
187
217
  return marketplaces;
188
218
  }
@@ -298,32 +328,68 @@ async function refreshSingleMarketplace(marketplacePath, name) {
298
328
  /**
299
329
  * Refresh all local marketplaces by running git pull on each
300
330
  * Returns results for each marketplace
331
+ * Includes both:
332
+ * - Marketplaces in ~/.claude/plugins/marketplaces/
333
+ * - Directory-based marketplaces from known_marketplaces.json (if they're git repos)
301
334
  * @param onProgress - Optional callback for progress updates
302
335
  */
303
336
  export async function refreshLocalMarketplaces(onProgress) {
304
337
  const results = [];
305
- if (!(await fs.pathExists(CLAUDE_PLUGINS_DIR))) {
306
- return results;
338
+ // Collect all marketplace paths to refresh
339
+ const marketplacesToRefresh = [];
340
+ // 1. Add marketplaces from the standard directory
341
+ if (await fs.pathExists(CLAUDE_PLUGINS_DIR)) {
342
+ try {
343
+ const entries = await fs.readdir(CLAUDE_PLUGINS_DIR, { withFileTypes: true });
344
+ for (const entry of entries) {
345
+ if (entry.isDirectory()) {
346
+ marketplacesToRefresh.push({
347
+ name: entry.name,
348
+ path: path.join(CLAUDE_PLUGINS_DIR, entry.name),
349
+ });
350
+ }
351
+ }
352
+ }
353
+ catch {
354
+ // Ignore read errors
355
+ }
307
356
  }
357
+ // 2. Add directory-based marketplaces from known_marketplaces.json
308
358
  try {
309
- const entries = await fs.readdir(CLAUDE_PLUGINS_DIR, { withFileTypes: true });
310
- const directories = entries.filter((entry) => entry.isDirectory());
311
- const total = directories.length;
312
- let completed = 0;
313
- // Run git pull on all marketplaces in parallel, but track progress
314
- const promises = directories.map(async (entry) => {
315
- const marketplacePath = path.join(CLAUDE_PLUGINS_DIR, entry.name);
316
- const result = await refreshSingleMarketplace(marketplacePath, entry.name);
317
- completed++;
318
- onProgress?.({ current: completed, total, name: entry.name });
319
- return result;
320
- });
321
- const settled = await Promise.all(promises);
322
- results.push(...settled);
359
+ const known = await readKnownMarketplaces();
360
+ for (const [name, entry] of Object.entries(known)) {
361
+ // Only add if it's a directory source AND not already in the list
362
+ if (entry.source.source === 'directory' &&
363
+ entry.installLocation &&
364
+ !marketplacesToRefresh.some((m) => m.name === name)) {
365
+ // Check if it exists and is a git repo
366
+ const gitDir = path.join(entry.installLocation, '.git');
367
+ if (fs.existsSync(gitDir)) {
368
+ marketplacesToRefresh.push({
369
+ name,
370
+ path: entry.installLocation,
371
+ });
372
+ }
373
+ }
374
+ }
323
375
  }
324
376
  catch {
325
- // Return empty results if can't read directory
377
+ // Ignore errors reading known_marketplaces
326
378
  }
379
+ if (marketplacesToRefresh.length === 0) {
380
+ return results;
381
+ }
382
+ const total = marketplacesToRefresh.length;
383
+ let completed = 0;
384
+ // Run git pull on all marketplaces in parallel, but track progress
385
+ const promises = marketplacesToRefresh.map(async ({ name, path: mpPath }) => {
386
+ const result = await refreshSingleMarketplace(mpPath, name);
387
+ completed++;
388
+ onProgress?.({ current: completed, total, name });
389
+ return result;
390
+ });
391
+ const settled = await Promise.all(promises);
392
+ results.push(...settled);
327
393
  return results;
328
394
  }
329
395
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"local-marketplace.js","sourceRoot":"","sources":["../../src/services/local-marketplace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-marketplace.js","sourceRoot":"","sources":["../../src/services/local-marketplace.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type LocalMarketplace, type RefreshResult, type ProgressCallback, type RepairMarketplaceResult } from './local-marketplace.js';
1
+ import { type LocalMarketplace, type RefreshResult, type ProgressCallback, type RepairMarketplaceResult } from "./local-marketplace.js";
2
2
  export interface ScopeStatus {
3
3
  enabled: boolean;
4
4
  version?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/services/plugin-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/services/plugin-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EAIN,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,MAAM,wBAAwB,CAAC;AAWhC,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAKD,wBAAsB,uBAAuB,CAC5C,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAsE9B;AAED,wBAAsB,mBAAmB,CACxC,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CA+KvB;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA8KvE;AA6BD,wBAAsB,0BAA0B,CAC/C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAaf;AAGD,wBAAsB,4BAA4B,CACjD,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAaf;AAGD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAWD,wBAAsB,wBAAwB,IAAI,OAAO,CACxD,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAC7B,CAEA;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC3C,UAAU,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAcjC;AAGD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { getConfiguredMarketplaces, getEnabledPlugins, readSettings, writeSettings, getGlobalConfiguredMarketplaces, getGlobalEnabledPlugins, getGlobalInstalledPluginVersions, getLocalEnabledPlugins, getLocalInstalledPluginVersions, } from './claude-settings.js';
2
- import { defaultMarketplaces } from '../data/marketplaces.js';
3
- import { scanLocalMarketplaces, refreshLocalMarketplaces, repairAllMarketplaces } from './local-marketplace.js';
4
- import { formatMarketplaceName, isValidGitHubRepo, parsePluginId } from '../utils/string-utils.js';
1
+ import path from "node:path";
2
+ import { getConfiguredMarketplaces, getEnabledPlugins, readSettings, writeSettings, getGlobalConfiguredMarketplaces, getGlobalEnabledPlugins, getGlobalInstalledPluginVersions, getLocalEnabledPlugins, getLocalInstalledPluginVersions, updateInstalledPluginsRegistry, removeFromInstalledPluginsRegistry, } from "./claude-settings.js";
3
+ import { defaultMarketplaces } from "../data/marketplaces.js";
4
+ import { scanLocalMarketplaces, refreshLocalMarketplaces, repairAllMarketplaces, } from "./local-marketplace.js";
5
+ import { formatMarketplaceName, isValidGitHubRepo, parsePluginId, } from "../utils/string-utils.js";
5
6
  // Cache for local marketplaces (session-level) - Promise-based to prevent race conditions
6
7
  let localMarketplacesPromise = null;
7
8
  // Session-level cache for fetched marketplace data (no TTL - persists until explicit refresh)
@@ -28,8 +29,10 @@ export async function fetchMarketplacePlugins(marketplaceName, repo) {
28
29
  return [];
29
30
  }
30
31
  // Validate content-type
31
- const contentType = response.headers.get('content-type');
32
- if (contentType && !contentType.includes('application/json') && !contentType.includes('text/plain')) {
32
+ const contentType = response.headers.get("content-type");
33
+ if (contentType &&
34
+ !contentType.includes("application/json") &&
35
+ !contentType.includes("text/plain")) {
33
36
  console.error(`Invalid content-type for marketplace: ${contentType}`);
34
37
  return [];
35
38
  }
@@ -40,7 +43,7 @@ export async function fetchMarketplacePlugins(marketplaceName, repo) {
40
43
  plugins.push({
41
44
  name: plugin.name,
42
45
  version: plugin.version || null,
43
- description: plugin.description || '',
46
+ description: plugin.description || "",
44
47
  category: plugin.category,
45
48
  author: plugin.author,
46
49
  homepage: plugin.homepage,
@@ -73,13 +76,22 @@ export async function getAvailablePlugins(projectPath) {
73
76
  // Helper to build scope status
74
77
  const buildScopeStatus = (pluginId) => ({
75
78
  userScope: userEnabledPlugins[pluginId] !== undefined
76
- ? { enabled: userEnabledPlugins[pluginId], version: userInstalledVersions[pluginId] }
79
+ ? {
80
+ enabled: userEnabledPlugins[pluginId],
81
+ version: userInstalledVersions[pluginId],
82
+ }
77
83
  : undefined,
78
84
  projectScope: projectEnabledPlugins[pluginId] !== undefined
79
- ? { enabled: projectEnabledPlugins[pluginId], version: projectInstalledVersions[pluginId] }
85
+ ? {
86
+ enabled: projectEnabledPlugins[pluginId],
87
+ version: projectInstalledVersions[pluginId],
88
+ }
80
89
  : undefined,
81
90
  localScope: localEnabledPlugins[pluginId] !== undefined
82
- ? { enabled: localEnabledPlugins[pluginId], version: localInstalledVersions[pluginId] }
91
+ ? {
92
+ enabled: localEnabledPlugins[pluginId],
93
+ version: localInstalledVersions[pluginId],
94
+ }
83
95
  : undefined,
84
96
  });
85
97
  // Get all marketplace names (configured + official/featured defaults)
@@ -111,7 +123,9 @@ export async function getAvailablePlugins(projectPath) {
111
123
  marketplaceDisplay: marketplace.displayName,
112
124
  enabled: isEnabled,
113
125
  installedVersion: installedVersion,
114
- hasUpdate: installedVersion && plugin.version ? compareVersions(plugin.version, installedVersion) > 0 : false,
126
+ hasUpdate: installedVersion && plugin.version
127
+ ? compareVersions(plugin.version, installedVersion) > 0
128
+ : false,
115
129
  ...scopeStatus,
116
130
  category: plugin.category,
117
131
  author: plugin.author,
@@ -139,12 +153,14 @@ export async function getAvailablePlugins(projectPath) {
139
153
  id: pluginId,
140
154
  name: localPlugin.name,
141
155
  version: localPlugin.version,
142
- description: localPlugin.description || '',
156
+ description: localPlugin.description || "",
143
157
  marketplace: mpName,
144
158
  marketplaceDisplay: localMp.name || formatMarketplaceName(mpName),
145
159
  enabled: isEnabled,
146
160
  installedVersion: installedVersion,
147
- hasUpdate: installedVersion ? compareVersions(localPlugin.version, installedVersion) > 0 : false,
161
+ hasUpdate: installedVersion
162
+ ? compareVersions(localPlugin.version, installedVersion) > 0
163
+ : false,
148
164
  ...scopeStatus,
149
165
  category: localPlugin.category,
150
166
  author: localPlugin.author,
@@ -174,8 +190,8 @@ export async function getAvailablePlugins(projectPath) {
174
190
  // Try to get plugin info from local marketplace cache (fallback)
175
191
  const localMp = localMarketplaces.get(mpName);
176
192
  const localPlugin = localMp?.plugins.find((p) => p.name === pluginName);
177
- const latestVersion = localPlugin?.version || installedVersion || 'unknown';
178
- const description = localPlugin?.description || 'Installed plugin';
193
+ const latestVersion = localPlugin?.version || installedVersion || "unknown";
194
+ const description = localPlugin?.description || "Installed plugin";
179
195
  const hasUpdate = installedVersion && localPlugin?.version
180
196
  ? compareVersions(localPlugin.version, installedVersion) > 0
181
197
  : false;
@@ -211,13 +227,22 @@ export async function getGlobalAvailablePlugins() {
211
227
  // Helper to build scope status (show all scopes)
212
228
  const buildScopeStatus = (pluginId) => ({
213
229
  userScope: userEnabledPlugins[pluginId] !== undefined
214
- ? { enabled: userEnabledPlugins[pluginId], version: userInstalledVersions[pluginId] }
230
+ ? {
231
+ enabled: userEnabledPlugins[pluginId],
232
+ version: userInstalledVersions[pluginId],
233
+ }
215
234
  : undefined,
216
235
  projectScope: projectEnabledPlugins[pluginId] !== undefined
217
- ? { enabled: projectEnabledPlugins[pluginId], version: projectInstalledVersions[pluginId] }
236
+ ? {
237
+ enabled: projectEnabledPlugins[pluginId],
238
+ version: projectInstalledVersions[pluginId],
239
+ }
218
240
  : undefined,
219
241
  localScope: localEnabledPlugins[pluginId] !== undefined
220
- ? { enabled: localEnabledPlugins[pluginId], version: localInstalledVersions[pluginId] }
242
+ ? {
243
+ enabled: localEnabledPlugins[pluginId],
244
+ version: localInstalledVersions[pluginId],
245
+ }
221
246
  : undefined,
222
247
  });
223
248
  // Get all marketplace names (configured + official/featured defaults)
@@ -249,7 +274,9 @@ export async function getGlobalAvailablePlugins() {
249
274
  marketplaceDisplay: marketplace.displayName,
250
275
  enabled: isEnabled,
251
276
  installedVersion: installedVersion,
252
- hasUpdate: installedVersion && plugin.version ? compareVersions(plugin.version, installedVersion) > 0 : false,
277
+ hasUpdate: installedVersion && plugin.version
278
+ ? compareVersions(plugin.version, installedVersion) > 0
279
+ : false,
253
280
  ...scopeStatus,
254
281
  category: plugin.category,
255
282
  author: plugin.author,
@@ -277,12 +304,14 @@ export async function getGlobalAvailablePlugins() {
277
304
  id: pluginId,
278
305
  name: localPlugin.name,
279
306
  version: localPlugin.version,
280
- description: localPlugin.description || '',
307
+ description: localPlugin.description || "",
281
308
  marketplace: mpName,
282
309
  marketplaceDisplay: localMp.name || formatMarketplaceName(mpName),
283
310
  enabled: isEnabled,
284
311
  installedVersion: installedVersion,
285
- hasUpdate: installedVersion ? compareVersions(localPlugin.version, installedVersion) > 0 : false,
312
+ hasUpdate: installedVersion
313
+ ? compareVersions(localPlugin.version, installedVersion) > 0
314
+ : false,
286
315
  ...scopeStatus,
287
316
  category: localPlugin.category,
288
317
  author: localPlugin.author,
@@ -312,8 +341,8 @@ export async function getGlobalAvailablePlugins() {
312
341
  // Try to get plugin info from local marketplace cache (fallback)
313
342
  const localMp = localMarketplaces.get(mpName);
314
343
  const localPlugin = localMp?.plugins.find((p) => p.name === pluginName);
315
- const latestVersion = localPlugin?.version || installedVersion || 'unknown';
316
- const description = localPlugin?.description || 'Installed plugin';
344
+ const latestVersion = localPlugin?.version || installedVersion || "unknown";
345
+ const description = localPlugin?.description || "Installed plugin";
317
346
  const hasUpdate = installedVersion && localPlugin?.version
318
347
  ? compareVersions(localPlugin.version, installedVersion) > 0
319
348
  : false;
@@ -336,8 +365,8 @@ export async function getGlobalAvailablePlugins() {
336
365
  function compareVersions(a, b) {
337
366
  if (!a || !b)
338
367
  return 0;
339
- const partsA = a.replace(/^v/, '').split('.').map(Number);
340
- const partsB = b.replace(/^v/, '').split('.').map(Number);
368
+ const partsA = a.replace(/^v/, "").split(".").map(Number);
369
+ const partsB = b.replace(/^v/, "").split(".").map(Number);
341
370
  for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
342
371
  const numA = partsA[i] || 0;
343
372
  const numB = partsB[i] || 0;
@@ -359,6 +388,8 @@ export async function saveInstalledPluginVersion(pluginId, version, projectPath)
359
388
  settings.installedPluginVersions = settings.installedPluginVersions || {};
360
389
  settings.installedPluginVersions[pluginId] = version;
361
390
  await writeSettings(settings, projectPath);
391
+ // Update installed_plugins.json registry
392
+ await updateInstalledPluginsRegistry(pluginId, version, "project", projectPath ? path.resolve(projectPath) : undefined);
362
393
  }
363
394
  // Remove installed plugin version from settings.json
364
395
  export async function removeInstalledPluginVersion(pluginId, projectPath) {
@@ -367,6 +398,8 @@ export async function removeInstalledPluginVersion(pluginId, projectPath) {
367
398
  delete settings.installedPluginVersions[pluginId];
368
399
  await writeSettings(settings, projectPath);
369
400
  }
401
+ // Remove from installed_plugins.json registry
402
+ await removeFromInstalledPluginsRegistry(pluginId, "project", projectPath ? path.resolve(projectPath) : undefined);
370
403
  }
371
404
  // Clear marketplace cache
372
405
  export function clearMarketplaceCache() {