@patchen0518/agentbrew 1.0.2 β†’ 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,50 +1,64 @@
1
1
  # AgentBrew 🍺
2
2
  **The Universal Hub for AI Agents.**
3
3
 
4
- AgentBrew is a centralized Model Context Protocol (MCP) multiplexer. It allows you to configure your tools once and use them across all your AI agents (Claude Code, Gemini CLI, Cursor, etc.).
4
+ AgentBrew is a centralized Model Context Protocol (MCP) multiplexer. Install your tools and skills once β€” every AI agent you use picks them up automatically.
5
5
 
6
6
  ## πŸ’‘ The Core Idea
7
7
  AI developers today face a fragmentation problem: every agent (Claude Code, Gemini CLI, Cursor, etc.) has its own way of managing MCP servers, tools, and skills. Setting up your favorite tools in one agent doesn't mean you have them in another.
8
8
 
9
9
  **AgentBrew** solves this by acting as a **Universal "USB Hub"** for MCP. You install your tools once in AgentBrew, and all your agents can instantly access that same consistent set of capabilities. If you switch agents, your entire "brew" of tools and skills comes with you.
10
10
 
11
- ### Data Flow
11
+ ### How Skills Work
12
+
13
+ AgentBrew exposes skills (packages containing a `SKILL.md` file) as **MCP tools**. This is the primary delivery mechanism β€” it works in every agent that supports MCP, with no extra setup beyond registering agentbrew as a server.
12
14
 
13
15
  ```
14
- AI Agent (Claude, Gemini, Cursor)
15
- β”‚ stdio
16
+ AI Agent (Claude, Gemini, Cursor, Windsurf…)
17
+ β”‚ MCP (stdio)
16
18
  β–Ό
17
- Router (src/router.ts) ← MCP server exposed to agents
19
+ AgentBrew Router
20
+ β”‚
21
+ β”œβ”€β”€ Skills β†’ MCP tools (universal, works in all agents automatically)
22
+ β”‚ Agent calls the tool β†’ receives SKILL.md instructions β†’ follows them
18
23
  β”‚
19
- β”œβ”€β”€ CapabilityDispatch (src/dispatcher.ts)
20
- β”‚ Prefixes all names/URIs: "pkgName_serverName__toolName"
21
- β”‚ Serves local prompts (Markdown files) and resources (CLAUDE.md / GEMINI.md)
24
+ β”œβ”€β”€ MCP Servers β†’ proxied to child processes (lazy-spawned)
22
25
  β”‚
23
- └── ManagedClient[] (one per child server)
24
- Lazy-spawned child process via stdio
25
- Auto-retries on crash (3 attempts, exponential backoff)
26
+ └── Instructions β†’ MCP resources (CLAUDE.md, GEMINI.md, .cursorrules…)
26
27
  ```
27
28
 
29
+ Running `agentbrew sync` adds a second layer on top:
30
+
31
+ | Agent | After MCP registration | After `agentbrew sync` |
32
+ |---|---|---|
33
+ | **Claude Code** | Skills as MCP tools (AI-initiated) | + `/skill-name` slash commands (user-initiated) |
34
+ | **Gemini CLI** | Skills as MCP tools | + Extension slash commands |
35
+ | **Cursor** | Skills as MCP tools (auto-registered) | No change β€” Cursor uses MCP natively |
36
+ | **Windsurf** | Skills as MCP tools | + Native skill slash commands |
37
+
38
+ > **Claude Code note:** After sync, Claude Code has both interfaces simultaneously. They are complementary, not duplicates:
39
+ > - `/skill-name` β€” you or the AI explicitly invokes the skill; SKILL.md is injected as conversation context.
40
+ > - `pkg__skill-name` MCP tool β€” the AI calls this autonomously mid-task without user input.
41
+ > Both read the same SKILL.md file on disk (the sync creates symlinks, not copies).
42
+
28
43
  ## πŸš€ Key Features
29
- - **Lazy Loading:** Servers only start when a tool is actually called.
44
+ - **Universal Skill Delivery:** Skills are immediately available as MCP tools in every connected agent β€” no sync required.
45
+ - **Lazy Loading:** Child MCP servers only start when a tool is actually called.
30
46
  - **Auto-Discovery:** Automatically detects MCP servers in Node.js, Python, and Markdown projects.
