agents-pkg 0.3.2 → 0.5.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.
@@ -5,11 +5,17 @@
5
5
  import { type MarketplaceManifest } from './lib/marketplace.js';
6
6
  /**
7
7
  * Install marketplace from an already-resolved source dir. Used by add-plugin and update.
8
- * Returns list of installed plugin names.
8
+ * Returns { installed, pluginHooks } so caller can write lock.
9
9
  */
10
10
  export declare function installMarketplaceFromDir(manifest: MarketplaceManifest, sourceDir: string, options?: {
11
- pluginNameFilter?: string;
11
+ pluginNames?: string[];
12
12
  global?: boolean;
13
- }): Promise<string[]>;
13
+ }): Promise<{
14
+ installed: string[];
15
+ pluginHooks: Record<string, Array<{
16
+ hookName: string;
17
+ command: string;
18
+ }>>;
19
+ }>;
14
20
  export declare function runAddPlugin(args: string[]): Promise<void>;
15
21
  //# sourceMappingURL=add-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-plugin.d.ts","sourceRoot":"","sources":["../src/add-plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AA8H9B;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,OAAO,CAAC,MAAM,EAAE,CAAC,CAwCnB;AAqBD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsChE"}
1
+ {"version":3,"file":"add-plugin.d.ts","sourceRoot":"","sources":["../src/add-plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAoJ9B;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAAE,CAAC,CAoD7G;AAsBD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDhE"}
@@ -5,12 +5,13 @@
5
5
  import { join, resolve, sep } from 'path';
6
6
  import { readdir, readFile, stat, cp } from 'fs/promises';
7
7
  import { resolveSourceToDir } from './lib/source-dir.js';
8
- import { readMarketplaceManifest, getPluginStorePath, } from './lib/marketplace.js';
9
- import { REPO_SKILLS_DIR, REPO_COMMANDS_DIR, REPO_HOOKS_FILE, REPO_RULES_DIR, } from './lib/constants.js';
10
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
8
+ import { readMarketplaceManifest, getPluginStorePath, getPluginVersionFromSource, } from './lib/marketplace.js';
9
+ import { REPO_SKILLS_DIR, REPO_COMMANDS_DIR, REPO_HOOKS_FILE, REPO_MCP_FILE, REPO_RULES_DIR, } from './lib/constants.js';
10
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir, getCursorMcpPath } from './lib/paths.js';
11
11
  import { createSymlink } from './lib/symlink.js';
12
12
  import { copyAgentsFromPluginStore } from './lib/agents-copy.js';
13
- import { mergeHooksIntoProject } from './lib/hooks.js';
13
+ import { mergeHooksInto } from './lib/hooks.js';
14
+ import { mergeMcpIntoCursor } from './lib/mcp.js';
14
15
  import { readLock, writeLock } from './lib/lock.js';
15
16
  import { fatal } from './lib/errors.js';
16
17
  function isContainedIn(childPath, parentPath) {
@@ -70,10 +71,12 @@ async function listRuleFiles(rulesDir) {
70
71
  }
71
72
  }
72
73
  /**
73
- * Copy plugin dir to store, then create symlinks for agents, commands, skills, rules; merge hooks.
74
+ * Copy plugin dir to store, then create symlinks for agents, commands, skills, rules; merge hooks and mcp.
75
+ * Returns { done, hookEntries } so caller can store pluginHooks in lock.
74
76
  */
75
- async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd) {
77
+ async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd, global, marketplaceName, pluginName) {
76
78
  const done = [];
79
+ let hookEntries = [];
77
80
  // Agents are copied (not symlinked) so Cursor recognizes subagents
78
81
  const agentNames = await copyAgentsFromPluginStore(pluginStorePath, cursorAgentsDir);
79
82
  if (agentNames.length > 0)
@@ -110,25 +113,42 @@ async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir
110
113
  const raw = await readFile(hooksPath, 'utf-8');
111
114
  const repoHooks = JSON.parse(raw);
112
115
  if (repoHooks.hooks && typeof repoHooks.hooks === 'object' && Object.keys(repoHooks.hooks).length > 0) {
113
- await mergeHooksIntoProject(repoHooks, cwd);
116
+ hookEntries = await mergeHooksInto(repoHooks, global, cwd);
114
117
  done.push('hooks');
115
118
  }
116
119
  }
117
120
  catch {
118
121
  // no hooks or invalid
119
122
  }
120
- return done;
123
+ const mcpPath = join(pluginStorePath, REPO_MCP_FILE);
124
+ try {
125
+ const raw = await readFile(mcpPath, 'utf-8');
126
+ const pluginMcp = JSON.parse(raw);
127
+ if (pluginMcp.mcpServers && typeof pluginMcp.mcpServers === 'object' && Object.keys(pluginMcp.mcpServers).length > 0) {
128
+ const cursorMcpPath = getCursorMcpPath(global, cwd);
129
+ const prefix = `agents-pkg:${marketplaceName}/${pluginName}:`;
130
+ await mergeMcpIntoCursor(pluginMcp, cursorMcpPath, prefix);
131
+ done.push('mcp');
132
+ }
133
+ }
134
+ catch {
135
+ // no mcp or invalid
136
+ }
137
+ return { done, hookEntries };
121
138
  }
122
139
  /**
123
140
  * Install marketplace from an already-resolved source dir. Used by add-plugin and update.
124
- * Returns list of installed plugin names.
141
+ * Returns { installed, pluginHooks } so caller can write lock.
125
142
  */
