reskill 0.1.0 → 0.12.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 +161 -104
- package/README.zh-CN.md +257 -0
- package/dist/cli/commands/index.d.ts +3 -3
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/info.d.ts +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/install.d.ts +12 -4
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/list.d.ts +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/outdated.d.ts +1 -1
- package/dist/cli/commands/outdated.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.d.ts +1 -1
- package/dist/cli/commands/update.d.ts +1 -1
- package/dist/cli/index.js +999 -353
- package/dist/core/agent-registry.d.ts +54 -0
- package/dist/core/agent-registry.d.ts.map +1 -0
- package/dist/core/cache-manager.d.ts +20 -16
- package/dist/core/cache-manager.d.ts.map +1 -1
- package/dist/core/config-loader.d.ts +18 -18
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/git-resolver.d.ts +23 -23
- package/dist/core/git-resolver.d.ts.map +1 -1
- package/dist/core/index.d.ts +8 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/installer.d.ts +96 -0
- package/dist/core/installer.d.ts.map +1 -0
- package/dist/core/lock-manager.d.ts +17 -17
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts +83 -24
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/core/skill-parser.d.ts +116 -0
- package/dist/core/skill-parser.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +951 -323
- package/dist/types/index.d.ts +96 -74
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/fs.d.ts +30 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/package.json +29 -13
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Registry - Multi-Agent configuration definitions
|
|
3
|
+
*
|
|
4
|
+
* Supports global and project-level installation for 17 coding agents
|
|
5
|
+
* Reference: https://github.com/vercel-labs/add-skill
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Supported Agent types
|
|
9
|
+
*/
|
|
10
|
+
export type AgentType = 'amp' | 'antigravity' | 'claude-code' | 'clawdbot' | 'codex' | 'cursor' | 'droid' | 'gemini-cli' | 'github-copilot' | 'goose' | 'kilo' | 'kiro-cli' | 'opencode' | 'roo' | 'trae' | 'windsurf' | 'neovate';
|
|
11
|
+
/**
|
|
12
|
+
* Agent configuration interface
|
|
13
|
+
*/
|
|
14
|
+
export interface AgentConfig {
|
|
15
|
+
/** Agent identifier */
|
|
16
|
+
name: AgentType;
|
|
17
|
+
/** Display name */
|
|
18
|
+
displayName: string;
|
|
19
|
+
/** Project-level skills directory (relative path) */
|
|
20
|
+
skillsDir: string;
|
|
21
|
+
/** Global skills directory (absolute path) */
|
|
22
|
+
globalSkillsDir: string;
|
|
23
|
+
/** Detect if agent is installed */
|
|
24
|
+
detectInstalled: () => Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* All supported Agents configuration
|
|
28
|
+
*/
|
|
29
|
+
export declare const agents: Record<AgentType, AgentConfig>;
|
|
30
|
+
/**
|
|
31
|
+
* Get all Agent type list
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAllAgentTypes(): AgentType[];
|
|
34
|
+
/**
|
|
35
|
+
* Detect installed Agents
|
|
36
|
+
*/
|
|
37
|
+
export declare function detectInstalledAgents(): Promise<AgentType[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Get Agent configuration
|
|
40
|
+
*/
|
|
41
|
+
export declare function getAgentConfig(type: AgentType): AgentConfig;
|
|
42
|
+
/**
|
|
43
|
+
* Validate if Agent type is valid
|
|
44
|
+
*/
|
|
45
|
+
export declare function isValidAgentType(type: string): type is AgentType;
|
|
46
|
+
/**
|
|
47
|
+
* Get Agent's project-level skills directory
|
|
48
|
+
*/
|
|
49
|
+
export declare function getAgentSkillsDir(type: AgentType, options?: {
|
|
50
|
+
global?: boolean;
|
|
51
|
+
cwd?: string;
|
|
52
|
+
}): string;
|
|
53
|
+
export default agents;
|
|
54
|
+
//# sourceMappingURL=agent-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/core/agent-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,aAAa,GACb,aAAa,GACb,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,OAAO,GACP,MAAM,GACN,UAAU,GACV,UAAU,GACV,KAAK,GACL,MAAM,GACN,UAAU,GACV,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAID;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CA4JjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAUlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,MAAM,CAOR;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import type { ParsedSkillRef } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
|
-
* CacheManager -
|
|
3
|
+
* CacheManager - Manage global skill cache
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Cache directory structure:
|
|
6
6
|
* ~/.reskill-cache/
|
|
7
|
-
* ├── github/ #
|
|
7
|
+
* ├── github/ # Shorthand format registry
|
|
8
8
|
* │ └── user/
|
|
9
9
|
* │ └── skill/
|
|
10
10
|
* │ ├── v1.0.0/
|
|
11
11
|
* │ └── v1.1.0/
|
|
12
|
-
* ├── github.com/ # Git URL
|
|
12
|
+
* ├── github.com/ # Git URL format, using host as directory
|
|
13
13
|
* │ └── user/
|
|
14
14
|
* │ └── private-skill/
|
|
15
15
|
* │ └── v1.0.0/
|
|
16
|
-
* └── gitlab.company.com/ #
|
|
16
|
+
* └── gitlab.company.com/ # Private GitLab instance
|
|
17
17
|
* └── team/
|
|
18
18
|
* └── skill/
|
|
19
19
|
* └── v2.0.0/
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* For Git URL format (SSH/HTTPS):
|
|
22
22
|
* - git@github.com:user/repo.git -> github.com/user/repo/version
|
|
23
23
|
* - https://gitlab.company.com/team/skill.git -> gitlab.company.com/team/skill/version
|
|
24
24
|
*/
|
|
@@ -26,50 +26,54 @@ export declare class CacheManager {
|
|
|
26
26
|
private cacheDir;
|
|
27
27
|
constructor(cacheDir?: string);
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Get cache directory
|
|
30
30
|
*/
|
|
31
31
|
getCacheDir(): string;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Get skill path in cache
|
|
34
34
|
*
|
|
35
|
-
*
|
|
35
|
+
* For different reference formats, cache paths are:
|
|
36
36
|
* - github:user/repo@v1.0.0 -> ~/.reskill-cache/github/user/repo/v1.0.0
|
|
37
37
|
* - git@github.com:user/repo.git@v1.0.0 -> ~/.reskill-cache/github.com/user/repo/v1.0.0
|
|
38
38
|
* - https://gitlab.company.com/team/skill.git@v2.0.0 -> ~/.reskill-cache/gitlab.company.com/team/skill/v2.0.0
|
|
39
39
|
*/
|
|
40
40
|
getSkillCachePath(parsed: ParsedSkillRef, version: string): string;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* Get cache path (alias for getSkillCachePath)
|
|
43
|
+
*/
|
|
44
|
+
getCachePath(parsed: ParsedSkillRef, version: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Check if skill is cached
|
|
43
47
|
*/
|
|
44
48
|
isCached(parsed: ParsedSkillRef, version: string): boolean;
|
|
45
49
|
/**
|
|
46
|
-
*
|
|
50
|
+
* Get cached skill
|
|
47
51
|
*/
|
|
48
52
|
get(parsed: ParsedSkillRef, version: string): Promise<{
|
|
49
53
|
path: string;
|
|
50
54
|
commit: string;
|
|
51
55
|
} | null>;
|
|
52
56
|
/**
|
|
53
|
-
*
|
|
57
|
+
* Cache skill
|
|
54
58
|
*/
|
|
55
59
|
cache(repoUrl: string, parsed: ParsedSkillRef, ref: string, version: string): Promise<{
|
|
56
60
|
path: string;
|
|
57
61
|
commit: string;
|
|
58
62
|
}>;
|
|
59
63
|
/**
|
|
60
|
-
*
|
|
64
|
+
* Copy from cache to target directory
|
|
61
65
|
*/
|
|
62
66
|
copyTo(parsed: ParsedSkillRef, version: string, destPath: string): Promise<void>;
|
|
63
67
|
/**
|
|
64
|
-
*
|
|
68
|
+
* Clear cache for specific skill
|
|
65
69
|
*/
|
|
66
70
|
clearSkill(parsed: ParsedSkillRef, version?: string): void;
|
|
67
71
|
/**
|
|
68
|
-
*
|
|
72
|
+
* Clear all cache
|
|
69
73
|
*/
|
|
70
74
|
clearAll(): void;
|
|
71
75
|
/**
|
|
72
|
-
*
|
|
76
|
+
* Get cache statistics
|
|
73
77
|
*/
|
|
74
78
|
getStats(): {
|
|
75
79
|
totalSkills: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAIlE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAK1D;;OAEG;IACG,GAAG,CACP,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAuBnD;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAyC5C;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetF;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAW1D;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;CA0B1D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SkillsDefaults, SkillsJson } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Default registry URLs
|
|
4
4
|
*/
|
|
5
5
|
export declare const DEFAULT_REGISTRIES: Record<string, string>;
|
|
6
6
|
/**
|
|
7
|
-
* ConfigLoader -
|
|
7
|
+
* ConfigLoader - Load and manage skills.json configuration
|
|
8
8
|
*/
|
|
9
9
|
export declare class ConfigLoader {
|
|
10
10
|
private projectRoot;
|
|
@@ -12,63 +12,63 @@ export declare class ConfigLoader {
|
|
|
12
12
|
private config;
|
|
13
13
|
constructor(projectRoot?: string);
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Get project root directory
|
|
16
16
|
*/
|
|
17
17
|
getProjectRoot(): string;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Get configuration file path
|
|
20
20
|
*/
|
|
21
21
|
getConfigPath(): string;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Check if configuration file exists
|
|
24
24
|
*/
|
|
25
25
|
exists(): boolean;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Load configuration
|
|
28
28
|
*/
|
|
29
29
|
load(): SkillsJson;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* Reload configuration (ignore cache)
|
|
32
32
|
*/
|
|
33
33
|
reload(): SkillsJson;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* Save configuration
|
|
36
36
|
*/
|
|
37
37
|
save(config?: SkillsJson): void;
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Create default configuration
|
|
40
40
|
*/
|
|
41
41
|
create(options?: Partial<SkillsJson>): SkillsJson;
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Get default configuration
|
|
44
44
|
*/
|
|
45
45
|
getDefaults(): Required<SkillsDefaults>;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Get registry URL
|
|
48
48
|
*/
|
|
49
49
|
getRegistryUrl(registryName: string): string;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* Get installation directory
|
|
52
52
|
*/
|
|
53
53
|
getInstallDir(): string;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* Add skill to configuration
|
|
56
56
|
*/
|
|
57
57
|
addSkill(name: string, ref: string): void;
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Remove skill from configuration
|
|
60
60
|
*/
|
|
61
61
|
removeSkill(name: string): boolean;
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
63
|
+
* Get all skills
|
|
64
64
|
*/
|
|
65
65
|
getSkills(): Record<string, string>;
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* Check if skill exists
|
|
68
68
|
*/
|
|
69
69
|
hasSkill(name: string): boolean;
|
|
70
70
|
/**
|
|
71
|
-
*
|
|
71
|
+
* Get skill reference
|
|
72
72
|
*/
|
|
73
73
|
getSkillRef(name: string): string | undefined;
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAcpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,IAAI,IAAI,UAAU;IAiBlB;;OAEG;IACH,MAAM,IAAI,UAAU;IAKpB;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IAS/B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU;IAejD;;OAEG;IACH,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC;IAUvC;;OAEG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiB5C;;OAEG;IACH,aAAa,IAAI,MAAM;IAKvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAUzC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAYlC;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK/B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAI9C;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import type { ParsedSkillRef, ParsedVersion } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
|
-
* GitResolver -
|
|
3
|
+
* GitResolver - Parse skill references and versions
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Reference formats:
|
|
6
|
+
* Full: <registry>:<owner>/<repo>@<version>
|
|
7
|
+
* Short: <owner>/<repo>@<version>
|
|
8
8
|
* Git URL: git@github.com:user/repo.git[@version]
|
|
9
9
|
* HTTPS: https://github.com/user/repo.git[@version]
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* - @v1.0.0
|
|
13
|
-
* - @latest
|
|
14
|
-
* - @^2.0.0
|
|
15
|
-
* - @branch:dev
|
|
16
|
-
* - @commit:abc
|
|
17
|
-
* - (
|
|
11
|
+
* Version formats:
|
|
12
|
+
* - @v1.0.0 Exact version
|
|
13
|
+
* - @latest Latest tag
|
|
14
|
+
* - @^2.0.0 Semver range
|
|
15
|
+
* - @branch:dev Branch
|
|
16
|
+
* - @commit:abc Commit hash
|
|
17
|
+
* - (none) Default branch
|
|
18
18
|
*/
|
|
19
19
|
export declare class GitResolver {
|
|
20
20
|
private defaultRegistry;
|
|
21
21
|
constructor(defaultRegistry?: string);
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Parse skill reference string
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
* -
|
|
27
|
-
* -
|
|
25
|
+
* Supported formats:
|
|
26
|
+
* - Short: owner/repo[@version]
|
|
27
|
+
* - Full: registry:owner/repo[@version]
|
|
28
28
|
* - SSH URL: git@github.com:user/repo.git[@version]
|
|
29
29
|
* - HTTPS URL: https://github.com/user/repo.git[@version]
|
|
30
30
|
* - Monorepo: git@github.com:org/repo.git/subpath[@version]
|
|
31
31
|
*/
|
|
32
32
|
parseRef(ref: string): ParsedSkillRef;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* Parse Git URL format reference
|
|
35
35
|
*
|
|
36
|
-
*
|
|
36
|
+
* Supported formats:
|
|
37
37
|
* - git@github.com:user/repo.git
|
|
38
38
|
* - git@github.com:user/repo.git@v1.0.0
|
|
39
39
|
* - git@github.com:user/repo.git/subpath@v1.0.0
|
|
@@ -42,25 +42,25 @@ export declare class GitResolver {
|
|
|
42
42
|
*/
|
|
43
43
|
private parseGitUrlRef;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Parse version specification
|
|
46
46
|
*/
|
|
47
47
|
parseVersion(versionSpec?: string): ParsedVersion;
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* Build repository URL
|
|
50
50
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
51
|
+
* If parsed contains gitUrl, return it directly;
|
|
52
|
+
* Otherwise build HTTPS URL from registry and owner/repo
|
|
53
53
|
*/
|
|
54
54
|
buildRepoUrl(parsed: ParsedSkillRef): string;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Resolve version and get specific ref (tag name or commit)
|
|
57
57
|
*/
|
|
58
58
|
resolveVersion(repoUrl: string, versionSpec: ParsedVersion): Promise<{
|
|
59
59
|
ref: string;
|
|
60
60
|
commit?: string;
|
|
61
61
|
}>;
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
63
|
+
* Full resolution: from reference string to clone-ready information
|
|
64
64
|
*/
|
|
65
65
|
resolve(ref: string): Promise<{
|
|
66
66
|
parsed: ParsedSkillRef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-resolver.d.ts","sourceRoot":"","sources":["../../src/core/git-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-resolver.d.ts","sourceRoot":"","sources":["../../src/core/git-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUvE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAS;gBAEpB,eAAe,SAAW;IAItC;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAmDrC;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IA0DtB;;OAEG;IACH,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IA+BjD;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAQ5C;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,aAAa,GACzB,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkD5C;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAClC,MAAM,EAAE,cAAc,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CAaH;AAED,eAAe,WAAW,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export type { AgentConfig, AgentType } from './agent-registry.js';
|
|
2
|
+
export { agents, detectInstalledAgents, getAgentConfig, getAgentSkillsDir, getAllAgentTypes, isValidAgentType, } from './agent-registry.js';
|
|
2
3
|
export { CacheManager } from './cache-manager.js';
|
|
3
4
|
export { ConfigLoader, DEFAULT_REGISTRIES } from './config-loader.js';
|
|
5
|
+
export { GitResolver } from './git-resolver.js';
|
|
6
|
+
export type { InstallerOptions, InstallMode, InstallResult } from './installer.js';
|
|
7
|
+
export { Installer } from './installer.js';
|
|
4
8
|
export { LockManager } from './lock-manager.js';
|
|
5
|
-
export { SkillManager } from './skill-manager.js';
|
|
6
9
|
export type { SkillManagerOptions } from './skill-manager.js';
|
|
10
|
+
export { SkillManager } from './skill-manager.js';
|
|
11
|
+
export type { ParsedSkill, SkillMdFrontmatter } from './skill-parser.js';
|
|
12
|
+
export { generateSkillMd, hasValidSkillMd, parseSkillFromDir, parseSkillMd, parseSkillMdFile, SkillValidationError, validateSkillDescription, validateSkillName, } from './skill-parser.js';
|
|
7
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installer - Multi-Agent installer
|
|
3
|
+
*
|
|
4
|
+
* Supports two installation modes:
|
|
5
|
+
* - symlink: Canonical location (.agents/skills/) + symlinks to each agent directory
|
|
6
|
+
* - copy: Direct copy to each agent directory
|
|
7
|
+
*
|
|
8
|
+
* Reference: https://github.com/vercel-labs/add-skill/blob/main/src/installer.ts
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentType } from './agent-registry.js';
|
|
11
|
+
/**
|
|
12
|
+
* Installation mode
|
|
13
|
+
*/
|
|
14
|
+
export type InstallMode = 'symlink' | 'copy';
|
|
15
|
+
/**
|
|
16
|
+
* Installation result
|
|
17
|
+
*/
|
|
18
|
+
export interface InstallResult {
|
|
19
|
+
/** Whether successful */
|
|
20
|
+
success: boolean;
|
|
21
|
+
/** Installation path */
|
|
22
|
+
path: string;
|
|
23
|
+
/** Canonical path (symlink mode) */
|
|
24
|
+
canonicalPath?: string;
|
|
25
|
+
/** Installation mode */
|
|
26
|
+
mode: InstallMode;
|
|
27
|
+
/** Whether symlink failed (fallback to copy) */
|
|
28
|
+
symlinkFailed?: boolean;
|
|
29
|
+
/** Error message */
|
|
30
|
+
error?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Installation options
|
|
34
|
+
*/
|
|
35
|
+
export interface InstallerOptions {
|
|
36
|
+
/** Global installation */
|
|
37
|
+
global?: boolean;
|
|
38
|
+
/** Current working directory */
|
|
39
|
+
cwd?: string;
|
|
40
|
+
/** Installation mode */
|
|
41
|
+
mode?: InstallMode;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Installer class - Multi-Agent installer
|
|
45
|
+
*/
|
|
46
|
+
export declare class Installer {
|
|
47
|
+
private cwd;
|
|
48
|
+
private isGlobal;
|
|
49
|
+
constructor(options?: {
|
|
50
|
+
cwd?: string;
|
|
51
|
+
global?: boolean;
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Get canonical installation path
|
|
55
|
+
*/
|
|
56
|
+
getCanonicalPath(skillName: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get agent's skill installation path
|
|
59
|
+
*/
|
|
60
|
+
getAgentSkillPath(skillName: string, agentType: AgentType): string;
|
|
61
|
+
/**
|
|
62
|
+
* Install skill to specified agent
|
|
63
|
+
*
|
|
64
|
+
* @param sourcePath - Skill source directory path
|
|
65
|
+
* @param skillName - Skill name
|
|
66
|
+
* @param agentType - Target agent type
|
|
67
|
+
* @param options - Installation options
|
|
68
|
+
*/
|
|
69
|
+
installForAgent(sourcePath: string, skillName: string, agentType: AgentType, options?: {
|
|
70
|
+
mode?: InstallMode;
|
|
71
|
+
}): Promise<InstallResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Install skill to multiple agents
|
|
74
|
+
*/
|
|
75
|
+
installToAgents(sourcePath: string, skillName: string, targetAgents: AgentType[], options?: {
|
|
76
|
+
mode?: InstallMode;
|
|
77
|
+
}): Promise<Map<AgentType, InstallResult>>;
|
|
78
|
+
/**
|
|
79
|
+
* Check if skill is installed to specified agent
|
|
80
|
+
*/
|
|
81
|
+
isInstalled(skillName: string, agentType: AgentType): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Uninstall skill from specified agent
|
|
84
|
+
*/
|
|
85
|
+
uninstallFromAgent(skillName: string, agentType: AgentType): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Uninstall skill from multiple agents
|
|
88
|
+
*/
|
|
89
|
+
uninstallFromAgents(skillName: string, targetAgents: AgentType[]): Map<AgentType, boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Get all skills installed to specified agent
|
|
92
|
+
*/
|
|
93
|
+
listInstalledSkills(agentType: AgentType): string[];
|
|
94
|
+
}
|
|
95
|
+
export default Installer;
|
|
96
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +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;AAGrD;;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;CACpB;AA8ID;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO;IAK5D;;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;IAwFzB;;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,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAWpE;;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;CAapD;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LockedSkill, SkillsLock } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
|
-
* LockManager -
|
|
3
|
+
* LockManager - Manage skills.lock file
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Used for locking exact versions to ensure team consistency
|
|
6
6
|
*/
|
|
7
7
|
export declare class LockManager {
|
|
8
8
|
private projectRoot;
|
|
@@ -10,39 +10,39 @@ export declare class LockManager {
|
|
|
10
10
|
private lockData;
|
|
11
11
|
constructor(projectRoot?: string);
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Get lock file path
|
|
14
14
|
*/
|
|
15
15
|
getLockPath(): string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Check if lock file exists
|
|
18
18
|
*/
|
|
19
19
|
exists(): boolean;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Load lock file
|
|
22
22
|
*/
|
|
23
23
|
load(): SkillsLock;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Reload lock file
|
|
26
26
|
*/
|
|
27
27
|
reload(): SkillsLock;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Save lock file
|
|
30
30
|
*/
|
|
31
31
|
save(lockToSave?: SkillsLock): void;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Get locked skill
|
|
34
34
|
*/
|
|
35
35
|
get(name: string): LockedSkill | undefined;
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* Set locked skill
|
|
38
38
|
*/
|
|
39
39
|
set(name: string, skill: LockedSkill): void;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Remove locked skill
|
|
42
42
|
*/
|
|
43
43
|
remove(name: string): boolean;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Lock a skill
|
|
46
46
|
*/
|
|
47
47
|
lockSkill(name: string, options: {
|
|
48
48
|
source: string;
|
|
@@ -51,23 +51,23 @@ export declare class LockManager {
|
|
|
51
51
|
commit: string;
|
|
52
52
|
}): LockedSkill;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* Get all locked skills
|
|
55
55
|
*/
|
|
56
56
|
getAll(): Record<string, LockedSkill>;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Check if skill is locked
|
|
59
59
|
*/
|
|
60
60
|
has(name: string): boolean;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Check if locked version matches current version
|
|
63
63
|
*/
|
|
64
64
|
isVersionMatch(name: string, version: string): boolean;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* Clear all locks
|
|
67
67
|
*/
|
|
68
68
|
clear(): void;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Delete lock file
|
|
71
71
|
*/
|
|
72
72
|
delete(): void;
|
|
73
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQjE;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,IAAI,IAAI,UAAU;IAsBlB;;OAEG;IACH,MAAM,IAAI,UAAU;IAKpB;;OAEG;IACH,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IASnC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK1C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAM3C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU7B;;OAEG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,GACA,WAAW;IAad;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAKrC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK1B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAQtD;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,MAAM,IAAI,IAAI;CAOf;AAED,eAAe,WAAW,CAAC"}
|