31
- - **Universal Migration:** Import your existing configurations from Gemini, Claude Code, and Cursor.
32
- - **Instruction Index:** Automatically exposes `GEMINI.md` and `CLAUDE.md` files as resources for your agents.
47
+ - **Universal Migration:** Import your existing configurations from Gemini, Claude Code, Cursor, Codex, and Windsurf.
48
+ - **Instruction Index:** Automatically exposes per-agent instruction files (`CLAUDE.md`, `GEMINI.md`, `AGENTS.md`, `.cursorrules`, etc.) shipped inside packages as MCP resources.
49
+ - **Shared Instructions:** Write agent instructions once in `~/.agentbrew/INSTRUCTIONS.md` and push them to every agent's global config with `agentbrew sync`.
50
+ - **Native Slash Commands (optional):** `agentbrew sync` also registers skills as native slash commands in Claude Code, Gemini CLI, Windsurf, and Antigravity.
33
51
 
34
52
  ## πŸ›  Installation
35
53
 
36
54
  ### πŸ“¦ Via npm Registry (Recommended)
37
55
 
38
- You can install AgentBrew globally with a single command:
39
-
40
56
  ```bash
41
57
  npm install -g @patchen0518/agentbrew
42
58
  ```
43
59
 
44
60
  ### πŸ”¨ Manual Development Setup
45
61
 
46
- If you are developing or contributing to AgentBrew, you can clone and build the repository locally:
47
-
48
62
  ```bash
49
63
  # Clone and enter the repo
50
64
  git clone https://github.com/patchen0518/AgentBrew.git
@@ -58,25 +72,42 @@ npm run build
58
72
  npm link
59
73
  ```
60
74
 
61
-
62
75
  ## πŸ“– Usage
63
76
 
64
- ### Plugging In Tools
77
+ ### First Steps
78
+
79
+ After installing AgentBrew, the recommended setup is:
80
+
65
81
  ```bash
66
- # Install a tool from a Git URL
82
+ # 1. Install a package
67
83
  agentbrew install <github-url>
84
+
85
+ # 2. Connect your agent (see "Connecting Agents" below)
86
+ # Skills and tools are now live in your agent as MCP capabilities.
87
+
88
+ # 3. Run sync to push shared instructions and enable native slash commands
89
+ agentbrew sync
68
90
  ```
69
91
 
92
+ Step 3 is optional but recommended β€” it unlocks slash command discoverability in Claude Code and Gemini CLI and lets you maintain shared instructions across all your agents.
93
+
94
+ ### Installing Tools & Skills
70
95
  ```bash
96
+ # Install a tool or skill package from a Git URL
97
+ agentbrew install <github-url>
98
+
71
99
  # Migrate from Gemini, Claude, or Cursor
72
100
  agentbrew migrate
73
-
74
- # Manually link a local command
75
- # (Internal use or custom scripts)
76
101
  ```
77
102
 
103
+ > **Installation failed?** If `agentbrew install` fails (missing dependencies, build errors, etc.), ask your AI agent directly:
104
+ > > *"Install `<github-url>` to agentbrew for me."*
105
+ > The agent can run the install command, read any error output, and resolve issues autonomously.
106
+
107
+ > **API keys:** If a package requires credentials to start its MCP server, discovery may fail silently at install time. AgentBrew will warn you which servers need attention. Set the required environment variables and run `agentbrew refresh` to complete setup.
108
+
78
109
  ### πŸ”‘ Dedicated Credentials
79
- For servers requiring custom or dedicated credentials, you can configure them directly in the package's `agentbrew.toml` manifest file inside the package folder:
110
+ For servers requiring custom credentials, configure them in the package's `agentbrew.toml` manifest file:
80
111
 
81
112
  ```toml
82
113
  # ~/.agentbrew/packages/linked-custom-server/agentbrew.toml
@@ -89,6 +120,41 @@ API_TOKEN = "your-secret-token-here"
89
120
  ```
90
121
 
91
122
 
