reskill 1.9.0 → 1.11.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/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/index.js +33 -17
- package/dist/core/installer.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts +12 -4
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/index.js +27 -13
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,eAAO,MAAM,WAAW,SAsCpB,CAAC;AAEL,eAAe,WAAW,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -408,13 +408,6 @@ var external_node_fs_ = __webpack_require__("node:fs");
|
|
|
408
408
|
*/ function getHomeDir() {
|
|
409
409
|
return process.env.HOME || process.env.USERPROFILE || '';
|
|
410
410
|
}
|
|
411
|
-
/**
|
|
412
|
-
* Get global skills installation directory (~/.claude/skills)
|
|
413
|
-
* @deprecated Use getAgentGlobalSkillsDir from agent-registry instead
|
|
414
|
-
*/ function getGlobalSkillsDir() {
|
|
415
|
-
const home = getHomeDir();
|
|
416
|
-
return __WEBPACK_EXTERNAL_MODULE_node_path__.join(home, '.claude', 'skills');
|
|
417
|
-
}
|
|
418
411
|
/**
|
|
419
412
|
* Shorten path display (replace home directory with ~)
|
|
420
413
|
*/ function shortenPath(fullPath, cwd) {
|
|
@@ -1786,10 +1779,12 @@ const installer_SKILLS_SUBDIR = 'skills';
|
|
|
1786
1779
|
// Read globs from metadata if available
|
|
1787
1780
|
const globs = parsed.metadata?.globs;
|
|
1788
1781
|
const globsValue = 'string' == typeof globs && globs.length > 0 ? `"${globs}"` : '';
|
|
1782
|
+
// Read alwaysApply from metadata if available (default: false)
|
|
1783
|
+
const alwaysApply = parsed.metadata?.alwaysApply === true;
|
|
1789
1784
|
const bridgeContent = `---
|
|
1790
1785
|
description: "${safeDescription}"
|
|
1791
1786
|
globs: ${globsValue}
|
|
1792
|
-
alwaysApply:
|
|
1787
|
+
alwaysApply: ${alwaysApply}
|
|
1793
1788
|
---
|
|
1794
1789
|
|
|
1795
1790
|
${CURSOR_BRIDGE_MARKER}
|
|
@@ -3756,8 +3751,8 @@ class RegistryResolver {
|
|
|
3756
3751
|
* Provides complete skill installation, update, and uninstall functionality
|
|
3757
3752
|
*
|
|
3758
3753
|
* Installation directories:
|
|
3759
|
-
* - Project mode (default): .skills/ or
|
|
3760
|
-
* - Global mode (-g): ~/.
|
|
3754
|
+
* - Project mode (default): .agents/skills/ (canonical) or .skills/ (legacy)
|
|
3755
|
+
* - Global mode (-g): ~/.agents/skills/
|
|
3761
3756
|
*/ class SkillManager {
|
|
3762
3757
|
projectRoot;
|
|
3763
3758
|
resolver;
|
|
@@ -3791,10 +3786,10 @@ class RegistryResolver {
|
|
|
3791
3786
|
/**
|
|
3792
3787
|
* Get legacy installation directory (for backward compatibility)
|
|
3793
3788
|
*
|
|
3794
|
-
* - Global mode: ~/.
|
|
3789
|
+
* - Global mode: ~/.agents/skills/ (canonical)
|
|
3795
3790
|
* - Project mode: .skills/ or directory configured in skills.json
|
|
3796
3791
|
*/ getInstallDir() {
|
|
3797
|
-
if (this.isGlobal) return
|
|
3792
|
+
if (this.isGlobal) return this.getCanonicalSkillsDir();
|
|
3798
3793
|
return this.config.getInstallDir();
|
|
3799
3794
|
}
|
|
3800
3795
|
/**
|
|
@@ -4146,6 +4141,24 @@ class RegistryResolver {
|
|
|
4146
4141
|
return skills;
|
|
4147
4142
|
}
|
|
4148
4143
|
/**
|
|
4144
|
+
* Detect which agents have a skill installed (symlink or copy)
|
|
4145
|
+
*
|
|
4146
|
+
* Scans all known agent directories to check if the skill exists there.
|
|
4147
|
+
* Excludes the canonical directory (.agents/skills/) to avoid false positives
|
|
4148
|
+
* from agents whose skillsDir overlaps with the canonical path (e.g. amp).
|
|
4149
|
+
*/ detectSkillAgents(skillName) {
|
|
4150
|
+
const canonicalDir = this.getCanonicalSkillsDir();
|
|
4151
|
+
const installed = [];
|
|
4152
|
+
for (const [type, config] of Object.entries(agents)){
|
|
4153
|
+
const agentBase = this.isGlobal ? config.globalSkillsDir : __WEBPACK_EXTERNAL_MODULE_node_path__.join(this.projectRoot, config.skillsDir);
|
|
4154
|
+
// Skip agents whose skillsDir is the canonical directory itself
|
|
4155
|
+
if (__WEBPACK_EXTERNAL_MODULE_node_path__.resolve(agentBase) === __WEBPACK_EXTERNAL_MODULE_node_path__.resolve(canonicalDir)) continue;
|
|
4156
|
+
const agentSkillDir = __WEBPACK_EXTERNAL_MODULE_node_path__.join(agentBase, skillName);
|
|
4157
|
+
if (exists(agentSkillDir)) installed.push(type);
|
|
4158
|
+
}
|
|
4159
|
+
return installed;
|
|
4160
|
+
}
|
|
4161
|
+
/**
|
|
4149
4162
|
* Get installed skill information from a specific path
|
|
4150
4163
|
*/ getInstalledSkillFromPath(name, skillPath) {
|
|
4151
4164
|
if (!exists(skillPath)) return null;
|
|
@@ -4160,7 +4173,8 @@ class RegistryResolver {
|
|
|
4160
4173
|
path: skillPath,
|
|
4161
4174
|
version,
|
|
4162
4175
|
source: isLinked ? getRealPath(skillPath) : locked?.source || '',
|
|
4163
|
-
isLinked
|
|
4176
|
+
isLinked,
|
|
4177
|
+
agents: this.detectSkillAgents(name)
|
|
4164
4178
|
};
|
|
4165
4179
|
}
|
|
4166
4180
|
/**
|
|
@@ -6565,18 +6579,20 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6565
6579
|
console.log(JSON.stringify(skills, null, 2));
|
|
6566
6580
|
return;
|
|
6567
6581
|
}
|
|
6568
|
-
const
|
|
6569
|
-
logger_logger.log(`Installed Skills (${
|
|
6582
|
+
const scopeLabel = isGlobal ? 'global' : 'project';
|
|
6583
|
+
logger_logger.log(`Installed Skills (${scopeLabel}):`);
|
|
6570
6584
|
logger_logger.newline();
|
|
6571
6585
|
const headers = [
|
|
6572
6586
|
'Name',
|
|
6573
6587
|
'Version',
|
|
6574
|
-
'Source'
|
|
6588
|
+
'Source',
|
|
6589
|
+
'Agents'
|
|
6575
6590
|
];
|
|
6576
6591
|
const rows = skills.map((skill)=>[
|
|
6577
6592
|
skill.name,
|
|
6578
6593
|
skill.isLinked ? `${skill.version} (linked)` : skill.version,
|
|
6579
|
-
skill.source || '-'
|
|
6594
|
+
skill.source || '-',
|
|
6595
|
+
skill.agents?.length ? skill.agents.map((a)=>getAgentConfig(a).displayName).join(', ') : '-'
|
|
6580
6596
|
]);
|
|
6581
6597
|
logger_logger.table(headers, rows);
|
|
6582
6598
|
logger_logger.newline();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/core/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAAoD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAyJlC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMjF;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM3C;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;IAOlE;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,aAAa,CAAC;IAiGzB;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,EAAE,EACzB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAWzC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAK7D;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAiBpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IAgB1F;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAcnD;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/core/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAAoD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAyJlC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMjF;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM3C;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;IAOlE;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,aAAa,CAAC;IAiGzB;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,EAAE,EACzB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAWzC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAK7D;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAiBpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IAgB1F;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAcnD;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAoD9B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;CAiB/B;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { type ParsedSkillWithPath } from './skill-parser.js';
|
|
|
7
7
|
* SkillManager configuration options
|
|
8
8
|
*/
|
|
9
9
|
export interface SkillManagerOptions {
|
|
10
|
-
/** Global mode, install to ~/.
|
|
10
|
+
/** Global mode, install to ~/.agents/skills/ */
|
|
11
11
|
global?: boolean;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
@@ -17,8 +17,8 @@ export interface SkillManagerOptions {
|
|
|
17
17
|
* Provides complete skill installation, update, and uninstall functionality
|
|
18
18
|
*
|
|
19
19
|
* Installation directories:
|
|
20
|
-
* - Project mode (default): .skills/ or
|
|
21
|
-
* - Global mode (-g): ~/.
|
|
20
|
+
* - Project mode (default): .agents/skills/ (canonical) or .skills/ (legacy)
|
|
21
|
+
* - Global mode (-g): ~/.agents/skills/
|
|
22
22
|
*/
|
|
23
23
|
export declare class SkillManager {
|
|
24
24
|
private projectRoot;
|
|
@@ -41,7 +41,7 @@ export declare class SkillManager {
|
|
|
41
41
|
/**
|
|
42
42
|
* Get legacy installation directory (for backward compatibility)
|
|
43
43
|
*
|
|
44
|
-
* - Global mode: ~/.
|
|
44
|
+
* - Global mode: ~/.agents/skills/ (canonical)
|
|
45
45
|
* - Project mode: .skills/ or directory configured in skills.json
|
|
46
46
|
*/
|
|
47
47
|
getInstallDir(): string;
|
|
@@ -119,6 +119,14 @@ export declare class SkillManager {
|
|
|
119
119
|
* Checks both canonical (.agents/skills/) and legacy (.skills/) locations.
|
|
120
120
|
*/
|
|
121
121
|
list(): InstalledSkill[];
|
|
122
|
+
/**
|
|
123
|
+
* Detect which agents have a skill installed (symlink or copy)
|
|
124
|
+
*
|
|
125
|
+
* Scans all known agent directories to check if the skill exists there.
|
|
126
|
+
* Excludes the canonical directory (.agents/skills/) to avoid false positives
|
|
127
|
+
* from agents whose skillsDir overlaps with the canonical path (e.g. amp).
|
|
128
|
+
*/
|
|
129
|
+
private detectSkillAgents;
|
|
122
130
|
/**
|
|
123
131
|
* Get installed skill information from a specific path
|
|
124
132
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAGf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -297,13 +297,6 @@ var external_node_fs_ = __webpack_require__("node:fs");
|
|
|
297
297
|
*/ function getHomeDir() {
|
|
298
298
|
return process.env.HOME || process.env.USERPROFILE || '';
|
|
299
299
|
}
|
|
300
|
-
/**
|
|
301
|
-
* Get global skills installation directory (~/.claude/skills)
|
|
302
|
-
* @deprecated Use getAgentGlobalSkillsDir from agent-registry instead
|
|
303
|
-
*/ function getGlobalSkillsDir() {
|
|
304
|
-
const home = getHomeDir();
|
|
305
|
-
return __WEBPACK_EXTERNAL_MODULE_node_path__.join(home, '.claude', 'skills');
|
|
306
|
-
}
|
|
307
300
|
// ============================================================================
|
|
308
301
|
// Multi-Agent path utilities
|
|
309
302
|
// ============================================================================
|
|
@@ -1523,10 +1516,12 @@ const installer_SKILLS_SUBDIR = 'skills';
|
|
|
1523
1516
|
// Read globs from metadata if available
|
|
1524
1517
|
const globs = parsed.metadata?.globs;
|
|
1525
1518
|
const globsValue = 'string' == typeof globs && globs.length > 0 ? `"${globs}"` : '';
|
|
1519
|
+
// Read alwaysApply from metadata if available (default: false)
|
|
1520
|
+
const alwaysApply = parsed.metadata?.alwaysApply === true;
|
|
1526
1521
|
const bridgeContent = `---
|
|
1527
1522
|
description: "${safeDescription}"
|
|
1528
1523
|
globs: ${globsValue}
|
|
1529
|
-
alwaysApply:
|
|
1524
|
+
alwaysApply: ${alwaysApply}
|
|
1530
1525
|
---
|
|
1531
1526
|
|
|
1532
1527
|
${CURSOR_BRIDGE_MARKER}
|
|
@@ -3734,8 +3729,8 @@ class RegistryResolver {
|
|
|
3734
3729
|
* Provides complete skill installation, update, and uninstall functionality
|
|
3735
3730
|
*
|
|
3736
3731
|
* Installation directories:
|
|
3737
|
-
* - Project mode (default): .skills/ or
|
|
3738
|
-
* - Global mode (-g): ~/.
|
|
3732
|
+
* - Project mode (default): .agents/skills/ (canonical) or .skills/ (legacy)
|
|
3733
|
+
* - Global mode (-g): ~/.agents/skills/
|
|
3739
3734
|
*/ class SkillManager {
|
|
3740
3735
|
projectRoot;
|
|
3741
3736
|
resolver;
|
|
@@ -3769,10 +3764,10 @@ class RegistryResolver {
|
|
|
3769
3764
|
/**
|
|
3770
3765
|
* Get legacy installation directory (for backward compatibility)
|
|
3771
3766
|
*
|
|
3772
|
-
* - Global mode: ~/.
|
|
3767
|
+
* - Global mode: ~/.agents/skills/ (canonical)
|
|
3773
3768
|
* - Project mode: .skills/ or directory configured in skills.json
|
|
3774
3769
|
*/ getInstallDir() {
|
|
3775
|
-
if (this.isGlobal) return
|
|
3770
|
+
if (this.isGlobal) return this.getCanonicalSkillsDir();
|
|
3776
3771
|
return this.config.getInstallDir();
|
|
3777
3772
|
}
|
|
3778
3773
|
/**
|
|
@@ -4124,6 +4119,24 @@ class RegistryResolver {
|
|
|
4124
4119
|
return skills;
|
|
4125
4120
|
}
|
|
4126
4121
|
/**
|
|
4122
|
+
* Detect which agents have a skill installed (symlink or copy)
|
|
4123
|
+
*
|
|
4124
|
+
* Scans all known agent directories to check if the skill exists there.
|
|
4125
|
+
* Excludes the canonical directory (.agents/skills/) to avoid false positives
|
|
4126
|
+
* from agents whose skillsDir overlaps with the canonical path (e.g. amp).
|
|
4127
|
+
*/ detectSkillAgents(skillName) {
|
|
4128
|
+
const canonicalDir = this.getCanonicalSkillsDir();
|
|
4129
|
+
const installed = [];
|
|
4130
|
+
for (const [type, config] of Object.entries(agents)){
|
|
4131
|
+
const agentBase = this.isGlobal ? config.globalSkillsDir : __WEBPACK_EXTERNAL_MODULE_node_path__.join(this.projectRoot, config.skillsDir);
|
|
4132
|
+
// Skip agents whose skillsDir is the canonical directory itself
|
|
4133
|
+
if (__WEBPACK_EXTERNAL_MODULE_node_path__.resolve(agentBase) === __WEBPACK_EXTERNAL_MODULE_node_path__.resolve(canonicalDir)) continue;
|
|
4134
|
+
const agentSkillDir = __WEBPACK_EXTERNAL_MODULE_node_path__.join(agentBase, skillName);
|
|
4135
|
+
if (exists(agentSkillDir)) installed.push(type);
|
|
4136
|
+
}
|
|
4137
|
+
return installed;
|
|
4138
|
+
}
|
|
4139
|
+
/**
|
|
4127
4140
|
* Get installed skill information from a specific path
|
|
4128
4141
|
*/ getInstalledSkillFromPath(name, skillPath) {
|
|
4129
4142
|
if (!exists(skillPath)) return null;
|
|
@@ -4138,7 +4151,8 @@ class RegistryResolver {
|
|
|
4138
4151
|
path: skillPath,
|
|
4139
4152
|
version,
|
|
4140
4153
|
source: isLinked ? getRealPath(skillPath) : locked?.source || '',
|
|
4141
|
-
isLinked
|
|
4154
|
+
isLinked,
|
|
4155
|
+
agents: this.detectSkillAgents(name)
|
|
4142
4156
|
};
|
|
4143
4157
|
}
|
|
4144
4158
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Skills Package Manager Type Definitions
|
|
3
3
|
* Based on: docs/skills-management-design.md
|
|
4
4
|
*/
|
|
5
|
+
import type { AgentConfig, AgentType } from '../core/agent-registry.js';
|
|
5
6
|
/**
|
|
6
7
|
* Supported Agent types
|
|
7
8
|
*/
|
|
8
|
-
export type { AgentConfig, AgentType
|
|
9
|
+
export type { AgentConfig, AgentType };
|
|
9
10
|
/**
|
|
10
11
|
* Installation mode
|
|
11
12
|
*/
|
|
@@ -198,6 +199,8 @@ export interface InstalledSkill {
|
|
|
198
199
|
metadata?: SkillJson;
|
|
199
200
|
/** Whether linked */
|
|
200
201
|
isLinked?: boolean;
|
|
202
|
+
/** Agents that have this skill installed (symlink or copy) */
|
|
203
|
+
agents?: AgentType[];
|
|
201
204
|
}
|
|
202
205
|
/**
|
|
203
206
|
* Installation options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|