@tc9011/skills-manager 0.2.0 → 0.3.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 +28 -1
- package/dist/agents.d.ts +11 -0
- package/dist/agents.js +23 -0
- package/dist/agents.js.map +1 -1
- package/dist/commands/link.d.ts +1 -0
- package/dist/commands/link.js +80 -22
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/pull.js +17 -7
- package/dist/commands/pull.js.map +1 -1
- package/dist/git-ops.js +6 -1
- package/dist/git-ops.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/linker.d.ts +23 -0
- package/dist/linker.js +83 -1
- package/dist/linker.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@ A CLI companion to [vercel-labs/skills](https://github.com/vercel-labs/skills)
|
|
|
22
22
|
- **Push** — commit and push `~/.agents/` (skills + lock file) to GitHub
|
|
23
23
|
- **Pull** — clone or pull your skills on any machine
|
|
24
24
|
- **Link** — read `.skill-lock.json` and create symlinks to every agent you use
|
|
25
|
+
- **Project Link** — link or copy skills directly to your current project directory for localized development
|
|
25
26
|
|
|
26
27
|
> **Note:** This tool reads `.skill-lock.json` but never modifies it — that file is owned by `vercel-labs/skills`.
|
|
27
28
|
|
|
@@ -48,6 +49,9 @@ skills-manager pull --repo owner/my-skills
|
|
|
48
49
|
|
|
49
50
|
# 3. Re-link skills to agents (auto-runs after pull)
|
|
50
51
|
skills-manager link
|
|
52
|
+
|
|
53
|
+
# 4. Link skills to current project directory
|
|
54
|
+
skills-manager link --project
|
|
51
55
|
```
|
|
52
56
|
|
|
53
57
|
On first run, `push` and `pull` will interactively set up a git repo and remote if `~/.agents/` isn't already one.
|
|
@@ -94,6 +98,7 @@ skills-manager link --agents cursor opencode claude-code
|
|
|
94
98
|
| Option | Description |
|
|
95
99
|
|--------|-------------|
|
|
96
100
|
| `-a, --agents <ids...>` | Agent IDs to link (default: from lock file) |
|
|
101
|
+
| `-p, --project` | Link skills to project directory (CWD) instead of global paths |
|
|
97
102
|
|
|
98
103
|
An interactive multiselect prompt lets you pick which agents to link. Only agents with local directories are pre-selected. Your selection is remembered for next time.
|
|
99
104
|
|
|
@@ -104,6 +109,22 @@ An interactive multiselect prompt lets you pick which agents to link. Only agent
|
|
|
104
109
|
~/.claude/skills/my-skill → ../../.agents/skills/my-skill (relative)
|
|
105
110
|
```
|
|
106
111
|
|
|
112
|
+
**Project Mode:**
|
|
113
|
+
|
|
114
|
+
When using `--project` (or `-p`), you will be prompted to choose between copying files (default) or creating symlinks. Skills are placed in CWD-relative paths based on each agent's configuration.
|
|
115
|
+
|
|
116
|
+
Example project structure after `link --project`:
|
|
117
|
+
```
|
|
118
|
+
./project/
|
|
119
|
+
├── .agents/skills/my-skill ← shared by universal agents (copied or symlinked)
|
|
120
|
+
├── .claude/skills/my-skill ← claude-code specific
|
|
121
|
+
├── .cursor/skills/my-skill → ~/.agents/skills/my-skill (absolute symlink)
|
|
122
|
+
└── .trae/skills/my-skill ← trae specific
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- **Deduplication:** Agents sharing the same project path only trigger one copy/link operation.
|
|
126
|
+
- **Copy vs Symlink:** Copying creates independent files (recommended for portability). Symlinking points back to `~/.agents/skills/` using absolute paths.
|
|
127
|
+
|
|
107
128
|
## Authentication
|
|
108
129
|
|
|
109
130
|
Resolved in this order:
|
|
@@ -201,6 +222,12 @@ skills-manager link reads .skill-lock.json → creates relative symlinks:
|
|
|
201
222
|
~/.config/opencode/skills/my-skill → ../../../.agents/skills/my-skill
|
|
202
223
|
```
|
|
203
224
|
|
|
225
|
+
```
|
|
226
|
+
skills-manager link --project reads .skill-lock.json → copies/symlinks to CWD:
|
|
227
|
+
|
|
228
|
+
./my-project/.agents/skills/my-skill ← copied from ~/.agents/skills/
|
|
229
|
+
./my-project/.claude/skills/my-skill ← copied from ~/.agents/skills/
|
|
230
|
+
```
|
|
204
231
|
## Contributing
|
|
205
232
|
|
|
206
233
|
### Setup
|
|
@@ -246,7 +273,7 @@ src/
|
|
|
246
273
|
├── auth.ts # GitHub token resolution
|
|
247
274
|
├── config.ts # XDG-compliant config persistence
|
|
248
275
|
├── lockfile.ts # Read-only .skill-lock.json parser
|
|
249
|
-
├── linker.ts #
|
|
276
|
+
├── linker.ts # Symlink creation + project-level copy/link
|
|
250
277
|
├── git-ops.ts # Git push/pull via simple-git
|
|
251
278
|
└── commands/
|
|
252
279
|
├── push.ts # Push handler
|
package/dist/agents.d.ts
CHANGED
|
@@ -11,6 +11,17 @@ export declare const agentRegistry: Record<AgentId, AgentPaths>;
|
|
|
11
11
|
* Handles ~, $XDG_CONFIG_HOME, $CODEX_HOME, $CLAUDE_CONFIG_DIR.
|
|
12
12
|
*/
|
|
13
13
|
export declare function getAgentGlobalPath(agentId: AgentId): string;
|
|
14
|
+
/**
|
|
15
|
+
* Resolve an agent's project-level skills path given a project root.
|
|
16
|
+
* projectPaths are plain relative paths (no env vars), so this is a simple join.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getAgentProjectPath(agentId: AgentId, projectRoot: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Group agent IDs by their projectPath, enabling deduplication when linking/copying.
|
|
21
|
+
* Returns a Map where keys are projectPath strings and values are arrays of agent IDs
|
|
22
|
+
* that share that projectPath.
|
|
23
|
+
*/
|
|
24
|
+
export declare function groupAgentsByProjectPath(agentIds: AgentId[]): Map<string, AgentId[]>;
|
|
14
25
|
/** Canonical skills directory — the source of truth. */
|
|
15
26
|
export declare const CANONICAL_SKILLS_DIR: string;
|
|
16
27
|
/** The git-managed agents directory — root of the backup repo. */
|
package/dist/agents.js
CHANGED
|
@@ -71,6 +71,29 @@ export function getAgentGlobalPath(agentId) {
|
|
|
71
71
|
}
|
|
72
72
|
return p;
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Resolve an agent's project-level skills path given a project root.
|
|
76
|
+
* projectPaths are plain relative paths (no env vars), so this is a simple join.
|
|
77
|
+
*/
|
|
78
|
+
export function getAgentProjectPath(agentId, projectRoot) {
|
|
79
|
+
return join(projectRoot, agentRegistry[agentId].projectPath);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Group agent IDs by their projectPath, enabling deduplication when linking/copying.
|
|
83
|
+
* Returns a Map where keys are projectPath strings and values are arrays of agent IDs
|
|
84
|
+
* that share that projectPath.
|
|
85
|
+
*/
|
|
86
|
+
export function groupAgentsByProjectPath(agentIds) {
|
|
87
|
+
const groups = new Map();
|
|
88
|
+
for (const agentId of agentIds) {
|
|
89
|
+
const projectPath = agentRegistry[agentId].projectPath;
|
|
90
|
+
if (!groups.has(projectPath)) {
|
|
91
|
+
groups.set(projectPath, []);
|
|
92
|
+
}
|
|
93
|
+
groups.get(projectPath).push(agentId);
|
|
94
|
+
}
|
|
95
|
+
return groups;
|
|
96
|
+
}
|
|
74
97
|
/** Canonical skills directory — the source of truth. */
|
|
75
98
|
export const CANONICAL_SKILLS_DIR = join(homedir(), '.agents', 'skills');
|
|
76
99
|
/** The git-managed agents directory — root of the backup repo. */
|
package/dist/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,mCAAmC;IACnC,GAAG,EAAe,EAAE,WAAW,EAAE,KAAK,EAAe,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAI,SAAS,EAAE,IAAI,EAAE;IAC9I,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAW,SAAS,EAAE,IAAI,EAAE;IAC9I,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAS,SAAS,EAAE,IAAI,EAAE;IAC9I,MAAM,EAAY,EAAE,WAAW,EAAE,QAAQ,EAAY,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAW,SAAS,EAAE,IAAI,EAAE;IAC9I,YAAY,EAAM,EAAE,WAAW,EAAE,YAAY,EAAQ,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAW,SAAS,EAAE,IAAI,EAAE;IAC9I,gBAAgB,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAI,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAU,SAAS,EAAE,IAAI,EAAE;IAC9I,UAAU,EAAQ,EAAE,WAAW,EAAE,eAAe,EAAK,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAI,SAAS,EAAE,IAAI,EAAE;IAC9I,QAAQ,EAAU,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,EAAE,SAAS,EAAE,IAAI,EAAE;IACrJ,MAAM,EAAY,EAAE,WAAW,EAAE,QAAQ,EAAa,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAI,SAAS,EAAE,IAAI,EAAE;IAC/I,SAAS,EAAS,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAI,SAAS,EAAE,IAAI,EAAE;IAE9I,uCAAuC;IACvC,WAAW,EAAO,EAAE,WAAW,EAAE,aAAa,EAAO,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,8BAA8B,EAAK,SAAS,EAAE,KAAK,EAAE;IAC3J,OAAO,EAAW,EAAE,WAAW,EAAE,SAAS,EAAW,WAAW,EAAE,iBAAiB,EAAO,UAAU,EAAE,mBAAmB,EAAgB,SAAS,EAAE,KAAK,EAAE;IAC3J,aAAa,EAAK,EAAE,WAAW,EAAE,aAAa,EAAO,WAAW,EAAE,gBAAgB,EAAQ,UAAU,EAAE,2BAA2B,EAAQ,SAAS,EAAE,KAAK,EAAE;IAC3J,QAAQ,EAAU,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,QAAQ,EAAgB,UAAU,EAAE,oBAAoB,EAAe,SAAS,EAAE,KAAK,EAAE;IAC3J,SAAS,EAAS,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,mBAAmB,EAAK,UAAU,EAAE,qBAAqB,EAAc,SAAS,EAAE,KAAK,EAAE;IAC3J,cAAc,EAAI,EAAE,WAAW,EAAE,cAAc,EAAM,WAAW,EAAE,qBAAqB,EAAG,UAAU,EAAE,uBAAuB,EAAY,SAAS,EAAE,KAAK,EAAE;IAC3J,QAAQ,EAAU,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,kBAAkB,EAAM,UAAU,EAAE,oBAAoB,EAAe,SAAS,EAAE,KAAK,EAAE;IAC3J,MAAM,EAAY,EAAE,WAAW,EAAE,aAAa,EAAO,WAAW,EAAE,gBAAgB,EAAQ,UAAU,EAAE,4BAA4B,EAAO,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,wBAAwB,EAAW,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,iBAAiB,EAAO,UAAU,EAAE,mBAAmB,EAAgB,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,wBAAwB,EAAW,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,iBAAiB,EAAkB,SAAS,EAAE,KAAK,EAAE;IAC3J,WAAW,EAAO,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,iBAAiB,EAAkB,SAAS,EAAE,KAAK,EAAE;IAC3J,IAAI,EAAc,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,kBAAkB,EAAM,UAAU,EAAE,oBAAoB,EAAe,SAAS,EAAE,KAAK,EAAE;IAC3J,UAAU,EAAQ,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;IAC3J,IAAI,EAAc,EAAE,WAAW,EAAE,MAAM,EAAc,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;IAC3J,MAAM,EAAY,EAAE,WAAW,EAAE,QAAQ,EAAY,WAAW,EAAE,gBAAgB,EAAQ,UAAU,EAAE,kBAAkB,EAAiB,SAAS,EAAE,KAAK,EAAE;IAC3J,cAAc,EAAI,EAAE,WAAW,EAAE,cAAc,EAAM,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;IAC3J,GAAG,EAAe,EAAE,WAAW,EAAE,KAAK,EAAe,WAAW,EAAE,aAAa,EAAW,UAAU,EAAE,eAAe,EAAoB,SAAS,EAAE,KAAK,EAAE;IAC3J,SAAS,EAAS,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,mBAAmB,EAAK,UAAU,EAAE,qBAAqB,EAAc,SAAS,EAAE,KAAK,EAAE;IAC3J,EAAE,EAAgB,EAAE,WAAW,EAAE,IAAI,EAAgB,WAAW,EAAE,YAAY,EAAY,UAAU,EAAE,oBAAoB,EAAe,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,iBAAiB,EAAkB,SAAS,EAAE,KAAK,EAAE;IAC3J,WAAW,EAAO,EAAE,WAAW,EAAE,WAAW,EAAS,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;IAC3J,GAAG,EAAe,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,aAAa,EAAW,UAAU,EAAE,eAAe,EAAoB,SAAS,EAAE,KAAK,EAAE;IAC3J,IAAI,EAAc,EAAE,WAAW,EAAE,MAAM,EAAc,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;IAC3J,SAAS,EAAS,EAAE,WAAW,EAAE,SAAS,EAAW,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,mBAAmB,EAAgB,SAAS,EAAE,KAAK,EAAE;IAC3J,QAAQ,EAAU,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,kBAAkB,EAAM,UAAU,EAAE,4BAA4B,EAAO,SAAS,EAAE,KAAK,EAAE;IAC3J,QAAQ,EAAU,EAAE,WAAW,EAAE,UAAU,EAAU,WAAW,EAAE,kBAAkB,EAAM,UAAU,EAAE,oBAAoB,EAAe,SAAS,EAAE,KAAK,EAAE;IAC3J,OAAO,EAAW,EAAE,WAAW,EAAE,SAAS,EAAW,WAAW,EAAE,iBAAiB,EAAO,UAAU,EAAE,mBAAmB,EAAgB,SAAS,EAAE,KAAK,EAAE;IAC3J,KAAK,EAAa,EAAE,WAAW,EAAE,OAAO,EAAa,WAAW,EAAE,eAAe,EAAS,UAAU,EAAE,iBAAiB,EAAkB,SAAS,EAAE,KAAK,EAAE;IAC3J,IAAI,EAAc,EAAE,WAAW,EAAE,MAAM,EAAc,WAAW,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAmB,SAAS,EAAE,KAAK,EAAE;CAC5J,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAE1C,oCAAoC;IACpC,IAAI,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEzE,kEAAkE;AAClE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAErD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/link.d.ts
CHANGED
package/dist/commands/link.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import {
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { CANONICAL_SKILLS_DIR, SKILL_LOCK_PATH, agentRegistry, getAgentGlobalPath, groupAgentsByProjectPath } from '../agents.js';
|
|
3
4
|
import { CliError } from '../errors.js';
|
|
4
5
|
import { readConfig, writeConfig } from '../config.js';
|
|
5
6
|
import { getLastSelectedAgents } from '../lockfile.js';
|
|
6
|
-
import { createSkillSymlinks, listCanonicalSkills } from '../linker.js';
|
|
7
|
+
import { createSkillSymlinks, listCanonicalSkills, copySkills, createProjectSymlinks } from '../linker.js';
|
|
7
8
|
import * as p from '@clack/prompts';
|
|
8
9
|
export async function linkCommand(options) {
|
|
9
10
|
p.intro('skills-manager link');
|
|
@@ -51,31 +52,88 @@ export async function linkCommand(options) {
|
|
|
51
52
|
p.cancel(`No skills found in ${CANONICAL_SKILLS_DIR}.`);
|
|
52
53
|
throw new CliError(`No skills found in ${CANONICAL_SKILLS_DIR}.`);
|
|
53
54
|
}
|
|
54
|
-
// 4.
|
|
55
|
+
// 4. Link/copy skills
|
|
55
56
|
const linkedAgents = [];
|
|
56
57
|
const skippedAgents = [];
|
|
57
58
|
const validSelected = new Set(Object.keys(agentRegistry));
|
|
58
59
|
const selectedAgents = selected.filter((id) => validSelected.has(id));
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
parts.push(`${existed} existing`, `${skipped} skipped`);
|
|
73
|
-
spinner.stop(`${agentRegistry[agentId].displayName}: ${parts.join(', ')}`);
|
|
74
|
-
linkedAgents.push(agentId);
|
|
60
|
+
if (options.project) {
|
|
61
|
+
// Project mode: prompt for copy vs symlink, group by projectPath
|
|
62
|
+
const mode = await p.select({
|
|
63
|
+
message: 'How should skills be added to the project?',
|
|
64
|
+
options: [
|
|
65
|
+
{ value: 'copy', label: 'Copy files', hint: 'recommended — independent copies' },
|
|
66
|
+
{ value: 'symlink', label: 'Create symlinks', hint: 'links to ~/.agents/skills' },
|
|
67
|
+
],
|
|
68
|
+
initialValue: 'copy',
|
|
69
|
+
});
|
|
70
|
+
if (p.isCancel(mode)) {
|
|
71
|
+
p.cancel('Cancelled.');
|
|
72
|
+
return;
|
|
75
73
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
const groups = groupAgentsByProjectPath(selectedAgents);
|
|
75
|
+
for (const [projectPath, groupAgentIds] of groups) {
|
|
76
|
+
const targetDir = join(process.cwd(), projectPath);
|
|
77
|
+
const agentNames = groupAgentIds.map(id => agentRegistry[id].displayName).join(', ');
|
|
78
|
+
const spinner = p.spinner();
|
|
79
|
+
spinner.start(`${mode === 'copy' ? 'Copying' : 'Linking'} to ${projectPath} (${agentNames})...`);
|
|
80
|
+
try {
|
|
81
|
+
if (mode === 'copy') {
|
|
82
|
+
const results = await copySkills(CANONICAL_SKILLS_DIR, targetDir, skills);
|
|
83
|
+
const copied = results.filter(r => r.status === 'copied').length;
|
|
84
|
+
const overwritten = results.filter(r => r.status === 'overwritten').length;
|
|
85
|
+
const skipped = results.filter(r => r.status === 'skipped').length;
|
|
86
|
+
const parts = [`${copied} copied`];
|
|
87
|
+
if (overwritten > 0)
|
|
88
|
+
parts.push(`${overwritten} overwritten`);
|
|
89
|
+
parts.push(`${skipped} skipped`);
|
|
90
|
+
spinner.stop(`${projectPath}: ${parts.join(', ')}`);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const results = await createProjectSymlinks(CANONICAL_SKILLS_DIR, targetDir, skills);
|
|
94
|
+
const created = results.filter(r => r.status === 'created').length;
|
|
95
|
+
const recreated = results.filter(r => r.status === 'recreated').length;
|
|
96
|
+
const existed = results.filter(r => r.status === 'exists').length;
|
|
97
|
+
const skipped = results.filter(r => r.status === 'skipped').length;
|
|
98
|
+
const parts = [`${created} linked`];
|
|
99
|
+
if (recreated > 0)
|
|
100
|
+
parts.push(`${recreated} recreated`);
|
|
101
|
+
parts.push(`${existed} existing`, `${skipped} skipped`);
|
|
102
|
+
spinner.stop(`${projectPath}: ${parts.join(', ')}`);
|
|
103
|
+
}
|
|
104
|
+
linkedAgents.push(...groupAgentIds);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
spinner.stop(`${projectPath}: failed`);
|
|
108
|
+
for (const id of groupAgentIds) {
|
|
109
|
+
skippedAgents.push({ id, reason: String(err) });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// Global mode: create symlinks for each agent individually
|
|
116
|
+
for (const agentId of selectedAgents) {
|
|
117
|
+
const globalPath = getAgentGlobalPath(agentId);
|
|
118
|
+
const spinner = p.spinner();
|
|
119
|
+
spinner.start(`Linking ${agentRegistry[agentId].displayName}...`);
|
|
120
|
+
try {
|
|
121
|
+
const results = await createSkillSymlinks(CANONICAL_SKILLS_DIR, globalPath, skills);
|
|
122
|
+
const created = results.filter(r => r.status === 'created').length;
|
|
123
|
+
const recreated = results.filter(r => r.status === 'recreated').length;
|
|
124
|
+
const existed = results.filter(r => r.status === 'exists').length;
|
|
125
|
+
const skipped = results.filter(r => r.status === 'skipped').length;
|
|
126
|
+
const parts = [`${created} linked`];
|
|
127
|
+
if (recreated > 0)
|
|
128
|
+
parts.push(`${recreated} recreated`);
|
|
129
|
+
parts.push(`${existed} existing`, `${skipped} skipped`);
|
|
130
|
+
spinner.stop(`${agentRegistry[agentId].displayName}: ${parts.join(', ')}`);
|
|
131
|
+
linkedAgents.push(agentId);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
spinner.stop(`${agentRegistry[agentId].displayName}: failed`);
|
|
135
|
+
skippedAgents.push({ id: agentId, reason: String(err) });
|
|
136
|
+
}
|
|
79
137
|
}
|
|
80
138
|
}
|
|
81
139
|
// 5. Save selection for next time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -35,23 +35,33 @@ export async function pullCommand(options) {
|
|
|
35
35
|
// Pull
|
|
36
36
|
const spinner = p.spinner();
|
|
37
37
|
spinner.start('Pulling skills from GitHub...');
|
|
38
|
+
let result;
|
|
38
39
|
try {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
result = await pullSkills(AGENTS_DIR, remoteUrl, token);
|
|
41
|
+
if (result.cloned) {
|
|
42
|
+
spinner.stop('Skills cloned successfully!');
|
|
43
|
+
}
|
|
44
|
+
else if (result.pulled) {
|
|
45
|
+
spinner.stop('Skills updated from remote.');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
spinner.stop('Already up to date.');
|
|
49
|
+
}
|
|
43
50
|
}
|
|
44
51
|
catch (err) {
|
|
45
52
|
spinner.stop('Pull failed.');
|
|
46
53
|
p.cancel(String(err));
|
|
47
54
|
throw new CliError(String(err));
|
|
48
55
|
}
|
|
49
|
-
// Auto-run link unless skipped
|
|
50
|
-
if (!options.skipLink) {
|
|
56
|
+
// Auto-run link unless skipped or nothing changed
|
|
57
|
+
if (!options.skipLink && (result.cloned || result.pulled)) {
|
|
51
58
|
await linkCommand({});
|
|
52
59
|
}
|
|
53
|
-
else {
|
|
60
|
+
else if (options.skipLink) {
|
|
54
61
|
p.outro('Pull complete. Run `skills-manager link` to create agent symlinks.');
|
|
55
62
|
}
|
|
63
|
+
else {
|
|
64
|
+
p.outro('No changes pulled. Skipping link.');
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA8C;IAC9E,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAExC,uBAAuB;IACvB,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,GAAG,QAAQ,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;YAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,8CAA8C;gBACvD,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC5B,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO;IACP,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/git-ops.js
CHANGED
|
@@ -182,6 +182,8 @@ export async function pullSkills(dir, remoteUrl, token) {
|
|
|
182
182
|
if (!localBranch.current || /^[0-9a-f]{7,40}$/.test(localBranch.current)) {
|
|
183
183
|
await git.checkout(branch);
|
|
184
184
|
}
|
|
185
|
+
// Capture HEAD before pull to detect if anything changed
|
|
186
|
+
const headBefore = await git.revparse(['HEAD']);
|
|
185
187
|
const doPull = async () => {
|
|
186
188
|
try {
|
|
187
189
|
await git.pull('origin', branch, { '--rebase': null });
|
|
@@ -221,7 +223,10 @@ export async function pullSkills(dir, remoteUrl, token) {
|
|
|
221
223
|
else {
|
|
222
224
|
await doPull();
|
|
223
225
|
}
|
|
224
|
-
|
|
226
|
+
// Compare HEAD after pull to detect if anything actually changed
|
|
227
|
+
const headAfter = await git.revparse(['HEAD']);
|
|
228
|
+
const hasChanges = headBefore !== headAfter;
|
|
229
|
+
return { cloned: false, pulled: hasChanges };
|
|
225
230
|
}
|
|
226
231
|
/**
|
|
227
232
|
* Ensure a directory is a git repository. If not, runs `git init`.
|
package/dist/git-ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-ops.js","sourceRoot":"","sources":["../src/git-ops.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"git-ops.js","sourceRoot":"","sources":["../src/git-ops.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ program
|
|
|
24
24
|
.command('link')
|
|
25
25
|
.description('Create symlinks from canonical skills to agent directories')
|
|
26
26
|
.option('-a, --agents <agents...>', 'Agent IDs to link (default: from .skill-lock.json)')
|
|
27
|
+
.option('-p, --project', 'Link skills to project directory (CWD)')
|
|
27
28
|
.action(linkCommand);
|
|
28
29
|
// Catch CliError from command handlers and exit with code 1
|
|
29
30
|
program.parseAsync().catch((err) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;KACnD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;KACvD,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,0BAA0B,EAAE,oDAAoD,CAAC;KACxF,MAAM,CAAC,WAAW,CAAC,CAAC;AAGvB,4DAA4D;AAC5D,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC1C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;KACnD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;KACvD,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,0BAA0B,EAAE,oDAAoD,CAAC;KACxF,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;KACjE,MAAM,CAAC,WAAW,CAAC,CAAC;AAGvB,4DAA4D;AAC5D,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC1C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/linker.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ export interface LinkResult {
|
|
|
3
3
|
status: 'created' | 'exists' | 'recreated' | 'skipped';
|
|
4
4
|
reason?: string;
|
|
5
5
|
}
|
|
6
|
+
export interface CopyResult {
|
|
7
|
+
skill: string;
|
|
8
|
+
status: 'copied' | 'overwritten' | 'skipped';
|
|
9
|
+
reason?: string;
|
|
10
|
+
}
|
|
6
11
|
/**
|
|
7
12
|
* Compute relative symlink target from linkPath to targetPath.
|
|
8
13
|
* This matches how vercel-labs/skills creates relative symlinks.
|
|
@@ -21,3 +26,21 @@ export declare function createSkillSymlinks(canonicalDir: string, agentSkillsDir
|
|
|
21
26
|
* Get all skill folder names from the canonical directory.
|
|
22
27
|
*/
|
|
23
28
|
export declare function listCanonicalSkills(canonicalDir: string): Promise<string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Copy skill directories from canonicalDir to targetDir.
|
|
31
|
+
* Unlike createSkillSymlinks, this creates actual copies for project-level skills.
|
|
32
|
+
*
|
|
33
|
+
* @param canonicalDir - Absolute path to ~/.agents/skills/
|
|
34
|
+
* @param targetDir - Absolute path to the project's skills directory
|
|
35
|
+
* @param skillNames - List of skill folder names to copy
|
|
36
|
+
*/
|
|
37
|
+
export declare function copySkills(canonicalDir: string, targetDir: string, skillNames: string[]): Promise<CopyResult[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Create absolute symlinks from targetDir/<skill> → canonicalDir/<skill>
|
|
40
|
+
* for project-level linking where source and target are in unrelated trees.
|
|
41
|
+
*
|
|
42
|
+
* @param canonicalDir - Absolute path to ~/.agents/skills/
|
|
43
|
+
* @param targetDir - Absolute path to the project's skills directory
|
|
44
|
+
* @param skillNames - List of skill folder names to link
|
|
45
|
+
*/
|
|
46
|
+
export declare function createProjectSymlinks(canonicalDir: string, targetDir: string, skillNames: string[]): Promise<LinkResult[]>;
|
package/dist/linker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/linker.ts
|
|
2
|
-
import { symlink, lstat, readdir, mkdir, readlink, unlink } from 'node:fs/promises';
|
|
2
|
+
import { symlink, lstat, readdir, mkdir, readlink, unlink, cp, rm } from 'node:fs/promises';
|
|
3
3
|
import { join, relative, dirname } from 'node:path';
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
/**
|
|
@@ -75,4 +75,86 @@ export async function listCanonicalSkills(canonicalDir) {
|
|
|
75
75
|
return [];
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Copy skill directories from canonicalDir to targetDir.
|
|
80
|
+
* Unlike createSkillSymlinks, this creates actual copies for project-level skills.
|
|
81
|
+
*
|
|
82
|
+
* @param canonicalDir - Absolute path to ~/.agents/skills/
|
|
83
|
+
* @param targetDir - Absolute path to the project's skills directory
|
|
84
|
+
* @param skillNames - List of skill folder names to copy
|
|
85
|
+
*/
|
|
86
|
+
export async function copySkills(canonicalDir, targetDir, skillNames) {
|
|
87
|
+
// Ensure target dir exists
|
|
88
|
+
await mkdir(targetDir, { recursive: true });
|
|
89
|
+
const results = [];
|
|
90
|
+
for (const skill of skillNames) {
|
|
91
|
+
const canonicalPath = join(canonicalDir, skill);
|
|
92
|
+
const destPath = join(targetDir, skill);
|
|
93
|
+
// Check skill exists in canonical
|
|
94
|
+
if (!existsSync(canonicalPath)) {
|
|
95
|
+
results.push({ skill, status: 'skipped', reason: `not found in ${canonicalDir}` });
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// Check if skill already exists in target
|
|
99
|
+
if (existsSync(destPath)) {
|
|
100
|
+
await rm(destPath, { recursive: true, force: true });
|
|
101
|
+
await cp(canonicalPath, destPath, { recursive: true });
|
|
102
|
+
results.push({ skill, status: 'overwritten' });
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Copy entire directory
|
|
106
|
+
await cp(canonicalPath, destPath, { recursive: true });
|
|
107
|
+
results.push({ skill, status: 'copied' });
|
|
108
|
+
}
|
|
109
|
+
return results;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Create absolute symlinks from targetDir/<skill> → canonicalDir/<skill>
|
|
113
|
+
* for project-level linking where source and target are in unrelated trees.
|
|
114
|
+
*
|
|
115
|
+
* @param canonicalDir - Absolute path to ~/.agents/skills/
|
|
116
|
+
* @param targetDir - Absolute path to the project's skills directory
|
|
117
|
+
* @param skillNames - List of skill folder names to link
|
|
118
|
+
*/
|
|
119
|
+
export async function createProjectSymlinks(canonicalDir, targetDir, skillNames) {
|
|
120
|
+
// Ensure target dir exists
|
|
121
|
+
await mkdir(targetDir, { recursive: true });
|
|
122
|
+
const results = [];
|
|
123
|
+
for (const skill of skillNames) {
|
|
124
|
+
const canonicalPath = join(canonicalDir, skill);
|
|
125
|
+
const linkPath = join(targetDir, skill);
|
|
126
|
+
// Check skill exists in canonical
|
|
127
|
+
if (!existsSync(canonicalPath)) {
|
|
128
|
+
results.push({ skill, status: 'skipped', reason: `not found in ${canonicalDir}` });
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// Check if symlink already exists
|
|
132
|
+
try {
|
|
133
|
+
const stats = await lstat(linkPath);
|
|
134
|
+
if (stats.isSymbolicLink()) {
|
|
135
|
+
// Verify the symlink points to the correct absolute target
|
|
136
|
+
const actualTarget = await readlink(linkPath);
|
|
137
|
+
if (actualTarget === canonicalPath) {
|
|
138
|
+
results.push({ skill, status: 'exists' });
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Stale symlink — remove and recreate
|
|
142
|
+
await unlink(linkPath);
|
|
143
|
+
await symlink(canonicalPath, linkPath);
|
|
144
|
+
results.push({ skill, status: 'recreated', reason: `was pointing to ${actualTarget}` });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
// Exists but not a symlink — skip to avoid overwriting
|
|
148
|
+
results.push({ skill, status: 'skipped', reason: 'path exists but is not a symlink' });
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
// Doesn't exist — good, we'll create it
|
|
153
|
+
}
|
|
154
|
+
// Create absolute symlink
|
|
155
|
+
await symlink(canonicalPath, linkPath);
|
|
156
|
+
results.push({ skill, status: 'created' });
|
|
157
|
+
}
|
|
158
|
+
return results;
|
|
159
|
+
}
|
|
78
160
|
//# sourceMappingURL=linker.js.map
|
package/dist/linker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"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"}
|