123
+ ### πŸ“ Shared Instructions & Skill Sync
124
+
125
+ `agentbrew sync` does two things:
126
+
127
+ 1. **Injects shared instructions** from `~/.agentbrew/INSTRUCTIONS.md` into every agent's global config file.
128
+ 2. **Registers skills as native slash commands** in Claude Code, Gemini CLI, Windsurf, and Antigravity (in addition to the MCP tools that are already active).
129
+
130
+ **Workflow:**
131
+
132
+ ```bash
133
+ # 1. First run creates an example INSTRUCTIONS.md β€” nothing is written yet
134
+ agentbrew sync
135
+
136
+ # 2. Edit with your shared rules (e.g. "always use Context7 before calling external APIs")
137
+ open ~/.agentbrew/INSTRUCTIONS.md
138
+
139
+ # 3. Push instructions and register slash commands in all detected agents
140
+ agentbrew sync
141
+ ```
142
+
143
+ After syncing:
144
+ - A clearly-marked `AgentBrew Shared` section is injected into each agent's global config (`~/.claude/CLAUDE.md`, `~/.gemini/GEMINI.md`, `~/.codex/AGENTS.md`, etc.).
145
+ - Skills are registered as slash commands in **Claude Code** (`~/.claude/skills/`), **Gemini CLI**, **Windsurf**, and **Antigravity** via symlinks β€” no content is duplicated on disk.
146
+ - For **Cursor**, agentbrew is automatically registered as an MCP server in `~/.cursor/mcp.json` β€” no manual steps required.
147
+
148
+ ```bash
149
+ # Remove all injected instructions and skill registrations
150
+ agentbrew unsync
151
+ ```
152
+
153
+ > [!NOTE]
154
+ > `agentbrew sync` only writes to config files whose parent directory already exists (i.e. the agent is installed). It skips agents that aren't detected on your machine.
155
+
156
+ > **Advanced:** Claude Code users who prefer skills to be accessible only via slash commands (and not as AI-callable MCP tools) can set `"skillsAsMcpTools": false` in `~/.agentbrew/state.json`. The default is `true` β€” both interfaces are active.
157
+
92
158
  ### Managing the Hub
93
159
  ```bash
94
160
  # List all tools, prompts, and resources
@@ -111,7 +177,7 @@ agentbrew uninstall <package-name> <capability>
111
177
  agentbrew update <package-name>
112
178
  agentbrew update --all
113
179
 
114
- # Refresh capability cache (required after manual file changes)
180
+ # Refresh capability cache (required after manual file changes, or after setting API keys)
115
181
  agentbrew refresh
116
182
 
117
183
  # Refresh and re-run dependency installation (use after a manual git clone)
@@ -119,14 +185,18 @@ agentbrew refresh --install
119
185
  ```
120
186
 
121
187
  ## πŸ€– Connecting Agents
122
- Point your AI agent to launch `agentbrew` as its MCP server.
188
+ Point your AI agent to launch `agentbrew` as its MCP server. Once connected, all installed tools and skills are immediately available.
123
189
 
124
190
  - **Gemini CLI:** `gemini mcp add agentbrew agentbrew`
125
191
  - **Claude Code:** `/plugin add agentbrew agentbrew`
126
- - **Cursor:** Add a new "command" type MCP server in settings with command `agentbrew`.
192
+ - **Codex:** `codex mcp add agentbrew agentbrew`
193
+ - **Cursor:** Run `agentbrew sync` β€” agentbrew is automatically registered in `~/.cursor/mcp.json`. No manual steps required.
194
+ - **Windsurf / Antigravity:** Add agentbrew as an MCP server, then run `agentbrew sync` to also register slash commands.
195
+
196
+ After connecting, run `agentbrew sync` to enable native slash commands and shared instructions.
127
197
 
128
198
  ### Manual JSON Configuration
129
- For agents that use a configuration file (like **Claude Desktop** or other MCP clients), add AgentBrew to your config JSON:
199
+ For agents that use a configuration file (like **Claude Desktop** or other MCP clients):
130
200
 
131
201
  **File Paths:**
132
202
  - **Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
