@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 +101 -31
- package/dist/cli.js +175 -10
- package/dist/cli.js.map +1 -1
- package/dist/dispatcher.d.ts +18 -0
- package/dist/dispatcher.js +37 -4
- package/dist/dispatcher.js.map +1 -1
- package/dist/installer.js +4 -2
- package/dist/installer.js.map +1 -1
- package/dist/migration.js +49 -0
- package/dist/migration.js.map +1 -1
- package/dist/registry.d.ts +6 -1
- package/dist/registry.js +101 -13
- package/dist/registry.js.map +1 -1
- package/dist/router.js +21 -2
- package/dist/router.js.map +1 -1
- package/dist/state.d.ts +4 -2
- package/dist/state.js +9 -4
- package/dist/state.js.map +1 -1
- package/dist/sync.d.ts +120 -0
- package/dist/sync.js +713 -0
- package/dist/sync.js.map +1 -0
- package/dist/updater.js +2 -1
- package/dist/updater.js.map +1 -1
- package/package.json +1 -1
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.
|
|
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
|
-
###
|
|
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
|
|
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
|
-
βββ
|
|
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
|
-
βββ
|
|
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
|
-
- **
|
|
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
|
|
32
|
-
- **Instruction Index:** Automatically exposes `GEMINI.md
|
|
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
|
-
###
|
|
77
|
+
### First Steps
|
|
78
|
+
|
|
79
|
+
After installing AgentBrew, the recommended setup is:
|
|
80
|
+
|
|
65
81
|
```bash
|
|
66
|
-
# Install a
|
|
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
|
|
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
|
-
- **
|
|
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)
|
|
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"
|
|
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
|
|
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
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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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"}
|
package/dist/dispatcher.d.ts
CHANGED
|
@@ -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>;
|
package/dist/dispatcher.js
CHANGED
|
@@ -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,
|
|
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 [
|
|
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:
|
|
132
|
+
name: fullName,
|
|
100
133
|
description: local.description
|
|
101
134
|
});
|
|
102
135
|
}
|