126
143
  export async function installMarketplaceFromDir(manifest, sourceDir, options = {}) {
127
144
  let pluginsToInstall = manifest.plugins;
128
- if (options.pluginNameFilter) {
129
- pluginsToInstall = manifest.plugins.filter((p) => p.name === options.pluginNameFilter);
130
- if (pluginsToInstall.length === 0) {
131
- fatal(`Plugin "${options.pluginNameFilter}" not found in marketplace. Available: ${manifest.plugins.map((p) => p.name).join(', ')}`);
145
+ if (options.pluginNames && options.pluginNames.length > 0) {
146
+ const requested = new Set(options.pluginNames);
147
+ pluginsToInstall = manifest.plugins.filter((p) => requested.has(p.name));
148
+ const found = new Set(pluginsToInstall.map((p) => p.name));
149
+ const missing = options.pluginNames.filter((n) => !found.has(n));
150
+ if (missing.length > 0) {
151
+ fatal(`Plugin(s) not found in marketplace: ${missing.join(', ')}. Available: ${manifest.plugins.map((p) => p.name).join(', ')}`);
132
152
  }
133
153
  }
134
154
  const global = options.global !== false;
@@ -139,6 +159,7 @@ export async function installMarketplaceFromDir(manifest, sourceDir, options = {
139
159
  const cursorSkillsDir = getCursorSkillsDir(global, cwd);
140
160
  const cursorRulesDir = getCursorRulesDir(global, cwd);
141
161
  const installed = [];
162
+ const pluginHooks = {};
142
163
  for (const plugin of pluginsToInstall) {
143
164
  const pluginDir = join(sourceDir, plugin.source);
144
165
  const absPluginDir = resolve(pluginDir);
@@ -149,11 +170,14 @@ export async function installMarketplaceFromDir(manifest, sourceDir, options = {
149
170
  const { mkdir } = await import('fs/promises');
150
171
  await mkdir(storePath, { recursive: true });
151
172
  await cp(pluginDir, storePath, { recursive: true });
152
- const done = await installPlugin(storePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd);
153
- if (done.length > 0)
173
+ const { done, hookEntries } = await installPlugin(storePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd, global, manifest.name, plugin.name);
174
+ if (done.length > 0) {
154
175
  installed.push(plugin.name);
176
+ if (hookEntries.length > 0)
177
+ pluginHooks[plugin.name] = hookEntries;
178
+ }
155
179
  }
156
- return installed;
180
+ return { installed, pluginHooks };
157
181
  }
158
182
  function parseAddPluginArgs(args) {
159
183
  let global = true;
@@ -172,14 +196,14 @@ function parseAddPluginArgs(args) {
172
196
  positionals.push(arg.trim());
173
197
  }
174
198
  }
175
- const source = positionals[0];
176
- const pluginNameFilter = positionals[1]?.trim() || undefined;
177
- return { source: source ?? '', pluginNameFilter, global };
199
+ const source = positionals[0] ?? '';
200
+ const pluginNames = positionals.length > 1 ? positionals.slice(1).filter((s) => s.length > 0) : undefined;
201
+ return { source, pluginNames, global };
178
202
  }
179
203
  export async function runAddPlugin(args) {
180
- const { source, pluginNameFilter, global } = parseAddPluginArgs(args);
204
+ const { source, pluginNames, global } = parseAddPluginArgs(args);
181
205
  if (!source) {
182
- fatal('Usage: agents-pkg add-plugin <source> [plugin-name] [--global | --project]\n source = repo URL or local path; optional plugin-name = install only that plugin.\n --global (default) = symlinks in ~/.cursor/*; --project = symlinks in project .cursor/*.');
206
+ fatal('Usage: agents-pkg add-plugin <source> [plugin-name...] [--global | --project]\n source = repo URL or local path; optional plugin names = install only those plugins (default: all).\n --global (default) = symlinks in ~/.cursor/*; --project = symlinks in project .cursor/*.');
183
207
  }
184
208
  const { path: sourceDir, cleanup } = await resolveSourceToDir(source).catch((e) => {
185
209
  fatal(e instanceof Error ? e.message : String(e));
@@ -187,14 +211,24 @@ export async function runAddPlugin(args) {
187
211
  try {
188
212
  const manifest = await readMarketplaceManifest(sourceDir);
189
213
  const version = manifest.metadata?.version ?? '0.0.0';
190
- const installed = await installMarketplaceFromDir(manifest, sourceDir, {
191
- pluginNameFilter,
214
+ const { installed, pluginHooks } = await installMarketplaceFromDir(manifest, sourceDir, {
215
+ pluginNames,
192
216
  global,
193
217
  });
194
218
  if (installed.length === 0) {
195
- console.log(`No agents, commands, skills, rules, or hooks found in the selected plugin(s).`);
219
+ console.log(`No agents, commands, skills, rules, hooks, or mcp found in the selected plugin(s).`);
196
220
  return;
197
221
  }
222
+ const pluginVersions = {};
223
+ for (const pluginName of installed) {
224
+ const plugin = manifest.plugins.find((p) => p.name === pluginName);
225
+ if (plugin) {
226
+ pluginVersions[pluginName] = await getPluginVersionFromSource(plugin, sourceDir);
227
+ }
228
+ else {
229
+ pluginVersions[pluginName] = '0.0.0';
230
+ }
231
+ }
198
232
  console.log(`Installed marketplace "${manifest.name}" (v${version}): ${installed.join(', ')}.`);
199
233
  const lock = await readLock();
200
234
  lock.marketplaces[manifest.name] = {
@@ -204,6 +238,8 @@ export async function runAddPlugin(args) {
204
238
  pluginNames: installed,
205
239
  updatedAt: new Date().toISOString(),
206
240
  global,
241
+ pluginHooks: Object.keys(pluginHooks).length > 0 ? pluginHooks : undefined,
242
+ pluginVersions,
207
243
  };
208
244
  await writeLock(lock);
209
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-plugin.js","sourceRoot":"","sources":["../src/add-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-plugin.js","sourceRoot":"","sources":["../src/add-plugin.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -29,7 +29,7 @@ function showBanner() {
29
29
  console.log('Usage: agents-pkg <command> [options]');
30
30
  console.log('');
31
31
  console.log('Commands:');
32
- console.log(' add-plugin <source> [plugin-name] Install marketplace (--global default, --project for current project only)');
32
+ console.log(' add-plugin <source> [plugin-name...] Install marketplace, optionally only named plugins (--global default, --project for current project only)');
33
33
  console.log(' list List installed marketplaces and their plugins');
34
34
  console.log(' del-plugin <marketplace> <plugin> Remove one plugin from a marketplace');
35
35
  console.log(' del-marketplace <name> Uninstall entire marketplace');
@@ -37,6 +37,7 @@ function showBanner() {
37
37
  console.log('');
38
38
  console.log('Examples:');
39
39
  console.log(' agents-pkg add-plugin https://gitlab.com/org/ai-kit');
40
+ console.log(' agents-pkg add-plugin https://gitlab.com/org/ai-kit plugin-a plugin-b');
40
41
  console.log(' agents-pkg add-plugin ./local-repo --project');
41
42
  console.log(' agents-pkg list');
42
43
  console.log(' agents-pkg del-plugin ai-engineering-kit ai-kit-backend');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"del-marketplace.d.ts","sourceRoot":"","sources":["../src/del-marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCrE"}
1
+ {"version":3,"file":"del-marketplace.d.ts","sourceRoot":"","sources":["../src/del-marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CrE"}
@@ -2,10 +2,12 @@
2
2
  * del-marketplace — Uninstall a marketplace by name (remove symlinks, delete store, update lock).
3
3
  */
4
4
  import { rm } from 'fs/promises';
5
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
5
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir, getCursorMcpPath } from './lib/paths.js';
6
6
  import { getMarketplaceStorePath, getPluginStorePath } from './lib/marketplace.js';
7
7
  import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
8
8
  import { removeCopiedAgentsForPlugin } from './lib/agents-copy.js';
9
+ import { removeHookEntries } from './lib/hooks.js';
10
+ import { removeMcpServersByPrefix } from './lib/mcp.js';
9
11
  import { readLock, writeLock } from './lib/lock.js';
10
12
  import { fatal } from './lib/errors.js';
11
13
  export async function runDelMarketplace(args) {
@@ -25,6 +27,13 @@ export async function runDelMarketplace(args) {
25
27
  const cursorCommandsDir = getCursorCommandsDir(global, cwd);
26
28
  const cursorSkillsDir = getCursorSkillsDir(global, cwd);
27
29
  const cursorRulesDir = getCursorRulesDir(global, cwd);
30
+ const cursorMcpPath = getCursorMcpPath(global, cwd);
31
+ for (const pluginName of entry.pluginNames ?? []) {
32
+ if (entry.pluginHooks?.[pluginName]?.length) {
33
+ await removeHookEntries(entry.pluginHooks[pluginName], global, cwd);
34
+ }
35
+ await removeMcpServersByPrefix(cursorMcpPath, `agents-pkg:${name}/${pluginName}:`);
36
+ }
28
37
  for (const pluginName of entry.pluginNames ?? []) {
29
38
  const pluginStorePath = getPluginStorePath(name, pluginName);
30
39
  await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
@@ -1 +1 @@
1
- {"version":3,"file":"del-marketplace.js","sourceRoot":"","sources":["../src/del-marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,gGAAgG,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC;IACtC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,2BAA2B,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,gCAAgC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,gCAAgC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,gCAAgC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,gCAAgC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,6BAA6B,SAAS,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"del-marketplace.js","sourceRoot":"","sources":["../src/del-marketplace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"del-plugin.d.ts","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChE"}
1
+ {"version":3,"file":"del-plugin.d.ts","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDhE"}
@@ -3,10 +3,12 @@
3
3
  * Removes that plugin's symlinks and store dir; updates lock. If the last plugin is removed, the marketplace entry is removed.
4
4
  */
5
5
  import { rm } from 'fs/promises';
6
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
6
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir, getCursorMcpPath } from './lib/paths.js';
7
7
  import { getPluginStorePath } from './lib/marketplace.js';
8
8
  import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
9
9
  import { removeCopiedAgentsForPlugin } from './lib/agents-copy.js';
10
+ import { removeHookEntries } from './lib/hooks.js';
11
+ import { removeMcpServersByPrefix } from './lib/mcp.js';
10
12
  import { readLock, writeLock } from './lib/lock.js';
11
13
  import { fatal } from './lib/errors.js';
12
14
  export async function runDelPlugin(args) {
@@ -30,6 +32,11 @@ export async function runDelPlugin(args) {
30
32
  const cursorCommandsDir = getCursorCommandsDir(global, cwd);
31
33
  const cursorSkillsDir = getCursorSkillsDir(global, cwd);
32
34
  const cursorRulesDir = getCursorRulesDir(global, cwd);
35
+ if (entry.pluginHooks?.[pluginName]?.length) {
36
+ await removeHookEntries(entry.pluginHooks[pluginName], global, cwd);
37
+ }
38
+ const cursorMcpPath = getCursorMcpPath(global, cwd);
39
+ await removeMcpServersByPrefix(cursorMcpPath, `agents-pkg:${marketplaceName}/${pluginName}:`);
33
40
  await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
34
41
  await removeSymlinksInDirPointingUnder(cursorAgentsDir, pluginStorePath);
35
42
  await removeSymlinksInDirPointingUnder(cursorCommandsDir, pluginStorePath);
@@ -42,6 +49,10 @@ export async function runDelPlugin(args) {
42
49
  console.warn(`Could not remove store at ${pluginStorePath}:`, e instanceof Error ? e.message : String(e));
43
50
  }
44
51
  entry.pluginNames = entry.pluginNames.filter((n) => n !== pluginName);
52
+ if (entry.pluginHooks)
53
+ delete entry.pluginHooks[pluginName];
54
+ if (entry.pluginVersions)
55
+ delete entry.pluginVersions[pluginName];
45
56
  if (entry.pluginNames.length === 0) {
46
57
  delete lock.marketplaces[marketplaceName];
47
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"del-plugin.js","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"del-plugin.js","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,13 @@ export declare const CURRENT_LOCK_VERSION = 1;
9
9
  export declare const MARKETPLACE_DIR = "agents-pkg/marketplace";
10
10
  /** Path relative to resolved source dir: .cursor-plugin/marketplace.json */
11
11
  export declare const MARKETPLACE_JSON = ".cursor-plugin/marketplace.json";
12
+ /** Plugin manifest at plugin root: plugin.json with top-level version */
13
+ export declare const PLUGIN_JSON = "plugin.json";
12
14
  /** Plugin layout inside each plugin dir (agents, commands, skills, hooks, rules) */
13
15
  export declare const REPO_SKILLS_DIR = "skills";
14
16
  export declare const REPO_AGENTS_DIR = "agents";
15
17
  export declare const REPO_COMMANDS_DIR = "commands";
16
18
  export declare const REPO_HOOKS_FILE = "hooks/hooks.json";
19
+ export declare const REPO_MCP_FILE = "mcp/mcp.json";
17
20
  export declare const REPO_RULES_DIR = "rules";
18
21
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,SAAS,0BAA0B,CAAC;AACjD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,oFAAoF;AACpF,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAElE,oFAAoF;AACpF,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,SAAS,0BAA0B,CAAC;AACjD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,oFAAoF;AACpF,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAElE,yEAAyE;AACzE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,oFAAoF;AACpF,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,cAAc,UAAU,CAAC"}
@@ -9,10 +9,13 @@ export const CURRENT_LOCK_VERSION = 1;
9
9
  export const MARKETPLACE_DIR = 'agents-pkg/marketplace';
10
10
  /** Path relative to resolved source dir: .cursor-plugin/marketplace.json */
11
11
  export const MARKETPLACE_JSON = '.cursor-plugin/marketplace.json';
12
+ /** Plugin manifest at plugin root: plugin.json with top-level version */
13
+ export const PLUGIN_JSON = 'plugin.json';
12
14
  /** Plugin layout inside each plugin dir (agents, commands, skills, hooks, rules) */
13
15
  export const REPO_SKILLS_DIR = 'skills';
14
16
  export const REPO_AGENTS_DIR = 'agents';
15
17
  export const REPO_COMMANDS_DIR = 'commands';
16
18
  export const REPO_HOOKS_FILE = 'hooks/hooks.json';
19
+ export const REPO_MCP_FILE = 'mcp/mcp.json';
17
20
  export const REPO_RULES_DIR = 'rules';
18
21
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AAEzC,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
@@ -21,8 +21,24 @@ export interface ListHooksResult {
21
21
  export declare function listHooks(options?: HooksOptions): Promise<ListHooksResult>;
22
22
  export declare function addHook(hookName: string, command: string, options?: HooksOptions): Promise<void>;
23
23
  export declare function removeHook(hookName: string, options?: HooksOptions): Promise<boolean>;
24
+ /**
25
+ * Merge repo hooks into project or global .cursor/hooks.json (Cursor only).
26
+ * Returns the list of (hookName, command) entries that were actually merged (not already present).
27
+ */
28
+ export declare function mergeHooksInto(repoHooks: HooksJson, global: boolean, cwd: string): Promise<Array<{
29
+ hookName: string;
30
+ command: string;
31
+ }>>;
32
+ /**
33
+ * Remove specific (hookName, command) entries from project or global .cursor/hooks.json.
34
+ */
35
+ export declare function removeHookEntries(entries: Array<{
36
+ hookName: string;
37
+ command: string;
38
+ }>, global: boolean, cwd: string): Promise<void>;
24
39
  /**
25
40
  * Merge repo hooks into project .cursor/hooks.json (Cursor only).
41
+ * @deprecated Use mergeHooksInto(repoHooks, false, cwd) for project scope.
26
42
  */
27
43
  export declare function mergeHooksIntoProject(repoHooks: HooksJson, cwd: string): Promise<void>;
28
44
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAsBD,wBAAsB,SAAS,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAYpF;AAED,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAa/F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5F"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAsBD,wBAAsB,SAAS,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAYpF;AAED,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAa/F;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkBvD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACrD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F"}
package/dist/lib/hooks.js CHANGED
@@ -64,11 +64,13 @@ export async function removeHook(hookName, options = {}) {
64
64
  return removed;
65
65
  }
66
66
  /**
67
- * Merge repo hooks into project .cursor/hooks.json (Cursor only).
67
+ * Merge repo hooks into project or global .cursor/hooks.json (Cursor only).
68
+ * Returns the list of (hookName, command) entries that were actually merged (not already present).
68
69
  */
69
- export async function mergeHooksIntoProject(repoHooks, cwd) {
70
- const path = getCursorHooksPath(false, cwd);
70
+ export async function mergeHooksInto(repoHooks, global, cwd) {
71
+ const path = getCursorHooksPath(global, cwd);
71
72
  const existing = await readHooksJson(path);
73
+ const merged = [];
72
74
  for (const [name, entries] of Object.entries(repoHooks.hooks ?? {})) {
73
75
  const existingEntries = existing.hooks[name] ?? [];
74
76
  const seen = new Set(existingEntries.map((e) => e.command));
@@ -76,10 +78,37 @@ export async function mergeHooksIntoProject(repoHooks, cwd) {
76
78
  if (!seen.has(e.command)) {
77
79
  existingEntries.push(e);
78
80
  seen.add(e.command);
81
+ merged.push({ hookName: name, command: e.command });
79
82
  }
80
83
  }
81
84
  existing.hooks[name] = existingEntries;
82
85
  }
83
86
  await writeHooksJson(path, existing);
87
+ return merged;
88
+ }
89
+ /**
90
+ * Remove specific (hookName, command) entries from project or global .cursor/hooks.json.
91
+ */
92
+ export async function removeHookEntries(entries, global, cwd) {
93
+ if (entries.length === 0)
94
+ return;
95
+ const path = getCursorHooksPath(global, cwd);
96
+ const data = await readHooksJson(path);
97
+ const toRemove = new Set(entries.map((e) => `${e.hookName}\0${e.command}`));
98
+ for (const key of Object.keys(data.hooks)) {
99
+ const arr = data.hooks[key].filter((e) => !toRemove.has(`${key}\0${e.command}`));
100
+ if (arr.length === 0)
101
+ delete data.hooks[key];
102
+ else
103
+ data.hooks[key] = arr;
104
+ }
105
+ await writeHooksJson(path, data);
106
+ }
107
+ /**
108
+ * Merge repo hooks into project .cursor/hooks.json (Cursor only).
109
+ * @deprecated Use mergeHooksInto(repoHooks, false, cwd) for project scope.
110
+ */
111
+ export async function mergeHooksIntoProject(repoHooks, cwd) {
112
+ await mergeHooksInto(repoHooks, false, cwd);
84
113
  }
85
114
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface MarketplacePlugin {
5
5
  name: string;
6
6
  source: string;
7
7
  description?: string;
8
+ version?: string;
8
9
  }
9
10
  export interface MarketplaceManifest {
10
11
  name: string;
@@ -30,4 +31,13 @@ export declare function getMarketplaceStorePath(name: string): string;
30
31
  * Store path for a plugin: ~/.agents/agents-pkg/marketplace/<marketplaceName>/<pluginName>
31
32
  */
32
33
  export declare function getPluginStorePath(marketplaceName: string, pluginName: string): string;
34
+ /**
35
+ * Read plugin version from optional plugin.json at plugin dir root.
36
+ * Returns top-level "version" or '0.0.0' if missing/invalid.
37
+ */
38
+ export declare function readPluginVersion(pluginDir: string): Promise<string>;
39
+ /**
40
+ * Resolved version for a plugin: manifest plugin.version ?? readPluginVersion(plugin dir) ?? '0.0.0'.
41
+ */
42
+ export declare function getPluginVersionFromSource(plugin: MarketplacePlugin, sourceDir: string): Promise<string>;
33
43
  //# sourceMappingURL=marketplace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/lib/marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkC7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF"}
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/lib/marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmC7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAMjB"}
@@ -4,7 +4,7 @@
4
4
  import { readFile } from 'fs/promises';
5
5
  import { join } from 'path';
6
6
  import { getHome } from './lock.js';
7
- import { AGENTS_DIR, MARKETPLACE_DIR, MARKETPLACE_JSON } from './constants.js';
7
+ import { AGENTS_DIR, MARKETPLACE_DIR, MARKETPLACE_JSON, PLUGIN_JSON } from './constants.js';
8
8
  /**
9
9
  * Read marketplace manifest from resolved source dir.
10
10
  * Path: join(sourceDir, '.cursor-plugin', 'marketplace.json')
@@ -36,6 +36,7 @@ export async function readMarketplaceManifest(sourceDir) {
36
36
  name: o.name.trim(),
37
37
  source: o.source.trim(),
38
38
  description: o.description != null ? String(o.description) : undefined,
39
+ version: typeof o.version === 'string' && o.version.trim() ? o.version.trim() : undefined,
39
40
  });
40
41
  }
41
42
  return {
@@ -57,4 +58,32 @@ export function getMarketplaceStorePath(name) {
57
58
  export function getPluginStorePath(marketplaceName, pluginName) {
58
59
  return join(getMarketplaceStorePath(marketplaceName), pluginName);
59
60
  }
61
+ /**
62
+ * Read plugin version from optional plugin.json at plugin dir root.
63
+ * Returns top-level "version" or '0.0.0' if missing/invalid.
64
+ */
65
+ export async function readPluginVersion(pluginDir) {
66
+ try {
67
+ const path = join(pluginDir, PLUGIN_JSON);
68
+ const raw = await readFile(path, 'utf-8');
69
+ const parsed = JSON.parse(raw);
70
+ if (typeof parsed.version === 'string' && parsed.version.trim()) {
71
+ return parsed.version.trim();
72
+ }
73
+ }
74
+ catch {
75
+ // missing or invalid
76
+ }
77
+ return '0.0.0';
78
+ }
79
+ /**
80
+ * Resolved version for a plugin: manifest plugin.version ?? readPluginVersion(plugin dir) ?? '0.0.0'.
81
+ */
82
+ export async function getPluginVersionFromSource(plugin, sourceDir) {
83
+ if (plugin.version != null && plugin.version.trim() !== '') {
84
+ return plugin.version.trim();
85
+ }
86
+ const pluginDir = join(sourceDir, plugin.source);
87
+ return readPluginVersion(pluginDir);
88
+ }
60
89
  //# sourceMappingURL=marketplace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/lib/marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAe/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAiB;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC/C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,2DAA2D,CAC9F,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAC5D,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAClD,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QACzE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACvB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAClC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,KAA2B,CAAC,CAAC,CAAC,SAAS;QAC/G,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,QAAuD,CAAC,CAAC,CAAC,SAAS;QACpJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,eAAuB,EAAE,UAAkB;IAC5E,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/lib/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * MCP = Cursor .cursor/mcp.json only.
3
+ * Merge plugin mcp/mcp.json into single file with prefixed keys for clean removal.
4
+ */
5
+ export interface McpServerConfig {
6
+ command?: string;
7
+ args?: string[];
8
+ env?: Record<string, string>;
9
+ url?: string;
10
+ headers?: Record<string, string>;
11
+ auth?: Record<string, string>;
12
+ type?: string;
13
+ envFile?: string;
14
+ [key: string]: unknown;
15
+ }
16
+ export interface McpJson {
17
+ mcpServers?: Record<string, McpServerConfig>;
18
+ }
19
+ /**
20
+ * Merge plugin's mcpServers into cursor mcp.json under prefixed keys.
21
+ * Does not overwrite existing keys that already have the same prefix (idempotent).
22
+ */
23
+ export declare function mergeMcpIntoCursor(pluginMcp: McpJson, cursorPath: string, prefix: string): Promise<void>;
24
+ /**
25
+ * Remove all mcpServers keys that start with the given prefix.
26
+ */
27
+ export declare function removeMcpServersByPrefix(cursorPath: string, prefix: string): Promise<void>;
28
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/lib/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAwBD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * MCP = Cursor .cursor/mcp.json only.
3
+ * Merge plugin mcp/mcp.json into single file with prefixed keys for clean removal.
4
+ */
5
+ import { readFile, writeFile, mkdir } from 'fs/promises';
6
+ import { dirname } from 'path';
7
+ async function readMcpJson(path) {
8
+ try {
9
+ const raw = await readFile(path, 'utf-8');
10
+ const parsed = JSON.parse(raw);
11
+ if (parsed.mcpServers && typeof parsed.mcpServers === 'object') {
12
+ return { mcpServers: parsed.mcpServers };
13
+ }
14
+ }
15
+ catch {
16
+ // missing or invalid
17
+ }
18
+ return { mcpServers: {} };
19
+ }
20
+ async function writeMcpJson(path, data) {
21
+ await mkdir(dirname(path), { recursive: true });
22
+ await writeFile(path, JSON.stringify({ mcpServers: data.mcpServers ?? {} }, null, 2), 'utf-8');
23
+ }
24
+ /**
25
+ * Merge plugin's mcpServers into cursor mcp.json under prefixed keys.
26
+ * Does not overwrite existing keys that already have the same prefix (idempotent).
27
+ */
28
+ export async function mergeMcpIntoCursor(pluginMcp, cursorPath, prefix) {
29
+ const existing = await readMcpJson(cursorPath);
30
+ const servers = existing.mcpServers ?? {};
31
+ for (const [key, config] of Object.entries(pluginMcp.mcpServers ?? {})) {
32
+ const prefixedKey = prefix + key;
33
+ if (!(prefixedKey in servers)) {
34
+ servers[prefixedKey] = config;
35
+ }
36
+ }
37
+ await writeMcpJson(cursorPath, { mcpServers: servers });
38
+ }
39
+ /**
40
+ * Remove all mcpServers keys that start with the given prefix.
41
+ */
42
+ export async function removeMcpServersByPrefix(cursorPath, prefix) {
43
+ const existing = await readMcpJson(cursorPath);
44
+ const servers = existing.mcpServers ?? {};
45
+ let changed = false;
46
+ for (const key of Object.keys(servers)) {
47
+ if (key.startsWith(prefix)) {
48
+ delete servers[key];
49
+ changed = true;
50
+ }
51
+ }
52
+ if (changed) {
53
+ await writeMcpJson(cursorPath, { mcpServers: servers });
54
+ }
55
+ }
56
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/lib/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAkB/B,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,IAAa;IACrD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CACb,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9D,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAkB,EAClB,UAAkB,EAClB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -10,6 +10,8 @@ export declare function getCursorCommandsDir(global: boolean, cwd?: string): str
10
10
  export declare function getClaudeCommandsDir(global: boolean, cwd?: string): string;
11
11
  /** Cursor only: path to .cursor/hooks.json */
12
12
  export declare function getCursorHooksPath(global: boolean, cwd?: string): string;
13
+ /** Cursor only: path to .cursor/mcp.json */
14
+ export declare function getCursorMcpPath(global: boolean, cwd?: string): string;
13
15
  /** Cursor only: path to .cursor/skills (global = ~/.cursor/skills) */
14
16
  export declare function getCursorSkillsDir(global: boolean, cwd?: string): string;
15
17
  /** Cursor only: path to .cursor/rules (global = ~/.cursor/rules) */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE"}
package/dist/lib/paths.js CHANGED
@@ -31,6 +31,11 @@ export function getCursorHooksPath(global, cwd) {
31
31
  const base = global ? homedir() : (cwd || process.cwd());
32
32
  return join(base, '.cursor', 'hooks.json');
33
33
  }
34
+ /** Cursor only: path to .cursor/mcp.json */
35
+ export function getCursorMcpPath(global, cwd) {
36
+ const base = global ? homedir() : (cwd || process.cwd());
37
+ return join(base, '.cursor', 'mcp.json');
38
+ }
34
39
  /** Cursor only: path to .cursor/skills (global = ~/.cursor/skills) */
35
40
  export function getCursorSkillsDir(global, cwd) {
36
41
  const base = global ? homedir() : (cwd || process.cwd());
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,GAAY;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,GAAY;IAC9D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAe,EAAE,GAAY;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAe,EAAE,GAAY;IAChE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,GAAY;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,GAAY;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,GAAY;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export interface MarketplaceEntry {
10
10
  updatedAt: string;
11
11
  /** If true (default), symlinks go to ~/.cursor/*; if false, to project .cursor/*. */
12
12
  global?: boolean;
13
+ /** Hook entries we merged per plugin (for removal on uninstall). */
14
+ pluginHooks?: Record<string, Array<{
15
+ hookName: string;
16
+ command: string;
17
+ }>>;
18
+ /** Last-installed version per plugin (for update diff). */
19
+ pluginVersions?: Record<string, string>;
13
20
  }
14
21
  export interface LockFile {
15
22
  version: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kIAAkI;AAClI,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kIAAkI;AAClI,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3E,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD/C"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAiJ/C"}
package/dist/update.js CHANGED
@@ -3,10 +3,12 @@
3
3
  */
4
4
  import { rm } from 'fs/promises';
5
5
  import { resolveSourceToDir } from './lib/source-dir.js';
6
- import { readMarketplaceManifest, getMarketplaceStorePath, getPluginStorePath } from './lib/marketplace.js';
6
+ import { readMarketplaceManifest, getMarketplaceStorePath, getPluginStorePath, getPluginVersionFromSource } from './lib/marketplace.js';
7
7
  import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
8
8
  import { removeCopiedAgentsForPlugin } from './lib/agents-copy.js';
9
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
9
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir, getCursorMcpPath } from './lib/paths.js';
10
+ import { removeHookEntries } from './lib/hooks.js';
11
+ import { removeMcpServersByPrefix } from './lib/mcp.js';
10
12
  import { installMarketplaceFromDir } from './add-plugin.js';
11
13
  import { readLock, writeLock } from './lib/lock.js';
12
14
  export async function runUpdate() {
@@ -16,6 +18,7 @@ export async function runUpdate() {
16
18
  return;
17
19
  const cwd = process.cwd();
18
20
  let updated = 0;
21
+ let lockModified = false;
19
22
  for (const [name, entry] of entries) {
20
23
  if (!entry || typeof entry.source !== 'string')
21
24
  continue;
@@ -33,24 +36,112 @@ export async function runUpdate() {
33
36
  try {
34
37
  const manifest = await readMarketplaceManifest(sourceDir);
35
38
  const newVersion = manifest.metadata?.version ?? '0.0.0';
36
- if (newVersion === entry.version)
37
- continue;
38
- console.log(`Updating marketplace ${name} (${entry.version} -> ${newVersion})...`);
39
- const storeRoot = getMarketplaceStorePath(name);
40
- for (const pluginName of entry.pluginNames ?? []) {
41
- const pluginStorePath = getPluginStorePath(name, pluginName);
42
- await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
39
+ const cursorMcpPath = getCursorMcpPath(global, cwd);
40
+ if (newVersion !== entry.version) {
41
+ console.log(`Updating marketplace ${name} (${entry.version} -> ${newVersion})...`);
42
+ const storeRoot = getMarketplaceStorePath(name);
43
+ for (const pluginName of entry.pluginNames ?? []) {
44
+ if (entry.pluginHooks?.[pluginName]?.length) {
45
+ await removeHookEntries(entry.pluginHooks[pluginName], global, cwd);
46
+ }
47
+ await removeMcpServersByPrefix(cursorMcpPath, `agents-pkg:${name}/${pluginName}:`);
48
+ }
49
+ for (const pluginName of entry.pluginNames ?? []) {
50
+ const pluginStorePath = getPluginStorePath(name, pluginName);
51
+ await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
52
+ }
53
+ await removeSymlinksInDirPointingUnder(cursorAgentsDir, storeRoot);
54
+ await removeSymlinksInDirPointingUnder(cursorCommandsDir, storeRoot);
55
+ await removeSymlinksInDirPointingUnder(cursorSkillsDir, storeRoot);
56
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, storeRoot);
57
+ await rm(storeRoot, { recursive: true, force: true }).catch(() => { });
58
+ const { installed, pluginHooks } = await installMarketplaceFromDir(manifest, sourceDir, { global });
59
+ entry.version = newVersion;
60
+ entry.pluginNames = installed;
61
+ entry.pluginHooks = Object.keys(pluginHooks).length > 0 ? pluginHooks : undefined;
62
+ const pluginVersions = {};
63
+ for (const pluginName of installed) {
64
+ const plugin = manifest.plugins.find((p) => p.name === pluginName);
65
+ pluginVersions[pluginName] = plugin
66
+ ? await getPluginVersionFromSource(plugin, sourceDir)
67
+ : '0.0.0';
68
+ }
69
+ entry.pluginVersions = pluginVersions;
70
+ entry.updatedAt = new Date().toISOString();
71
+ updated++;
72
+ }
73
+ else {
74
+ if (!entry.pluginVersions)
75
+ continue;
76
+ const manifestPluginNames = new Set(manifest.plugins.map((p) => p.name));
77
+ for (const pluginName of [...(entry.pluginNames ?? [])]) {
78
+ if (manifestPluginNames.has(pluginName))
79
+ continue;
80
+ const pluginStorePath = getPluginStorePath(name, pluginName);
81
+ if (entry.pluginHooks?.[pluginName]?.length) {
82
+ await removeHookEntries(entry.pluginHooks[pluginName], global, cwd);
83
+ }
84
+ await removeMcpServersByPrefix(cursorMcpPath, `agents-pkg:${name}/${pluginName}:`);
85
+ await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
86
+ await removeSymlinksInDirPointingUnder(cursorAgentsDir, pluginStorePath);
87
+ await removeSymlinksInDirPointingUnder(cursorCommandsDir, pluginStorePath);
88
+ await removeSymlinksInDirPointingUnder(cursorSkillsDir, pluginStorePath);
89
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, pluginStorePath);
90
+ await rm(pluginStorePath, { recursive: true, force: true }).catch(() => { });
91
+ entry.pluginNames = entry.pluginNames.filter((n) => n !== pluginName);
92
+ if (entry.pluginHooks)
93
+ delete entry.pluginHooks[pluginName];
94
+ if (entry.pluginVersions)
95
+ delete entry.pluginVersions[pluginName];
96
+ if (entry.pluginNames.length === 0) {
97
+ delete lock.marketplaces[name];
98
+ }
99
+ lockModified = true;
100
+ }
101
+ if (!lock.marketplaces[name])
102
+ continue;
103
+ const newPluginVersions = {};
104
+ for (const p of manifest.plugins) {
105
+ newPluginVersions[p.name] = await getPluginVersionFromSource(p, sourceDir);
106
+ }
107
+ for (const pluginName of entry.pluginNames ?? []) {
108
+ if (!manifest.plugins.some((p) => p.name === pluginName))
109
+ continue;
110
+ const newVer = newPluginVersions[pluginName];
111
+ const curVer = entry.pluginVersions?.[pluginName];
112
+ if (newVer === curVer)
113
+ continue;
114
+ const pluginStorePath = getPluginStorePath(name, pluginName);
115
+ if (entry.pluginHooks?.[pluginName]?.length) {
116
+ await removeHookEntries(entry.pluginHooks[pluginName], global, cwd);
117
+ }
118
+ await removeMcpServersByPrefix(cursorMcpPath, `agents-pkg:${name}/${pluginName}:`);
119
+ await removeCopiedAgentsForPlugin(pluginStorePath, cursorAgentsDir);
120
+ await removeSymlinksInDirPointingUnder(cursorAgentsDir, pluginStorePath);
121
+ await removeSymlinksInDirPointingUnder(cursorCommandsDir, pluginStorePath);
122
+ await removeSymlinksInDirPointingUnder(cursorSkillsDir, pluginStorePath);
123
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, pluginStorePath);
124
+ await rm(pluginStorePath, { recursive: true, force: true }).catch(() => { });
125
+ const { installed, pluginHooks } = await installMarketplaceFromDir(manifest, sourceDir, {
126
+ pluginNames: [pluginName],
127
+ global,
128
+ });
129
+ if (installed.includes(pluginName)) {
130
+ const plugin = manifest.plugins.find((p) => p.name === pluginName);
131
+ const ver = plugin ? await getPluginVersionFromSource(plugin, sourceDir) : '0.0.0';
132
+ if (!entry.pluginVersions)
133
+ entry.pluginVersions = {};
134
+ entry.pluginVersions[pluginName] = ver;
135
+ if (pluginHooks[pluginName]?.length) {
136
+ if (!entry.pluginHooks)
137
+ entry.pluginHooks = {};
138
+ entry.pluginHooks[pluginName] = pluginHooks[pluginName];
139
+ }
140
+ }
141
+ entry.updatedAt = new Date().toISOString();
142
+ lockModified = true;
143
+ }
43
144
  }
44
- await removeSymlinksInDirPointingUnder(cursorAgentsDir, storeRoot);
45
- await removeSymlinksInDirPointingUnder(cursorCommandsDir, storeRoot);
46
- await removeSymlinksInDirPointingUnder(cursorSkillsDir, storeRoot);
47
- await removeSymlinksInDirPointingUnder(cursorRulesDir, storeRoot);
48
- await rm(storeRoot, { recursive: true, force: true }).catch(() => { });
49
- const installed = await installMarketplaceFromDir(manifest, sourceDir, { global });
50
- entry.version = newVersion;
51
- entry.pluginNames = installed;
52
- entry.updatedAt = new Date().toISOString();
53
- updated++;
54
145
  }
55
146
  catch (err) {
56
147
  console.error(`Failed to update ${name}:`, err instanceof Error ? err.message : String(err));
@@ -60,9 +151,10 @@ export async function runUpdate() {
60
151
  await cleanup();
61
152
  }
62
153
  }
63
- if (updated > 0) {
154
+ if (updated > 0 || lockModified) {
64
155
  await writeLock(lock);
65
- console.log(`Updated ${updated} marketplace(s).`);
156
+ if (updated > 0)
157
+ console.log(`Updated ${updated} marketplace(s).`);
66
158
  }
67
159
  }
68
160
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agents-pkg",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
4
  "description": "Wrapper around skills CLI for Cursor and Claude with agents and commands config",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
@@ -17,7 +17,8 @@
17
17
  "start": "node bin/agents-pkg.mjs",
18
18
  "pretest": "pnpm run build",
19
19
  "test": "vitest run",
20
- "type-check": "tsc --noEmit"
20
+ "type-check": "tsc --noEmit",
21
+ "release": "./scripts/release.sh"
21
22
  },
22
23
  "keywords": [
23
24
  "cursor",
@@ -41,4 +42,4 @@
41
42
  "typescript": "^5.9.3",
42
43
  "vitest": "^2.1.9"
43
44
  }
44
- }
45
+ }