@@ -145,7 +215,7 @@ For agents that use a configuration file (like **Claude Desktop** or other MCP c
145
215
 
146
216
  > [!TIP]
147
217
  > **Path Resolution Fallback:**
148
- > If your agent cannot resolve the global `agentbrew` command (e.g., throwing a "command not found" or "executable not found" error during startup), you can configure the server to run via `node` directly using the absolute path to your compiled `cli.js` file:
218
+ > If your agent cannot resolve the global `agentbrew` command (e.g., throwing a "command not found" error during startup), run via `node` directly:
149
219
  >
150
220
  > ```json
151
221
  > {
@@ -159,7 +229,7 @@ For agents that use a configuration file (like **Claude Desktop** or other MCP c
159
229
  > ```
160
230
 
161
231
  ## πŸ— Architecture
162
- AgentBrew uses an `mcp-manifest.json` cache in each package directory to enable instant startup. The **Router** acts as a dynamic proxy, spawning child MCP processes on-demand and routing requests using a scoped naming convention: `{packageName}_{serverName}__{toolName}`. The `__` (double-underscore) is the reserved routing delimiter β€” package and server names must never contain it.
232
+ AgentBrew uses an `mcp-manifest.json` cache in each package directory for instant startup. The **Router** acts as a dynamic proxy, spawning child MCP processes on-demand and routing requests using a scoped naming convention: `{packageName}_{serverName}__{toolName}`. The `__` (double-underscore) is the reserved routing delimiter β€” package and server names must never contain it.
163
233
 
164
234
  ## πŸ“„ License
165
235
  MIT
package/dist/cli.js CHANGED
@@ -47,6 +47,7 @@ const router_1 = require("./router");
47
47
  const state_1 = require("./state");
48
48
  const registry_1 = require("./registry");
49
49
  const migration_1 = require("./migration");
50
+ const sync_1 = require("./sync");
50
51
  const fs_1 = __importDefault(require("fs"));
51
52
  const path_1 = __importDefault(require("path"));
52
53
  const readline_1 = __importDefault(require("readline"));
@@ -92,7 +93,8 @@ exports.program
92
93
  logger_1.Logger.info(`Refreshing cache for ${pkg.packageName}...`);
93
94
  const manifests = (0, registry_1.findManifests)(pkg.path, 2);
94
95
  for (const m of manifests) {
95
- await (0, registry_1.generateMcpManifest)(m.path, m.manifest);
96
+ const cache = await (0, registry_1.generateMcpManifest)(m.path, m.manifest);
97
+ (0, registry_1.warnIfDiscoveryFailed)(m.manifest, cache);
96
98
  }
97
99
  refreshedPaths.add(pkg.path);
98
100
  }
@@ -119,6 +121,21 @@ exports.program
119
121
  return answer.toLowerCase() === 'y';
120
122
  });
121
123
  logger_1.Logger.info(`Successfully installed package from ${url}`);
124
+ // Sync newly installed skills to all agents
125
+ const packages = (0, registry_1.discoverPackages)();
126
+ const skills = (0, sync_1.extractSkillEntries)(packages);
127
+ const allSkillResults = [
128
+ ...(0, sync_1.syncSkillsToClaudeCode)(skills),
129
+ ...(0, sync_1.syncSkillsToGeminiCLI)(skills),
130
+ ...(0, sync_1.syncSkillsToWindsurf)(skills),
131
+ ...(0, sync_1.syncSkillsToAntigravityCLI)(skills),
132
+ ...(0, sync_1.syncSkillsToCursor)(skills),
133
+ ];
134
+ const linked = allSkillResults.filter(r => r.status === 'linked');
135
+ if (linked.length > 0) {
136
+ logger_1.Logger.info(`Registered ${linked.length} skill(s) with agents:`);
137
+ linked.forEach(r => logger_1.Logger.info(` + ${r.entryName}`));
138
+ }
122
139
  }
