agents-pkg 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  # agents-pkg
2
2
 
3
- A wrapper around the [skills](https://github.com/vercel-labs/skills) CLI for **Cursor** and **Claude Code**. It keeps the same config location (`~/.agents/`) and folder layout each app expects, and adds **subagents** and **commands** management for both.
3
+ **Cursor-only** marketplace installer. Install plugins from a source (repo URL or local path) that contains `.cursor-plugin/marketplace.json`. Plugin content is copied to a store and **symlinked** into Cursor’s config dirs (agents, commands, skills, rules); hooks are merged into `.cursor/hooks.json`.
4
4
 
5
- - **Skills** — Pass-through to `npx skills` (e.g. `agents-pkg skills add owner/repo`) with `--agent cursor claude-code` by default.
6
- - **Subagents** — Agent definition files (`.md`) in `.cursor/agents` and `.claude/agents`.
7
- - **Commands** — Slash commands in `.cursor/commands` and `.claude/commands`.
8
- - **Hooks** — Cursor only: `.cursor/hooks.json` (Claude uses a different hooks setup and is not managed here).
5
+ - **Agents** — Agent `.md` files in `.cursor/agents` (global or project).
6
+ - **Commands** — Slash commands in `.cursor/commands`.
7
+ - **Skills** — Skill dirs (each with `SKILL.md`) in `.cursor/skills`.
8
+ - **Rules** — Rule `.md`/`.mdc` files in `.cursor/rules`.
9
+ - **Hooks** — Cursor lifecycle hooks merged into project `.cursor/hooks.json`.
9
10
 
10
- **Note:** `--agent` (cursor, claude-code) is which *app* to install skills to. Subagents are the `.md` agent files in those appsagent dirs — a different concept.
11
+ By default, symlinks are **global** (`~/.cursor/*`). Use `--project` to install into the current projects `.cursor/` instead.
11
12
 
12
13
  ---
13
14
 
@@ -29,8 +30,8 @@ npx agents-pkg --help
29
30
 
30
31
  | Item | Location |
31
32
  |------|----------|
32
- | Lock file | `~/.agents/.agents-pkg-lock.json` (same parent as skills’ `.skill-lock.json`) |
33
- | Schema | `{ "version": 1, "agents": { ... }, "sources": { "owner/repo": { "source", "repoHash", "options", "updatedAt" } } }` |
33
+ | Lock file | `~/.agents/.agents-pkg-lock.json` |
34
+ | Store | `~/.agents/agents-pkg/marketplace/<name>/<plugin-name>/` |
34
35
 
35
36
  Override home for tests: set `AGENTS_PKG_HOME` to a temp directory.
36
37
 
@@ -38,138 +39,136 @@ Override home for tests: set `AGENTS_PKG_HOME` to a temp directory.
38
39
 
39
40
  ## Usage
40
41
 
41
- ### Install from a repo (all at once)
42
-
43
- Pass a **source** (GitHub `owner/repo`, git URL, or local path). By default this installs **skills**, **subagents**, **commands**, and **hooks** (Cursor only) from that repo. Use flags to install only what you want:
42
+ ### Add a marketplace
44
43
 
45
44
  ```bash
46
- agents-pkg owner/repo # install skills + subagents + commands + hooks
47
- agents-pkg owner/repo --subagents --hooks # only subagents and hooks
48
- agents-pkg ./my-local-repo --skills # only skills from local path
45
+ agents-pkg add-plugin <source> [plugin-name] [--global | --project]
49
46
  ```
50
47
 
51
- The repo is expected to follow the [repo layout convention](#repo-layout-convention-for-install-from-source) below.
52
-
53
- ### Skills (pass-through to `npx skills`)
48
+ - **source** Repo URL (GitHub `owner/repo`, GitLab, or full URL) or local path.
49
+ - **plugin-name** — Optional. Install only this plugin from the marketplace; otherwise all plugins are installed.
50
+ - **--global** (default) Symlink into `~/.cursor/agents`, `~/.cursor/commands`, `~/.cursor/skills`, `~/.cursor/rules`. Available in all projects.
51
+ - **--project** — Symlink into the current project’s `.cursor/` so only this project sees the plugin.
54
52
 
55
- Under the `skills` command, all of these are forwarded to `npx skills` with **`--agent cursor claude-code`** unless you pass `--agent` yourself.
53
+ Examples:
56
54
 
57
55
  ```bash
58
- agents-pkg skills add vercel-labs/agent-skills
59
- agents-pkg skills remove <skill>
60
- agents-pkg skills list
61
- agents-pkg skills find
62
- agents-pkg skills check
63
- agents-pkg skills update
64
- agents-pkg skills init [name]
65
- agents-pkg skills experimental_install
66
- agents-pkg skills experimental_sync
56
+ agents-pkg add-plugin https://github.com/org/ai-kit
57
+ agents-pkg add-plugin ./local-repo --project
58
+ agents-pkg add-plugin https://gitlab.com/org/kit my-plugin-name
67
59
  ```
68
60
 
69
- ### Subagents (Cursor + Claude)
70
-
71
- Subagents are `.md` files in `.cursor/agents` and `.claude/agents`. **Source** can be: omitted (stub), a local path, an HTTP(S) URL, or GitHub `owner/repo/path/to/file.md`.
61
+ ### List installed marketplaces
72
62
 
73
63
  ```bash
74
- agents-pkg subagents list
75
- agents-pkg subagents add <name> [source] # add -g for global dirs too
76
- agents-pkg subagents remove <name>
64
+ agents-pkg list
77
65
  ```
78
66
 
79
- ### Commands (slash commands)
67
+ Shows each installed marketplace with its version, scope (global/project), source, and plugin names.
80
68
 
81
- Slash commands live in `.cursor/commands` and `.claude/commands`. Same **source** options as subagents.
69
+ ### Remove one plugin from a marketplace
82
70
 
83
71
  ```bash
84
- agents-pkg commands list
85
- agents-pkg commands add <name> [source] # add -g for global dirs too
86
- agents-pkg commands remove <name>
72
+ agents-pkg del-plugin <marketplace-name> <plugin-name>
87
73
  ```
88
74
 
89
- ### Hooks (Cursor only)
75
+ Removes that plugin’s symlinks and data; updates the lock. If it was the last plugin, the marketplace entry is removed. Use `agents-pkg list` to see marketplace and plugin names.
90
76
 
91
- Hooks run shell commands at lifecycle events in Cursor (`.cursor/hooks.json`). Claude uses a different setup and is not managed here. See [Cursor hooks](https://cursor.com/docs/agent/third-party-hooks) for event names (e.g. `beforeShellExecution`, `afterFileEdit`).
77
+ ### Remove an entire marketplace
92
78
 
93
79
  ```bash
94
- agents-pkg hooks list
95
- agents-pkg hooks add <hookName> <command> # e.g. hooks add beforeShellExecution ./check.sh; add -g for global
96
- agents-pkg hooks remove <hookName>
80
+ agents-pkg del-marketplace <name>
97
81
  ```
98
82
 
99
- ### Update
83
+ Uninstalls the marketplace and all its plugins. `name` is the marketplace name (e.g. from the manifest’s `name` field).
100
84
 
101
- `agents-pkg update` runs **skills update** (so all skills installed via `npx skills` are updated), then checks each **tracked GitHub source** (repos you installed from with `agents-pkg owner/repo`). For each repo, it fetches the current default-branch tree hash from the GitHub API; if the hash changed, it re-installs from that source (skills, subagents, commands, hooks per the options used when you first installed). Local-path installs are not tracked for update.
85
+ ### Update installed marketplaces
102
86
 
103
87
  ```bash
104
88
  agents-pkg update
105
89
  ```
106
90
 
107
- Tracking is stored in the lock file (`~/.agents/.agents-pkg-lock.json` under `sources`). Optional: set `GITHUB_TOKEN` or `GH_TOKEN` for higher API rate limits.
108
-
109
- ### Agents and config
91
+ Re-fetches each installed marketplace source, reads `.cursor-plugin/marketplace.json`, and reinstalls if the manifest `metadata.version` changed. Symlinks are recreated in the same place (global or project) as when the marketplace was first installed.
110
92
 
111
- Custom install targets (in the lock file) and path info:
93
+ ---
112
94
 
113
- ```bash
114
- agents-pkg agents list
115
- agents-pkg agents add <name> <projectDir> [globalDir]
116
- agents-pkg agents remove <name>
117
- agents-pkg config path
95
+ ## Marketplace format
96
+
97
+ The source must contain **`.cursor-plugin/marketplace.json`** at its root. Example:
98
+
99
+ ```json
100
+ {
101
+ "name": "ai-engineering-kit",
102
+ "owner": { "name": "My Org" },
103
+ "metadata": {
104
+ "description": "Internal AI engineering kit.",
105
+ "version": "0.1.0"
106
+ },
107
+ "plugins": [
108
+ { "name": "ai-kit-global", "source": "./global", "description": "Shared skills, commands, agents, rules." },
109
+ { "name": "ai-kit-backend", "source": "./backend", "description": "Backend-specific." }
110
+ ]
111
+ }
118
112
  ```
119
113
 
120
- ---
121
-
122
- ## Repo layout convention (install from source)
114
+ - **name** — Marketplace id; used in the lock and as the store parent.
115
+ - **metadata.version** — Used to decide when to reinstall on `agents-pkg update`.
116
+ - **plugins** Array of `{ name, source, description? }`. `source` is relative to the repo root (e.g. `./global`).
123
117
 
124
- When you run `agents-pkg owner/repo` (or any source), agents-pkg looks for these directories in the repo:
118
+ Inside each plugin directory (e.g. `./global`), use this layout:
125
119
 
126
- | Category | Location in repo | Contents |
127
- |-----------|--------------------|----------|
128
- | Skills | `skills/` | Directory the skills CLI can use: a single `SKILL.md` or subdirs each with `SKILL.md`. |
129
- | Subagents | `agents/` | One `.md` file per subagent; filename (without `.md`) is the name. |
130
- | Commands | `commands/` | One `.md` file per command; filename (without `.md`) is the name. |
131
- | Hooks | `hooks/hooks.json` | Cursor-style JSON: `{ "version": 1, "hooks": { "hookName": [{ "command": "path" }] } }`. Merged into project `.cursor/hooks.json` only (Cursor only). |
120
+ | Category | Dir / file | Contents |
121
+ |----------|------------|----------|
122
+ | Agents | `agents/` | One `.md` file per agent; filename (without `.md`) is the name. |
123
+ | Commands | `commands/` | One `.md` file per command. |
124
+ | Skills | `skills/` | One subdir per skill; each must contain `SKILL.md`. |
125
+ | Rules | `rules/` | Top-level `.md` or `.mdc` rule files. |
126
+ | Hooks | `hooks/hooks.json` | Cursor-style `{ "version": 1, "hooks": { ... } }`. Merged into project `.cursor/hooks.json` only. |
132
127
 
133
- If a path is missing, that category is skipped. Use `--skills`, `--subagents`, `--commands`, or `--hooks` to install only the categories you want.
128
+ Missing dirs are skipped. Hooks are always merged into the **project** `.cursor/hooks.json` (not global).
134
129
 
135
130
  ---
136
131
 
137
- ## Folder layout (where agents-pkg installs)
132
+ ## Where things are installed
133
+
134
+ With **--global** (default):
138
135
 
139
- | Kind | Cursor (project / global) | Claude (project / global) |
140
- |-----------|----------------------------------------|----------------------------------------|
141
- | Skills | `.agents/skills` / `~/.cursor/skills` | `.claude/skills` / `~/.claude/skills` |
142
- | Subagents | `.cursor/agents` / `~/.cursor/agents` | `.claude/agents` / `~/.claude/agents` |
143
- | Commands | `.cursor/commands` / `~/.cursor/commands` | `.claude/commands` / `~/.claude/commands` |
144
- | Hooks | `.cursor/hooks.json` / `~/.cursor/hooks.json` (Cursor only) | — |
136
+ | Kind | Location |
137
+ |------|----------|
138
+ | Agents | `~/.cursor/agents/` |
139
+ | Commands | `~/.cursor/commands/` |
140
+ | Skills | `~/.cursor/skills/` |
141
+ | Rules | `~/.cursor/rules/` |
142
+ | Hooks | Project `.cursor/hooks.json` (merged) |
145
143
 
146
- Claude’s global config root can be overridden with `CLAUDE_CONFIG_DIR` (default `~/.claude`).
144
+ With **--project**:
145
+
146
+ | Kind | Location |
147
+ |------|----------|
148
+ | Agents | `<project>/.cursor/agents/` |
149
+ | Commands | `<project>/.cursor/commands/` |
150
+ | Skills | `<project>/.cursor/skills/` |
151
+ | Rules | `<project>/.cursor/rules/` |
152
+ | Hooks | `<project>/.cursor/hooks.json` (merged) |
147
153
 
148
154
  ---
149
155
 
150
156
  ## Development
151
157
 
152
- TypeScript, build to `dist/`, tests with **vitest**.
158
+ TypeScript, build to `dist/`, tests with Vitest.
153
159
 
154
160
  ```bash
155
161
  pnpm install
156
162
  pnpm build # Compile src/ → dist/
157
- pnpm dev -- --help # Run from source (tsx)
158
- pnpm test # pretest runs build, then vitest
159
- pnpm type-check # tsc --noEmit
163
+ pnpm dev -- --help # Run from source (tsx)
164
+ pnpm test # pretest runs build, then vitest
165
+ pnpm type-check # tsc --noEmit
160
166
  ```
161
167
 
162
- **Tests:** Lock file (read/write, version, `AGENTS_PKG_HOME`), source resolution (stub, local path, literal), subagents and commands (list/add/remove), CLI (help, version, subagents list, commands list, config path).
163
-
164
168
  ### CI and publishing
165
169
 
166
- - **CI** (`.github/workflows/ci.yml`): On push/PR to `main`, runs type-check, build, and tests. Ignores changes that only touch `*.md`.
167
- - **Publish** (`.github/workflows/publish.yml`): Same model as the [skills](https://github.com/vercel-labs/skills) repo.
168
- - **Push to main**: Include `[patch]` or `[minor]` in a commit message; the workflow bumps the version, pushes the new commit and tag, publishes to npm, and creates a GitHub Release.
169
- - **Manual**: Actions → Publish → Run workflow, then choose **patch** or **minor** to bump and release.
170
- - **Tag push**: Pushing a tag `v*` triggers a publish-only run (no bump; the tag must already point to a commit with that version in `package.json`).
171
-
172
- Add an **NPM_TOKEN** secret (Settings → Secrets and variables → Actions): create an [npm access token](https://www.npmjs.com/settings/~/tokens) (automation type) and add it as `NPM_TOKEN`.
170
+ - **CI** (`.github/workflows/ci.yml`): On push/PR to `main`, runs type-check, build, and tests.
171
+ - **Publish** (`.github/workflows/publish.yml`): Version bump and npm publish (e.g. via `[patch]` / `[minor]` in commit message or manual workflow run). Add **NPM_TOKEN** secret for npm publish.
173
172
 
174
173
  ---
175
174
 
File without changes
@@ -9,6 +9,7 @@ import { type MarketplaceManifest } from './lib/marketplace.js';
9
9
  */
10
10
  export declare function installMarketplaceFromDir(manifest: MarketplaceManifest, sourceDir: string, options?: {
11
11
  pluginNameFilter?: string;
12
+ global?: boolean;
12
13
  }): Promise<string[]>;
13
14
  export declare function runAddPlugin(args: string[]): Promise<void>;
14
15
  //# 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;AA0G9B;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqChE"}
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;AAmI9B;;;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"}
@@ -6,8 +6,8 @@ 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
8
  import { readMarketplaceManifest, getPluginStorePath, } from './lib/marketplace.js';
9
- import { REPO_SKILLS_DIR, REPO_AGENTS_DIR, REPO_COMMANDS_DIR, REPO_HOOKS_FILE, } from './lib/constants.js';
10
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir } from './lib/paths.js';
9
+ import { REPO_SKILLS_DIR, REPO_AGENTS_DIR, REPO_COMMANDS_DIR, REPO_HOOKS_FILE, REPO_RULES_DIR, } from './lib/constants.js';
10
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
11
11
  import { createSymlink } from './lib/symlink.js';
12
12
  import { mergeHooksIntoProject } from './lib/hooks.js';
13
13
  import { readLock, writeLock } from './lib/lock.js';
@@ -53,10 +53,25 @@ async function listSkillDirs(skillsDir) {
53
53
  return [];
54
54
  }
55
55
  }
56
+ /** List rule file names (.md and .mdc) in rules dir (top-level only). */
57
+ async function listRuleFiles(rulesDir) {
58
+ try {
59
+ const st = await stat(rulesDir);
60
+ if (!st.isDirectory())
61
+ return [];
62
+ const entries = await readdir(rulesDir, { withFileTypes: true });
63
+ return entries
64
+ .filter((e) => e.isFile() && (e.name.endsWith('.md') || e.name.endsWith('.mdc')))
65
+ .map((e) => e.name);
66
+ }
67
+ catch {
68
+ return [];
69
+ }
70
+ }
56
71
  /**
57
- * Copy plugin dir to store, then create symlinks for agents, commands, skills; merge hooks.
72
+ * Copy plugin dir to store, then create symlinks for agents, commands, skills, rules; merge hooks.
58
73
  */
59
- async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cwd) {
74
+ async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd) {
60
75
  const done = [];
61
76
  const agentsDir = join(pluginStorePath, REPO_AGENTS_DIR);
62
77
  const agentNames = await listMdFiles(agentsDir);
@@ -85,6 +100,15 @@ async function installPlugin(pluginStorePath, cursorAgentsDir, cursorCommandsDir
85
100
  }
86
101
  if (skillNames.length > 0)
87
102
  done.push('skills');
103
+ const rulesDir = join(pluginStorePath, REPO_RULES_DIR);
104
+ const ruleNames = await listRuleFiles(rulesDir);
105
+ for (const name of ruleNames) {
106
+ const target = join(rulesDir, name);
107
+ const linkPath = join(cursorRulesDir, name);
108
+ await createSymlink(target, linkPath);
109
+ }
110
+ if (ruleNames.length > 0)
111
+ done.push('rules');
88
112
  const hooksPath = join(pluginStorePath, REPO_HOOKS_FILE);
89
113
  try {
90
114
  const raw = await readFile(hooksPath, 'utf-8');
@@ -111,11 +135,13 @@ export async function installMarketplaceFromDir(manifest, sourceDir, options = {
111
135
  fatal(`Plugin "${options.pluginNameFilter}" not found in marketplace. Available: ${manifest.plugins.map((p) => p.name).join(', ')}`);
112
136
  }
113
137
  }
138
+ const global = options.global !== false;
114
139
  const absSourceDir = resolve(sourceDir);
115
140
  const cwd = process.cwd();
116
- const cursorAgentsDir = getCursorAgentsDir(false, cwd);
117
- const cursorCommandsDir = getCursorCommandsDir(false, cwd);
118
- const cursorSkillsDir = getCursorSkillsDir(true, cwd);
141
+ const cursorAgentsDir = getCursorAgentsDir(global, cwd);
142
+ const cursorCommandsDir = getCursorCommandsDir(global, cwd);
143
+ const cursorSkillsDir = getCursorSkillsDir(global, cwd);
144
+ const cursorRulesDir = getCursorRulesDir(global, cwd);
119
145
  const installed = [];
120
146
  for (const plugin of pluginsToInstall) {
121
147
  const pluginDir = join(sourceDir, plugin.source);
@@ -127,18 +153,38 @@ export async function installMarketplaceFromDir(manifest, sourceDir, options = {
127
153
  const { mkdir } = await import('fs/promises');
128
154
  await mkdir(storePath, { recursive: true });
129
155
  await cp(pluginDir, storePath, { recursive: true });
130
- const done = await installPlugin(storePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cwd);
156
+ const done = await installPlugin(storePath, cursorAgentsDir, cursorCommandsDir, cursorSkillsDir, cursorRulesDir, cwd);
131
157
  if (done.length > 0)
132
158
  installed.push(plugin.name);
133
159
  }
134
160
  return installed;
135
161
  }
162
+ function parseAddPluginArgs(args) {
163
+ let global = true;
164
+ const positionals = [];
165
+ for (const arg of args) {
166
+ if (arg === '--project') {
167
+ global = false;
168
+ }
169
+ else if (arg === '--global') {
170
+ global = true;
171
+ }
172
+ else if (arg.startsWith('--')) {
173
+ fatal(`Unknown option: ${arg}. Use --global (default) or --project.`);
174
+ }
175
+ else {
176
+ positionals.push(arg.trim());
177
+ }
178
+ }
179
+ const source = positionals[0];
180
+ const pluginNameFilter = positionals[1]?.trim() || undefined;
181
+ return { source: source ?? '', pluginNameFilter, global };
182
+ }
136
183
  export async function runAddPlugin(args) {
137
- const source = args[0]?.trim();
184
+ const { source, pluginNameFilter, global } = parseAddPluginArgs(args);
138
185
  if (!source) {
139
- fatal('Usage: agents-pkg add-plugin <source> [plugin-name]\n source = repo URL or local path; optional plugin-name = install only that plugin.');
186
+ 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/*.');
140
187
  }
141
- const pluginNameFilter = args[1]?.trim();
142
188
  const { path: sourceDir, cleanup } = await resolveSourceToDir(source).catch((e) => {
143
189
  fatal(e instanceof Error ? e.message : String(e));
144
190
  });
@@ -146,10 +192,11 @@ export async function runAddPlugin(args) {
146
192
  const manifest = await readMarketplaceManifest(sourceDir);
147
193
  const version = manifest.metadata?.version ?? '0.0.0';
148
194
  const installed = await installMarketplaceFromDir(manifest, sourceDir, {
149
- pluginNameFilter: pluginNameFilter || undefined,
195
+ pluginNameFilter,
196
+ global,
150
197
  });
151
198
  if (installed.length === 0) {
152
- console.log(`No agents, commands, skills, or hooks found in the selected plugin(s).`);
199
+ console.log(`No agents, commands, skills, rules, or hooks found in the selected plugin(s).`);
153
200
  return;
154
201
  }
155
202
  console.log(`Installed marketplace "${manifest.name}" (v${version}): ${installed.join(', ')}.`);
@@ -160,6 +207,7 @@ export async function runAddPlugin(args) {
160
207
  version,
161
208
  pluginNames: installed,
162
209
  updatedAt: new Date().toISOString(),
210
+ global,
163
211
  };
164
212
  await writeLock(lock);
165
213
  }
@@ -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.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * agents-pkg — Cursor-only marketplace installer.
4
- * Commands: add-plugin <source> [plugin-name], del-plugin <name>, update.
4
+ * Commands: add-plugin, list, del-plugin (remove one plugin), del-marketplace (remove marketplace), update.
5
5
  */
6
6
  export {};
7
7
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.js CHANGED
@@ -1,14 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * agents-pkg — Cursor-only marketplace installer.
4
- * Commands: add-plugin <source> [plugin-name], del-plugin <name>, update.
4
+ * Commands: add-plugin, list, del-plugin (remove one plugin), del-marketplace (remove marketplace), update.
5
5
  */
6
6
  import { join, dirname } from 'path';
7
7
  import { readFileSync } from 'fs';
8
8
  import { fileURLToPath } from 'url';
9
9
  import { fatal } from './lib/errors.js';
10
10
  import { runAddPlugin } from './add-plugin.js';
11
+ import { runList } from './list.js';
11
12
  import { runDelPlugin } from './del-plugin.js';
13
+ import { runDelMarketplace } from './del-marketplace.js';
12
14
  import { runUpdate } from './update.js';
13
15
  const __dirname = dirname(fileURLToPath(import.meta.url));
14
16
  function getVersion() {
@@ -27,14 +29,18 @@ function showBanner() {
27
29
  console.log('Usage: agents-pkg <command> [options]');
28
30
  console.log('');
29
31
  console.log('Commands:');
30
- console.log(' add-plugin <source> [plugin-name] Install marketplace from source (read .cursor-plugin/marketplace.json inside source); all plugins or one by name');
31
- console.log(' del-plugin <name> Uninstall marketplace by name');
32
- console.log(' update Re-fetch each installed marketplace and reinstall if version changed');
32
+ console.log(' add-plugin <source> [plugin-name] Install marketplace (--global default, --project for current project only)');
33
+ console.log(' list List installed marketplaces and their plugins');
34
+ console.log(' del-plugin <marketplace> <plugin> Remove one plugin from a marketplace');
35
+ console.log(' del-marketplace <name> Uninstall entire marketplace');
36
+ console.log(' update Re-fetch each installed marketplace and reinstall if version changed');
33
37
  console.log('');
34
38
  console.log('Examples:');
35
39
  console.log(' agents-pkg add-plugin https://gitlab.com/org/ai-kit');
36
- console.log(' agents-pkg add-plugin ./local-repo ai-engineering-kit-backend');
37
- console.log(' agents-pkg del-plugin ai-engineering-kit');
40
+ console.log(' agents-pkg add-plugin ./local-repo --project');
41
+ console.log(' agents-pkg list');
42
+ console.log(' agents-pkg del-plugin ai-engineering-kit ai-kit-backend');
43
+ console.log(' agents-pkg del-marketplace ai-engineering-kit');
38
44
  console.log(' agents-pkg update');
39
45
  }
40
46
  async function main() {
@@ -49,9 +55,15 @@ async function main() {
49
55
  case 'add-plugin':
50
56
  await runAddPlugin(rest);
51
57
  break;
58
+ case 'list':
59
+ await runList();
60
+ break;
52
61
  case 'del-plugin':
53
62
  await runDelPlugin(rest);
54
63
  break;
64
+ case 'del-marketplace':
65
+ await runDelMarketplace(rest);
66
+ break;
55
67
  case 'update':
56
68
  await runUpdate();
57
69
  break;
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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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * del-marketplace — Uninstall a marketplace by name (remove symlinks, delete store, update lock).
3
+ */
4
+ export declare function runDelMarketplace(args: string[]): Promise<void>;
5
+ //# sourceMappingURL=del-marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"del-marketplace.d.ts","sourceRoot":"","sources":["../src/del-marketplace.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCrE"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * del-marketplace — Uninstall a marketplace by name (remove symlinks, delete store, update lock).
3
+ */
4
+ import { rm } from 'fs/promises';
5
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
6
+ import { getMarketplaceStorePath } from './lib/marketplace.js';
7
+ import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
8
+ import { readLock, writeLock } from './lib/lock.js';
9
+ import { fatal } from './lib/errors.js';
10
+ export async function runDelMarketplace(args) {
11
+ const name = args[0]?.trim();
12
+ if (!name) {
13
+ fatal('Usage: agents-pkg del-marketplace <name>\n name = marketplace name (e.g. ai-engineering-kit).');
14
+ }
15
+ const lock = await readLock();
16
+ const entry = lock.marketplaces[name];
17
+ if (!entry) {
18
+ fatal(`Marketplace "${name}" is not installed.`);
19
+ }
20
+ const storeRoot = getMarketplaceStorePath(name);
21
+ const cwd = process.cwd();
22
+ const global = entry.global !== false;
23
+ const cursorAgentsDir = getCursorAgentsDir(global, cwd);
24
+ const cursorCommandsDir = getCursorCommandsDir(global, cwd);
25
+ const cursorSkillsDir = getCursorSkillsDir(global, cwd);
26
+ const cursorRulesDir = getCursorRulesDir(global, cwd);
27
+ await removeSymlinksInDirPointingUnder(cursorAgentsDir, storeRoot);
28
+ await removeSymlinksInDirPointingUnder(cursorCommandsDir, storeRoot);
29
+ await removeSymlinksInDirPointingUnder(cursorSkillsDir, storeRoot);
30
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, storeRoot);
31
+ try {
32
+ await rm(storeRoot, { recursive: true, force: true });
33
+ }
34
+ catch (e) {
35
+ console.warn(`Could not remove store at ${storeRoot}:`, e instanceof Error ? e.message : String(e));
36
+ }
37
+ delete lock.marketplaces[name];
38
+ await writeLock(lock);
39
+ console.log(`Removed marketplace "${name}".`);
40
+ }
41
+ //# sourceMappingURL=del-marketplace.js.map
@@ -0,0 +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,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,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,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,5 +1,6 @@
1
1
  /**
2
- * del-plugin — Uninstall a marketplace by name (remove symlinks, delete store, update lock).
2
+ * del-plugin — Remove a single plugin from an installed marketplace.
3
+ * Removes that plugin's symlinks and store dir; updates lock. If the last plugin is removed, the marketplace entry is removed.
3
4
  */
4
5
  export declare function runDelPlugin(args: string[]): Promise<void>;
5
6
  //# sourceMappingURL=del-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"del-plugin.d.ts","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhE"}
1
+ {"version":3,"file":"del-plugin.d.ts","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChE"}
@@ -1,38 +1,49 @@
1
1
  /**
2
- * del-plugin — Uninstall a marketplace by name (remove symlinks, delete store, update lock).
2
+ * del-plugin — Remove a single plugin from an installed marketplace.
3
+ * Removes that plugin's symlinks and store dir; updates lock. If the last plugin is removed, the marketplace entry is removed.
3
4
  */
4
5
  import { rm } from 'fs/promises';
5
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir } from './lib/paths.js';
6
- import { getMarketplaceStorePath } from './lib/marketplace.js';
6
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
7
+ import { getPluginStorePath } from './lib/marketplace.js';
7
8
  import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
8
9
  import { readLock, writeLock } from './lib/lock.js';
9
10
  import { fatal } from './lib/errors.js';
10
11
  export async function runDelPlugin(args) {
11
- const name = args[0]?.trim();
12
- if (!name) {
13
- fatal('Usage: agents-pkg del-plugin <name>\n name = marketplace name (e.g. ai-engineering-kit).');
12
+ const marketplaceName = args[0]?.trim();
13
+ const pluginName = args[1]?.trim();
14
+ if (!marketplaceName || !pluginName) {
15
+ fatal('Usage: agents-pkg del-plugin <marketplace-name> <plugin-name>\n Removes one plugin from an installed marketplace. Use "agents-pkg list" to see names.');
14
16
  }
15
17
  const lock = await readLock();
16
- const entry = lock.marketplaces[name];
18
+ const entry = lock.marketplaces[marketplaceName];
17
19
  if (!entry) {
18
- fatal(`Marketplace "${name}" is not installed.`);
20
+ fatal(`Marketplace "${marketplaceName}" is not installed.`);
19
21
  }
20
- const storeRoot = getMarketplaceStorePath(name);
22
+ if (!entry.pluginNames?.includes(pluginName)) {
23
+ fatal(`Plugin "${pluginName}" is not installed from marketplace "${marketplaceName}". Installed: ${entry.pluginNames?.join(', ') ?? '(none)'}.`);
24
+ }
25
+ const pluginStorePath = getPluginStorePath(marketplaceName, pluginName);
21
26
  const cwd = process.cwd();
22
- const cursorAgentsDir = getCursorAgentsDir(false, cwd);
23
- const cursorCommandsDir = getCursorCommandsDir(false, cwd);
24
- const cursorSkillsDir = getCursorSkillsDir(true, cwd);
25
- await removeSymlinksInDirPointingUnder(cursorAgentsDir, storeRoot);
26
- await removeSymlinksInDirPointingUnder(cursorCommandsDir, storeRoot);
27
- await removeSymlinksInDirPointingUnder(cursorSkillsDir, storeRoot);
27
+ const global = entry.global !== false;
28
+ const cursorAgentsDir = getCursorAgentsDir(global, cwd);
29
+ const cursorCommandsDir = getCursorCommandsDir(global, cwd);
30
+ const cursorSkillsDir = getCursorSkillsDir(global, cwd);
31
+ const cursorRulesDir = getCursorRulesDir(global, cwd);
32
+ await removeSymlinksInDirPointingUnder(cursorAgentsDir, pluginStorePath);
33
+ await removeSymlinksInDirPointingUnder(cursorCommandsDir, pluginStorePath);
34
+ await removeSymlinksInDirPointingUnder(cursorSkillsDir, pluginStorePath);
35
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, pluginStorePath);
28
36
  try {
29
- await rm(storeRoot, { recursive: true, force: true });
37
+ await rm(pluginStorePath, { recursive: true, force: true });
30
38
  }
31
39
  catch (e) {
32
- console.warn(`Could not remove store at ${storeRoot}:`, e instanceof Error ? e.message : String(e));
40
+ console.warn(`Could not remove store at ${pluginStorePath}:`, e instanceof Error ? e.message : String(e));
41
+ }
42
+ entry.pluginNames = entry.pluginNames.filter((n) => n !== pluginName);
43
+ if (entry.pluginNames.length === 0) {
44
+ delete lock.marketplaces[marketplaceName];
33
45
  }
34
- delete lock.marketplaces[name];
35
46
  await writeLock(lock);
36
- console.log(`Removed marketplace "${name}".`);
47
+ console.log(`Removed plugin "${pluginName}" from marketplace "${marketplaceName}".`);
37
48
  }
38
49
  //# sourceMappingURL=del-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"del-plugin.js","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,2FAA2F,CAAC,CAAC;IACrG,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,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtD,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;IAEnE,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-plugin.js","sourceRoot":"","sources":["../src/del-plugin.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,10 @@ 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 layout inside each plugin dir (agents, commands, skills, hooks) */
12
+ /** Plugin layout inside each plugin dir (agents, commands, skills, hooks, rules) */
13
13
  export declare const REPO_SKILLS_DIR = "skills";
14
14
  export declare const REPO_AGENTS_DIR = "agents";
15
15
  export declare const REPO_COMMANDS_DIR = "commands";
16
16
  export declare const REPO_HOOKS_FILE = "hooks/hooks.json";
17
+ export declare const REPO_RULES_DIR = "rules";
17
18
  //# 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,6EAA6E;AAC7E,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,eAAe,qBAAqB,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,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"}
@@ -9,9 +9,10 @@ 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 layout inside each plugin dir (agents, commands, skills, hooks) */
12
+ /** Plugin layout inside each plugin dir (agents, commands, skills, hooks, rules) */
13
13
  export const REPO_SKILLS_DIR = 'skills';
14
14
  export const REPO_AGENTS_DIR = 'agents';
15
15
  export const REPO_COMMANDS_DIR = 'commands';
16
16
  export const REPO_HOOKS_FILE = 'hooks/hooks.json';
17
+ export const REPO_RULES_DIR = 'rules';
17
18
  //# 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,6EAA6E;AAC7E,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"}
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,8 +1,9 @@
1
1
  /**
2
2
  * Paths for Cursor and Claude (project and global).
3
- * Subagents = .cursor/agents, .claude/agents (both support them).
3
+ * Agents (subagents) = .cursor/agents (global; marketplace plugins install here).
4
4
  * Commands = .cursor/commands, .claude/commands.
5
5
  */
6
+ /** Cursor only: path to .cursor/agents (global = ~/.cursor/agents) */
6
7
  export declare function getCursorAgentsDir(global: boolean, cwd?: string): string;
7
8
  export declare function getClaudeAgentsDir(global: boolean, cwd?: string): string;
8
9
  export declare function getCursorCommandsDir(global: boolean, cwd?: string): string;
@@ -11,4 +12,6 @@ export declare function getClaudeCommandsDir(global: boolean, cwd?: string): str
11
12
  export declare function getCursorHooksPath(global: boolean, cwd?: string): string;
12
13
  /** Cursor only: path to .cursor/skills (global = ~/.cursor/skills) */
13
14
  export declare function getCursorSkillsDir(global: boolean, cwd?: string): string;
15
+ /** Cursor only: path to .cursor/rules (global = ~/.cursor/rules) */
16
+ export declare function getCursorRulesDir(global: boolean, cwd?: string): string;
14
17
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,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"}
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"}
package/dist/lib/paths.js CHANGED
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Paths for Cursor and Claude (project and global).
3
- * Subagents = .cursor/agents, .claude/agents (both support them).
3
+ * Agents (subagents) = .cursor/agents (global; marketplace plugins install here).
4
4
  * Commands = .cursor/commands, .claude/commands.
5
5
  */
6
6
  import { join } from 'path';
7
7
  import { homedir } from 'os';
8
+ /** Cursor only: path to .cursor/agents (global = ~/.cursor/agents) */
8
9
  export function getCursorAgentsDir(global, cwd) {
9
10
  const base = global ? homedir() : (cwd || process.cwd());
10
11
  return join(base, '.cursor', 'agents');
@@ -35,4 +36,9 @@ export function getCursorSkillsDir(global, cwd) {
35
36
  const base = global ? homedir() : (cwd || process.cwd());
36
37
  return join(base, '.cursor', 'skills');
37
38
  }
39
+ /** Cursor only: path to .cursor/rules (global = ~/.cursor/rules) */
40
+ export function getCursorRulesDir(global, cwd) {
41
+ const base = global ? homedir() : (cwd || process.cwd());
42
+ return join(base, '.cursor', 'rules');
43
+ }
38
44
  //# sourceMappingURL=paths.js.map
@@ -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,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"}
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 +1 @@
1
- {"version":3,"file":"source-dir.d.ts","sourceRoot":"","sources":["../../src/lib/source-dir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+CH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAkD1F"}
1
+ {"version":3,"file":"source-dir.d.ts","sourceRoot":"","sources":["../../src/lib/source-dir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkEH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAkD1F"}
@@ -16,9 +16,26 @@ function isLocalPath(input) {
16
16
  t.startsWith('/') ||
17
17
  /^[a-zA-Z]:[/\\]/.test(t));
18
18
  }
19
+ /**
20
+ * SSH-style URL without git@ prefix: host:path (e.g. git.naspersclassifieds.com:olxeu/ecosystem/tooling/ai-engineering-kit.git).
21
+ * Single colon, host-like left part, path-like right part.
22
+ */
23
+ function isSshStyleUrl(input) {
24
+ const colonIdx = input.indexOf(':');
25
+ if (colonIdx <= 0 || colonIdx !== input.lastIndexOf(':'))
26
+ return false;
27
+ const host = input.slice(0, colonIdx);
28
+ const path = input.slice(colonIdx + 1);
29
+ const hostLooksValid = host.includes('.') || host === 'github' || host === 'gitlab';
30
+ const pathLooksValid = path.length > 0 && (path.includes('/') || path.endsWith('.git'));
31
+ return hostLooksValid && pathLooksValid;
32
+ }
19
33
  function isGitUrl(input) {
20
34
  const t = input.trim();
21
- return t.startsWith('http://') || t.startsWith('https://') || t.startsWith('git@');
35
+ return (t.startsWith('http://') ||
36
+ t.startsWith('https://') ||
37
+ t.startsWith('git@') ||
38
+ isSshStyleUrl(t));
22
39
  }
23
40
  /**
24
41
  * Convert shorthand to HTTPS clone URL.
@@ -1 +1 @@
1
- {"version":3,"file":"source-dir.js","sourceRoot":"","sources":["../../src/lib/source-dir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-dir.js","sourceRoot":"","sources":["../../src/lib/source-dir.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Shared types for agents-pkg (marketplace-only).
3
3
  */
4
- /** Tracked marketplace: name, source (user-passed), version from manifest, installed plugin names. */
4
+ /** Tracked marketplace: name, source (user-passed), version from manifest, installed plugin names, global vs project symlinks. */
5
5
  export interface MarketplaceEntry {
6
6
  name: string;
7
7
  source: string;
8
8
  version: string;
9
9
  pluginNames: string[];
10
10
  updatedAt: string;
11
+ /** If true (default), symlinks go to ~/.cursor/*; if false, to project .cursor/*. */
12
+ global?: boolean;
11
13
  }
12
14
  export interface LockFile {
13
15
  version: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sGAAsG;AACtG,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;CACnB;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;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChD"}
package/dist/list.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * list — List installed marketplaces and their plugins.
3
+ */
4
+ export declare function runList(): Promise<void>;
5
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAe7C"}
package/dist/list.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * list — List installed marketplaces and their plugins.
3
+ */
4
+ import { readLock } from './lib/lock.js';
5
+ export async function runList() {
6
+ const lock = await readLock();
7
+ const entries = Object.entries(lock.marketplaces ?? {});
8
+ if (entries.length === 0) {
9
+ console.log('No marketplaces installed.');
10
+ return;
11
+ }
12
+ for (const [name, entry] of entries) {
13
+ if (!entry)
14
+ continue;
15
+ const scope = entry.global !== false ? 'global' : 'project';
16
+ console.log(`${name} (v${entry.version}) [${scope}]`);
17
+ console.log(` source: ${entry.source}`);
18
+ console.log(` plugins: ${entry.pluginNames?.length ? entry.pluginNames.join(', ') : '(none)'}`);
19
+ console.log('');
20
+ }
21
+ }
22
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,KAAK,CAAC,OAAO,MAAM,KAAK,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgD/C"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD/C"}
package/dist/update.js CHANGED
@@ -5,7 +5,7 @@ import { rm } from 'fs/promises';
5
5
  import { resolveSourceToDir } from './lib/source-dir.js';
6
6
  import { readMarketplaceManifest, getMarketplaceStorePath } from './lib/marketplace.js';
7
7
  import { removeSymlinksInDirPointingUnder } from './lib/symlink.js';
8
- import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir } from './lib/paths.js';
8
+ import { getCursorAgentsDir, getCursorCommandsDir, getCursorSkillsDir, getCursorRulesDir } from './lib/paths.js';
9
9
  import { installMarketplaceFromDir } from './add-plugin.js';
10
10
  import { readLock, writeLock } from './lib/lock.js';
11
11
  export async function runUpdate() {
@@ -14,13 +14,15 @@ export async function runUpdate() {
14
14
  if (entries.length === 0)
15
15
  return;
16
16
  const cwd = process.cwd();
17
- const cursorAgentsDir = getCursorAgentsDir(false, cwd);
18
- const cursorCommandsDir = getCursorCommandsDir(false, cwd);
19
- const cursorSkillsDir = getCursorSkillsDir(true, cwd);
20
17
  let updated = 0;
21
18
  for (const [name, entry] of entries) {
22
19
  if (!entry || typeof entry.source !== 'string')
23
20
  continue;
21
+ const global = entry.global !== false;
22
+ const cursorAgentsDir = getCursorAgentsDir(global, cwd);
23
+ const cursorCommandsDir = getCursorCommandsDir(global, cwd);
24
+ const cursorSkillsDir = getCursorSkillsDir(global, cwd);
25
+ const cursorRulesDir = getCursorRulesDir(global, cwd);
24
26
  const { path: sourceDir, cleanup } = await resolveSourceToDir(entry.source).catch(() => ({
25
27
  path: '',
26
28
  cleanup: undefined,
@@ -37,8 +39,9 @@ export async function runUpdate() {
37
39
  await removeSymlinksInDirPointingUnder(cursorAgentsDir, storeRoot);
38
40
  await removeSymlinksInDirPointingUnder(cursorCommandsDir, storeRoot);
39
41
  await removeSymlinksInDirPointingUnder(cursorSkillsDir, storeRoot);
42
+ await removeSymlinksInDirPointingUnder(cursorRulesDir, storeRoot);
40
43
  await rm(storeRoot, { recursive: true, force: true }).catch(() => { });
41
- const installed = await installMarketplaceFromDir(manifest, sourceDir);
44
+ const installed = await installMarketplaceFromDir(manifest, sourceDir, { global });
42
45
  entry.version = newVersion;
43
46
  entry.pluginNames = installed;
44
47
  entry.updatedAt = new Date().toISOString();
@@ -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.2.1",
3
+ "version": "0.3.1",
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",