123
140
  catch (error) {
124
141
  logger_1.Logger.error(`Failed to install package: ${error.message}`);
@@ -215,7 +232,7 @@ exports.program
215
232
  .argument('[capability]', 'Optional: specific capability name')
216
233
  .action((name, capability) => {
217
234
  const id = capability ? `${name}:${capability}` : name;
218
- if ((0, state_1.enablePackage)(id)) {
235
+ if ((0, state_1.enablePackage)(id) === 'changed') {
219
236
  logger_1.Logger.info(`Enabled ${capability ? `capability '${capability}' in ` : ''}package '${name}'`);
220
237
  }
221
238
  else {
@@ -229,7 +246,7 @@ exports.program
229
246
  .argument('[capability]', 'Optional: specific capability name')
230
247
  .action((name, capability) => {
231
248
  const id = capability ? `${name}:${capability}` : name;
232
- if ((0, state_1.disablePackage)(id)) {
249
+ if ((0, state_1.disablePackage)(id) === 'changed') {
233
250
  logger_1.Logger.info(`Disabled ${capability ? `capability '${capability}' in ` : ''}package '${name}'`);
234
251
  }
235
252
  else {
@@ -252,6 +269,12 @@ exports.program
252
269
  try {
253
270
  logger_1.Logger.info(`Uninstalling ${name} from ${target.path}...`);
254
271
  fs_1.default.rmSync(target.path, { recursive: true, force: true });
272
+ const orphans = (0, sync_1.cleanOrphanSkills)();
273
+ if (orphans.length > 0) {
274
+ logger_1.Logger.info(`Removed ${orphans.length} stale skill link(s).`);
275
+ }
276
+ // Regenerate Cursor index with remaining skills (cleanOrphanSkills can't regenerate it)
277
+ (0, sync_1.syncSkillsToCursor)((0, sync_1.extractSkillEntries)((0, registry_1.discoverPackages)()));
255
278
  logger_1.Logger.info(`Successfully uninstalled package '${name}'`);
256
279
  }
257
280
  catch (error) {
@@ -317,7 +340,8 @@ exports.program
317
340
  // Regenerate cache from the updated manifest
318
341
  const manifests = (0, registry_1.findManifests)(target.path, 2);
319
342
  for (const m of manifests) {
320
- await (0, registry_1.generateMcpManifest)(m.path, m.manifest);
343
+ const cache = await (0, registry_1.generateMcpManifest)(m.path, m.manifest);
344
+ (0, registry_1.warnIfDiscoveryFailed)(m.manifest, cache);
321
345
  }
322
346
  logger_1.Logger.info(`Successfully uninstalled capability '${capability}' from package '${name}'`);
323
347
  }
@@ -328,7 +352,7 @@ exports.program
328
352
  });
329
353
  exports.program
330
354
  .command('migrate')
331
- .description('Migrate configurations and skills from other platforms (Gemini, Claude, Cursor)')
355
+ .description('Migrate configurations and skills from other platforms (Gemini, Claude, Cursor, Windsurf)')
332
356
  .option('--dry-run', 'List discovered configurations without performing migration')
333
357
  .action(async (options) => {
334
358
  if (options.dryRun) {
@@ -366,16 +390,157 @@ exports.program
366
390
  logger_1.Logger.info(" /plugin add agentbrew agentbrew");
367
391
  }
368
392
  if (sources.has('Cursor')) {
369
- logger_1.Logger.info("\nFor Cursor:");
370
- logger_1.Logger.info(" Add a new MCP server in Cursor settings with:");
371
- logger_1.Logger.info(" Name: agentbrew");
372
- logger_1.Logger.info(" Type: command");
373
- logger_1.Logger.info(" Command: agentbrew");
393
+ const cursorMcpResults = (0, sync_1.syncMcpServerToCursor)();
394
+ const registered = cursorMcpResults.find(r => r.status === 'linked' || r.status === 'already_exists');
395
+ if (registered) {
396
+ logger_1.Logger.info(`\nβœ… Cursor: agentbrew registered in ${registered.path}`);
397
+ }
398
+ else {
399
+ logger_1.Logger.info("\nFor Cursor:");
400
+ logger_1.Logger.info(" Open Cursor Settings > MCP and add a new server:");
401
+ logger_1.Logger.info(" Name: agentbrew | Type: command | Command: agentbrew");
402
+ }
403
+ }
404
+ if (sources.has('Windsurf')) {
405
+ logger_1.Logger.info("\nFor Windsurf:");
406
+ logger_1.Logger.info(" Open Windsurf Settings > MCP Servers and add:");
407
+ logger_1.Logger.info(" Name: agentbrew | Command: agentbrew");
408
+ }
409
+ if (sources.has('OpenAI Codex CLI')) {
410
+ logger_1.Logger.info("\nFor OpenAI Codex CLI:");
411
+ logger_1.Logger.info(" Run: codex mcp add agentbrew agentbrew");
412
+ logger_1.Logger.info(" Or manually add to ~/.codex/config.toml under [mcp_servers.agentbrew]");
374
413
  }
375
414
  logger_1.Logger.info("\nNote: You can always use 'agentbrew list' to see all available tools and skills.");
376
415
  }
377
416
  }
378
417
  });
418
+ exports.program
419
+ .command('sync')
420
+ .description('Inject shared instructions into agent configs and register skills with Claude Code')
421
+ .action(() => {
422
+ const instructionsPath = (0, sync_1.getInstructionsPath)();
423
+ logger_1.Logger.info('AgentBrew Sync');
424
+ logger_1.Logger.info('==============');
425
+ logger_1.Logger.info('⚠️ agentbrew sync will add an "AgentBrew Shared" section to your agent');
426
+ logger_1.Logger.info(' config files (e.g. CLAUDE.md, GEMINI.md, AGENTS.md). The section is clearly marked');
427
+ logger_1.Logger.info(' and can be removed at any time with: agentbrew unsync\n');
428
+ const results = (0, sync_1.syncInstructions)();
429
+ if (results.length === 0) {
430
+ logger_1.Logger.info(`No INSTRUCTIONS.md found β€” created an example at:\n ${instructionsPath}`);
431
+ logger_1.Logger.info('\nEdit it, then run agentbrew sync again.');
432
+ return;
433
+ }
434
+ logger_1.Logger.info(`Syncing instructions from: ${instructionsPath}\n`);
435
+ const statusIcon = {
436
+ created: 'βœ…',
437
+ updated: 'βœ…',
438
+ unchanged: '⏭️ ',
439
+ skipped: '⚫',
440
+ manual: 'ℹ️ ',
441
+ removed: 'πŸ—‘οΈ ',
442
+ not_found: '⚫',
443
+ no_section: '⚫',
444
+ };
445
+ const manualNotes = [];
446
+ let synced = 0;
447
+ for (const r of results) {
448
+ const icon = statusIcon[r.status] ?? ' ';
449
+ const detail = r.path ? ` (${r.path})` : r.note ? ` (${r.note})` : '';
450
+ logger_1.Logger.info(`${icon} ${r.agent.padEnd(18)} β†’ ${r.status}${detail}`);
451
+ if (r.status === 'manual' && r.note)
452
+ manualNotes.push(` ${r.agent}: ${r.note}`);
453
+ if (r.status === 'created' || r.status === 'updated')
454
+ synced++;
455
+ }
456
+ if (manualNotes.length > 0) {
457
+ logger_1.Logger.info('\nManual steps required:');
458
+ manualNotes.forEach(n => logger_1.Logger.info(n));
459
+ }
460
+ // Sync skills to each agent
461
+ logger_1.Logger.info('\nSyncing skills...');
462
+ const packages = (0, registry_1.discoverPackages)();
463
+ const skills = (0, sync_1.extractSkillEntries)(packages);
464
+ const skillStatusIcon = {
465
+ linked: 'βœ…',
466
+ already_exists: '⏭️ ',
467
+ skipped: '⚫',
468
+ error: '❌',
469
+ removed: 'πŸ—‘οΈ ',
470
+ };
471
+ function printSkillResults(label, results) {
472
+ if (results.length === 0) {
473
+ logger_1.Logger.info(` ${label}: not installed, skipped`);
474
+ return;
475
+ }
476
+ for (const r of results) {
477
+ const icon = skillStatusIcon[r.status] ?? ' ';
478
+ const detail = r.note ? ` (${r.note})` : '';
479
+ logger_1.Logger.info(`${icon} [${label}] ${r.entryName}${detail}`);
480
+ }
481
+ }
482
+ const claudeSkills = (0, sync_1.syncSkillsToClaudeCode)(skills);
483
+ const geminiSkills = (0, sync_1.syncSkillsToGeminiCLI)(skills);
484
+ const windsurfSkills = (0, sync_1.syncSkillsToWindsurf)(skills);
485
+ const antigravitySkills = (0, sync_1.syncSkillsToAntigravityCLI)(skills);
486
+ // Register agentbrew as an MCP server in Cursor β€” this exposes all skills as MCP tools.
487
+ // Only fall back to the markdown index if MCP registration failed or Cursor isn't installed.
488
+ const cursorMcpResults = (0, sync_1.syncMcpServerToCursor)();
489
+ const cursorMcpOk = cursorMcpResults.some(r => r.status === 'linked' || r.status === 'already_exists');
490
+ const cursorSkills = cursorMcpOk
491
+ ? (0, sync_1.unsyncSkillsFromCursor)() // remove stale index β€” MCP tools supersede it
492
+ : (0, sync_1.syncSkillsToCursor)(skills); // fallback: markdown index for non-MCP discovery
493
+ if (skills.length === 0) {
494
+ logger_1.Logger.info(' No skills found in installed packages.');
495
+ }
496
+ else {
497
+ printSkillResults('Claude Code', claudeSkills);
498
+ printSkillResults('Gemini CLI', geminiSkills);
499
+ printSkillResults('Windsurf', windsurfSkills);
500
+ printSkillResults('Antigravity CLI', antigravitySkills);
501
+ printSkillResults('Cursor MCP', cursorMcpResults);
502
+ if (!cursorMcpOk)
503
+ printSkillResults('Cursor (fallback index)', cursorSkills);
504
+ const totalLinked = [...claudeSkills, ...geminiSkills, ...windsurfSkills, ...antigravitySkills, ...cursorMcpResults]
505
+ .filter(r => r.status === 'linked').length;
506
+ if (totalLinked > 0) {
507
+ logger_1.Logger.info(`\n Restart your agents to pick up ${totalLinked} new skill(s).`);
508
+ }
509
+ }
510
+ logger_1.Logger.info(`\nDone. ${synced} agent config(s) updated.`);
511
+ });
512
+ exports.program
513
+ .command('unsync')
514
+ .description('Remove the AgentBrew shared section from all agent config files and unlink skills')
515
+ .action(() => {
516
+ logger_1.Logger.info('Removing AgentBrew shared section from agent config files...\n');
517
+ const results = (0, sync_1.unsyncInstructions)();
518
+ for (const r of results) {
519
+ const icon = r.status === 'removed' ? 'πŸ—‘οΈ ' : r.status === 'manual' ? 'ℹ️ ' : '⚫';
520
+ const detail = r.path ? ` (${r.path})` : r.note ? ` (${r.note})` : '';
521
+ logger_1.Logger.info(`${icon} ${r.agent.padEnd(18)} β†’ ${r.status}${detail}`);
522
+ }
523
+ logger_1.Logger.info('\nRemoving skill links from agents...');
524
+ const allUnsyncResults = [
525
+ ...(0, sync_1.unsyncSkillsFromClaudeCode)(),
526
+ ...(0, sync_1.unsyncSkillsFromGeminiCLI)(),
527
+ ...(0, sync_1.unsyncSkillsFromWindsurf)(),
528
+ ...(0, sync_1.unsyncSkillsFromAntigravityCLI)(),
529
+ ...(0, sync_1.unsyncSkillsFromCursor)(),
530
+ ...(0, sync_1.unsyncMcpServerFromCursor)(),
531
+ ];
532
+ if (allUnsyncResults.length === 0) {
533
+ logger_1.Logger.info(' No skill links to remove.');
534
+ }
535
+ else {
536
+ for (const r of allUnsyncResults) {
537
+ const icon = r.status === 'removed' ? 'πŸ—‘οΈ ' : '⚫';
538
+ const detail = r.note ? ` (${r.note})` : r.path ? ` (${r.path})` : '';
539
+ logger_1.Logger.info(`${icon} ${r.entryName}${detail}`);
540
+ }
541
+ }
542
+ logger_1.Logger.info('\nDone. Run agentbrew sync to re-inject.');
543
+ });
379
544
  function runCLI() {
380
545
  exports.program.parse(process.argv);
381
546
  }
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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"}
@@ -11,11 +11,18 @@ export interface LocalResource {
11
11
  pkgPath: string;
12
12
  file: string;
13
13
  }
14
+ export interface LocalSkillTool {
15
+ /** Absolute path to the directory containing SKILL.md */
16
+ skillDir: string;
17
+ skillName: string;
18
+ description?: string;
19
+ }
14
20
  export declare class CapabilityDispatch {
15
21
  private managedClients;
16
22
  private localPrompts;
17
23
  private resourceToClient;
18
24
  private localResources;
25
+ private localSkillTools;
19
26
  constructor(managedClients: Map<string, ManagedClient>, localPrompts: Map<string, LocalPrompt>);
20
27
  scopeName(prefix: string, name: string): string;
21
28
  parseName(fullName: string): {
@@ -28,6 +35,17 @@ export declare class CapabilityDispatch {
28
35
  originalUri: string;
29
36
  } | null;
30
37
  getClient(prefix: string): Promise<Client>;
38
+ addSkillTool(fullName: string, skill: LocalSkillTool): void;
39
+ /**
40
+ * If fullName is a registered skill tool, reads and returns its SKILL.md content.
41
+ * Returns null if the name is not a skill tool (caller should dispatch normally).
42
+ */
43
+ callSkillTool(fullName: string): {
44
+ content: Array<{
45
+ type: string;
46
+ text: string;
47
+ }>;
48
+ } | null;
31
49
  listAllTools(cachedTools: Map<string, Tool[]>): Tool[];
32
50
  listAllPrompts(cachedPrompts: Map<string, Prompt[]>): Prompt[];
33
51
  getPrompt(fullName: string, args?: Record<string, any>): Promise<any>;
@@ -11,6 +11,7 @@ class CapabilityDispatch {
11
11
  localPrompts;
12
12
  resourceToClient = new Map();
13
13
  localResources = new Map();
14
+ localSkillTools = new Map();
14
15
  constructor(managedClients, localPrompts) {
15
16
  this.managedClients = managedClients;
16
17
  this.localPrompts = localPrompts;
@@ -74,8 +75,38 @@ class CapabilityDispatch {
74
75
  }
75
76
  return await managed.getClient();
76
77
  }
78
+ addSkillTool(fullName, skill) {
79
+ this.localSkillTools.set(fullName, skill);
80
+ }
81
+ /**
82
+ * If fullName is a registered skill tool, reads and returns its SKILL.md content.
83
+ * Returns null if the name is not a skill tool (caller should dispatch normally).
84
+ */
85
+ callSkillTool(fullName) {
86
+ const skill = this.localSkillTools.get(fullName);
87
+ if (!skill)
88
+ return null;
89
+ const skillMdPath = path_1.default.join(skill.skillDir, 'SKILL.md');
90
+ try {
91
+ const text = fs_1.default.readFileSync(skillMdPath, 'utf-8');
92
+ return { content: [{ type: 'text', text }] };
93
+ }
94
+ catch (e) {
95
+ return { content: [{ type: 'text', text: `Error reading skill: ${e.message}` }] };
96
+ }
97
+ }
77
98
  listAllTools(cachedTools) {
78
99
  const allTools = [];
100
+ // Skill tools are served locally β€” no child process needed
101
+ for (const [name, skill] of this.localSkillTools.entries()) {
102
+ allTools.push({
103
+ name,
104
+ description: skill.description
105
+ ? `${skill.description} (AgentBrew skill β€” returns instructions)`
106
+ : `AgentBrew skill: ${skill.skillName}. Returns the SKILL.md instructions.`,
107
+ inputSchema: { type: 'object', properties: {} },
108
+ });
109
+ }
79
110
  for (const [prefix, tools] of cachedTools.entries()) {
80
111
  allTools.push(...tools.map(tool => ({
81
112
  ...tool,
@@ -90,13 +121,15 @@ class CapabilityDispatch {
90
121
  if (this.localResources.size > 0) {
91
122
  allPrompts.push({
92
123
  name: 'agentbrew__instruction_index',
93
- description: 'Index of instruction files (GEMINI.md, CLAUDE.md) for all installed tools.'
124
+ description: 'Index of agent instruction files (CLAUDE.md, GEMINI.md, AGENTS.md, .cursorrules, .windsurfrules, .clinerules) for all installed packages.'
94
125
  });
95
126
  }
96
- // Add local prompts
97
- for (const [prefix, local] of this.localPrompts.entries()) {
127
+ // Add local prompts (skip skills already exposed as tools)
128
+ for (const [fullName, local] of this.localPrompts.entries()) {
129
+ if (this.localSkillTools.has(fullName))
130
+ continue;
98
131
  allPrompts.push({
99
- name: prefix,
132
+ name: fullName,
100
133
  description: local.description
101
134
  });
102
135
  }