reskill 0.1.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/LICENSE +21 -0
- package/README.md +199 -0
- package/dist/cli/commands/index.d.ts +9 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/info.d.ts +7 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/install.d.ts +11 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/link.d.ts +5 -0
- package/dist/cli/commands/link.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +7 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/outdated.d.ts +7 -0
- package/dist/cli/commands/outdated.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +7 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +7 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1293 -0
- package/dist/core/cache-manager.d.ts +80 -0
- package/dist/core/cache-manager.d.ts.map +1 -0
- package/dist/core/config-loader.d.ts +76 -0
- package/dist/core/config-loader.d.ts.map +1 -0
- package/dist/core/git-resolver.d.ts +73 -0
- package/dist/core/git-resolver.d.ts.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/lock-manager.d.ts +75 -0
- package/dist/core/lock-manager.d.ts.map +1 -0
- package/dist/core/skill-manager.d.ts +98 -0
- package/dist/core/skill-manager.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1033 -0
- package/dist/types/index.d.ts +213 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/fs.d.ts +86 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/git.d.ts +112 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +43 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ParsedSkillRef } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* CacheManager - 管理全局 skill 缓存
|
|
4
|
+
*
|
|
5
|
+
* 缓存目录结构:
|
|
6
|
+
* ~/.reskill-cache/
|
|
7
|
+
* ├── github/ # 简写格式的 registry
|
|
8
|
+
* │ └── user/
|
|
9
|
+
* │ └── skill/
|
|
10
|
+
* │ ├── v1.0.0/
|
|
11
|
+
* │ └── v1.1.0/
|
|
12
|
+
* ├── github.com/ # Git URL 格式,使用 host 作为目录
|
|
13
|
+
* │ └── user/
|
|
14
|
+
* │ └── private-skill/
|
|
15
|
+
* │ └── v1.0.0/
|
|
16
|
+
* └── gitlab.company.com/ # 私有 GitLab 实例
|
|
17
|
+
* └── team/
|
|
18
|
+
* └── skill/
|
|
19
|
+
* └── v2.0.0/
|
|
20
|
+
*
|
|
21
|
+
* 对于 Git URL 格式 (SSH/HTTPS):
|
|
22
|
+
* - git@github.com:user/repo.git -> github.com/user/repo/version
|
|
23
|
+
* - https://gitlab.company.com/team/skill.git -> gitlab.company.com/team/skill/version
|
|
24
|
+
*/
|
|
25
|
+
export declare class CacheManager {
|
|
26
|
+
private cacheDir;
|
|
27
|
+
constructor(cacheDir?: string);
|
|
28
|
+
/**
|
|
29
|
+
* 获取缓存目录
|
|
30
|
+
*/
|
|
31
|
+
getCacheDir(): string;
|
|
32
|
+
/**
|
|
33
|
+
* 获取 skill 在缓存中的路径
|
|
34
|
+
*
|
|
35
|
+
* 对于不同的引用格式,缓存路径如下:
|
|
36
|
+
* - github:user/repo@v1.0.0 -> ~/.reskill-cache/github/user/repo/v1.0.0
|
|
37
|
+
* - git@github.com:user/repo.git@v1.0.0 -> ~/.reskill-cache/github.com/user/repo/v1.0.0
|
|
38
|
+
* - https://gitlab.company.com/team/skill.git@v2.0.0 -> ~/.reskill-cache/gitlab.company.com/team/skill/v2.0.0
|
|
39
|
+
*/
|
|
40
|
+
getSkillCachePath(parsed: ParsedSkillRef, version: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* 检查 skill 是否已缓存
|
|
43
|
+
*/
|
|
44
|
+
isCached(parsed: ParsedSkillRef, version: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 获取缓存的 skill
|
|
47
|
+
*/
|
|
48
|
+
get(parsed: ParsedSkillRef, version: string): Promise<{
|
|
49
|
+
path: string;
|
|
50
|
+
commit: string;
|
|
51
|
+
} | null>;
|
|
52
|
+
/**
|
|
53
|
+
* 缓存 skill
|
|
54
|
+
*/
|
|
55
|
+
cache(repoUrl: string, parsed: ParsedSkillRef, ref: string, version: string): Promise<{
|
|
56
|
+
path: string;
|
|
57
|
+
commit: string;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* 从缓存复制到目标目录
|
|
61
|
+
*/
|
|
62
|
+
copyTo(parsed: ParsedSkillRef, version: string, destPath: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* 清理特定 skill 的缓存
|
|
65
|
+
*/
|
|
66
|
+
clearSkill(parsed: ParsedSkillRef, version?: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* 清理所有缓存
|
|
69
|
+
*/
|
|
70
|
+
clearAll(): void;
|
|
71
|
+
/**
|
|
72
|
+
* 获取缓存统计
|
|
73
|
+
*/
|
|
74
|
+
getStats(): {
|
|
75
|
+
totalSkills: number;
|
|
76
|
+
registries: string[];
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export default CacheManager;
|
|
80
|
+
//# sourceMappingURL=cache-manager.d.ts.map
|
|
@@ -0,0 +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;IAUlE;;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,CACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB1D;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;CA4B1D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { SkillsJson, SkillsDefaults } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* 默认 registry URLs
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_REGISTRIES: Record<string, string>;
|
|
6
|
+
/**
|
|
7
|
+
* ConfigLoader - 加载和管理 skills.json 配置
|
|
8
|
+
*/
|
|
9
|
+
export declare class ConfigLoader {
|
|
10
|
+
private projectRoot;
|
|
11
|
+
private configPath;
|
|
12
|
+
private config;
|
|
13
|
+
constructor(projectRoot?: string);
|
|
14
|
+
/**
|
|
15
|
+
* 获取项目根目录
|
|
16
|
+
*/
|
|
17
|
+
getProjectRoot(): string;
|
|
18
|
+
/**
|
|
19
|
+
* 获取配置文件路径
|
|
20
|
+
*/
|
|
21
|
+
getConfigPath(): string;
|
|
22
|
+
/**
|
|
23
|
+
* 检查配置文件是否存在
|
|
24
|
+
*/
|
|
25
|
+
exists(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 加载配置
|
|
28
|
+
*/
|
|
29
|
+
load(): SkillsJson;
|
|
30
|
+
/**
|
|
31
|
+
* 重新加载配置(忽略缓存)
|
|
32
|
+
*/
|
|
33
|
+
reload(): SkillsJson;
|
|
34
|
+
/**
|
|
35
|
+
* 保存配置
|
|
36
|
+
*/
|
|
37
|
+
save(config?: SkillsJson): void;
|
|
38
|
+
/**
|
|
39
|
+
* 创建默认配置
|
|
40
|
+
*/
|
|
41
|
+
create(options?: Partial<SkillsJson>): SkillsJson;
|
|
42
|
+
/**
|
|
43
|
+
* 获取默认配置
|
|
44
|
+
*/
|
|
45
|
+
getDefaults(): Required<SkillsDefaults>;
|
|
46
|
+
/**
|
|
47
|
+
* 获取 registry URL
|
|
48
|
+
*/
|
|
49
|
+
getRegistryUrl(registryName: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* 获取安装目录
|
|
52
|
+
*/
|
|
53
|
+
getInstallDir(): string;
|
|
54
|
+
/**
|
|
55
|
+
* 添加 skill 到配置
|
|
56
|
+
*/
|
|
57
|
+
addSkill(name: string, ref: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* 移除 skill 从配置
|
|
60
|
+
*/
|
|
61
|
+
removeSkill(name: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* 获取所有 skills
|
|
64
|
+
*/
|
|
65
|
+
getSkills(): Record<string, string>;
|
|
66
|
+
/**
|
|
67
|
+
* 检查 skill 是否存在
|
|
68
|
+
*/
|
|
69
|
+
hasSkill(name: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* 获取 skill 引用
|
|
72
|
+
*/
|
|
73
|
+
getSkillRef(name: string): string | undefined;
|
|
74
|
+
}
|
|
75
|
+
export default ConfigLoader;
|
|
76
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,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;IAmBlB;;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;IAQvC;;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;IAQzC;;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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ParsedSkillRef, ParsedVersion } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* GitResolver - 解析 skill 引用和版本
|
|
4
|
+
*
|
|
5
|
+
* 引用格式:
|
|
6
|
+
* 完整: <registry>:<owner>/<repo>@<version>
|
|
7
|
+
* 简写: <owner>/<repo>@<version>
|
|
8
|
+
* Git URL: git@github.com:user/repo.git[@version]
|
|
9
|
+
* HTTPS: https://github.com/user/repo.git[@version]
|
|
10
|
+
*
|
|
11
|
+
* 版本格式:
|
|
12
|
+
* - @v1.0.0 精确版本
|
|
13
|
+
* - @latest 最新 tag
|
|
14
|
+
* - @^2.0.0 semver 范围
|
|
15
|
+
* - @branch:dev 分支
|
|
16
|
+
* - @commit:abc commit hash
|
|
17
|
+
* - (无) 默认分支
|
|
18
|
+
*/
|
|
19
|
+
export declare class GitResolver {
|
|
20
|
+
private defaultRegistry;
|
|
21
|
+
constructor(defaultRegistry?: string);
|
|
22
|
+
/**
|
|
23
|
+
* 解析 skill 引用字符串
|
|
24
|
+
*
|
|
25
|
+
* 支持的格式:
|
|
26
|
+
* - 简写: owner/repo[@version]
|
|
27
|
+
* - 完整: registry:owner/repo[@version]
|
|
28
|
+
* - SSH URL: git@github.com:user/repo.git[@version]
|
|
29
|
+
* - HTTPS URL: https://github.com/user/repo.git[@version]
|
|
30
|
+
* - Monorepo: git@github.com:org/repo.git/subpath[@version]
|
|
31
|
+
*/
|
|
32
|
+
parseRef(ref: string): ParsedSkillRef;
|
|
33
|
+
/**
|
|
34
|
+
* 解析 Git URL 格式的引用
|
|
35
|
+
*
|
|
36
|
+
* 支持的格式:
|
|
37
|
+
* - git@github.com:user/repo.git
|
|
38
|
+
* - git@github.com:user/repo.git@v1.0.0
|
|
39
|
+
* - git@github.com:user/repo.git/subpath@v1.0.0
|
|
40
|
+
* - https://github.com/user/repo.git
|
|
41
|
+
* - https://github.com/user/repo.git@v1.0.0
|
|
42
|
+
*/
|
|
43
|
+
private parseGitUrlRef;
|
|
44
|
+
/**
|
|
45
|
+
* 解析版本规范
|
|
46
|
+
*/
|
|
47
|
+
parseVersion(versionSpec?: string): ParsedVersion;
|
|
48
|
+
/**
|
|
49
|
+
* 构建仓库 URL
|
|
50
|
+
*
|
|
51
|
+
* 如果 parsed 中包含 gitUrl,则直接返回;
|
|
52
|
+
* 否则根据 registry 和 owner/repo 构建 HTTPS URL
|
|
53
|
+
*/
|
|
54
|
+
buildRepoUrl(parsed: ParsedSkillRef): string;
|
|
55
|
+
/**
|
|
56
|
+
* 解析版本并获取具体的 ref(tag 名或 commit)
|
|
57
|
+
*/
|
|
58
|
+
resolveVersion(repoUrl: string, versionSpec: ParsedVersion): Promise<{
|
|
59
|
+
ref: string;
|
|
60
|
+
commit?: string;
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* 完整解析:从引用字符串到可用于克隆的信息
|
|
64
|
+
*/
|
|
65
|
+
resolve(ref: string): Promise<{
|
|
66
|
+
parsed: ParsedSkillRef;
|
|
67
|
+
repoUrl: string;
|
|
68
|
+
ref: string;
|
|
69
|
+
commit?: string;
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
export default GitResolver;
|
|
73
|
+
//# sourceMappingURL=git-resolver.d.ts.map
|
|
@@ -0,0 +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;AAGvE;;;;;;;;;;;;;;;;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;IAuDtB;;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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { GitResolver } from './git-resolver.js';
|
|
2
|
+
export { CacheManager } from './cache-manager.js';
|
|
3
|
+
export { ConfigLoader, DEFAULT_REGISTRIES } from './config-loader.js';
|
|
4
|
+
export { LockManager } from './lock-manager.js';
|
|
5
|
+
export { SkillManager } from './skill-manager.js';
|
|
6
|
+
export type { SkillManagerOptions } from './skill-manager.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,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,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { SkillsLock, LockedSkill } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* LockManager - 管理 skills.lock 文件
|
|
4
|
+
*
|
|
5
|
+
* 用于锁定精确版本,确保团队一致性
|
|
6
|
+
*/
|
|
7
|
+
export declare class LockManager {
|
|
8
|
+
private projectRoot;
|
|
9
|
+
private lockPath;
|
|
10
|
+
private lockData;
|
|
11
|
+
constructor(projectRoot?: string);
|
|
12
|
+
/**
|
|
13
|
+
* 获取 lock 文件路径
|
|
14
|
+
*/
|
|
15
|
+
getLockPath(): string;
|
|
16
|
+
/**
|
|
17
|
+
* 检查 lock 文件是否存在
|
|
18
|
+
*/
|
|
19
|
+
exists(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 加载 lock 文件
|
|
22
|
+
*/
|
|
23
|
+
load(): SkillsLock;
|
|
24
|
+
/**
|
|
25
|
+
* 重新加载 lock 文件
|
|
26
|
+
*/
|
|
27
|
+
reload(): SkillsLock;
|
|
28
|
+
/**
|
|
29
|
+
* 保存 lock 文件
|
|
30
|
+
*/
|
|
31
|
+
save(lockToSave?: SkillsLock): void;
|
|
32
|
+
/**
|
|
33
|
+
* 获取锁定的 skill
|
|
34
|
+
*/
|
|
35
|
+
get(name: string): LockedSkill | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* 设置锁定的 skill
|
|
38
|
+
*/
|
|
39
|
+
set(name: string, skill: LockedSkill): void;
|
|
40
|
+
/**
|
|
41
|
+
* 移除锁定的 skill
|
|
42
|
+
*/
|
|
43
|
+
remove(name: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* 锁定 skill
|
|
46
|
+
*/
|
|
47
|
+
lockSkill(name: string, options: {
|
|
48
|
+
source: string;
|
|
49
|
+
version: string;
|
|
50
|
+
resolved: string;
|
|
51
|
+
commit: string;
|
|
52
|
+
}): LockedSkill;
|
|
53
|
+
/**
|
|
54
|
+
* 获取所有锁定的 skills
|
|
55
|
+
*/
|
|
56
|
+
getAll(): Record<string, LockedSkill>;
|
|
57
|
+
/**
|
|
58
|
+
* 检查 skill 是否已锁定
|
|
59
|
+
*/
|
|
60
|
+
has(name: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* 检查锁定的版本是否与当前一致
|
|
63
|
+
*/
|
|
64
|
+
isVersionMatch(name: string, version: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* 清空所有锁定
|
|
67
|
+
*/
|
|
68
|
+
clear(): void;
|
|
69
|
+
/**
|
|
70
|
+
* 删除 lock 文件
|
|
71
|
+
*/
|
|
72
|
+
delete(): void;
|
|
73
|
+
}
|
|
74
|
+
export default LockManager;
|
|
75
|
+
//# sourceMappingURL=lock-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { InstalledSkill, InstallOptions } from '../types/index.js';
|
|
2
|
+
import { LockManager } from './lock-manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* SkillManager 配置选项
|
|
5
|
+
*/
|
|
6
|
+
export interface SkillManagerOptions {
|
|
7
|
+
/** 全局模式,安装到 ~/.claude/skills */
|
|
8
|
+
global?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* SkillManager - 核心 Skill 管理类
|
|
12
|
+
*
|
|
13
|
+
* 整合 GitResolver, CacheManager, ConfigLoader, LockManager
|
|
14
|
+
* 提供完整的 skill 安装、更新、卸载功能
|
|
15
|
+
*
|
|
16
|
+
* 安装目录:
|
|
17
|
+
* - 项目模式 (默认): .skills/ 或 skills.json 中配置的目录
|
|
18
|
+
* - 全局模式 (-g): ~/.claude/skills/
|
|
19
|
+
*/
|
|
20
|
+
export declare class SkillManager {
|
|
21
|
+
private projectRoot;
|
|
22
|
+
private resolver;
|
|
23
|
+
private cache;
|
|
24
|
+
private config;
|
|
25
|
+
private lockManager;
|
|
26
|
+
private isGlobal;
|
|
27
|
+
constructor(projectRoot?: string, options?: SkillManagerOptions);
|
|
28
|
+
/**
|
|
29
|
+
* 是否为全局模式
|
|
30
|
+
*/
|
|
31
|
+
isGlobalMode(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* 获取项目根目录
|
|
34
|
+
*/
|
|
35
|
+
getProjectRoot(): string;
|
|
36
|
+
/**
|
|
37
|
+
* 获取安装目录
|
|
38
|
+
*
|
|
39
|
+
* - 全局模式: ~/.claude/skills/
|
|
40
|
+
* - 项目模式: .skills/ 或 skills.json 中配置的目录
|
|
41
|
+
*/
|
|
42
|
+
getInstallDir(): string;
|
|
43
|
+
/**
|
|
44
|
+
* 获取 skill 安装路径
|
|
45
|
+
*/
|
|
46
|
+
getSkillPath(name: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* 安装 skill
|
|
49
|
+
*/
|
|
50
|
+
install(ref: string, options?: InstallOptions): Promise<InstalledSkill>;
|
|
51
|
+
/**
|
|
52
|
+
* 安装所有 skills.json 中的 skills
|
|
53
|
+
*/
|
|
54
|
+
installAll(options?: InstallOptions): Promise<InstalledSkill[]>;
|
|
55
|
+
/**
|
|
56
|
+
* 卸载 skill
|
|
57
|
+
*/
|
|
58
|
+
uninstall(name: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 更新 skill
|
|
61
|
+
*/
|
|
62
|
+
update(name?: string): Promise<InstalledSkill[]>;
|
|
63
|
+
/**
|
|
64
|
+
* 链接本地 skill
|
|
65
|
+
*/
|
|
66
|
+
link(localPath: string, name?: string): InstalledSkill;
|
|
67
|
+
/**
|
|
68
|
+
* 取消链接
|
|
69
|
+
*/
|
|
70
|
+
unlink(name: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* 列出已安装的 skills
|
|
73
|
+
*/
|
|
74
|
+
list(): InstalledSkill[];
|
|
75
|
+
/**
|
|
76
|
+
* 获取已安装的 skill 信息
|
|
77
|
+
*/
|
|
78
|
+
getInstalledSkill(name: string): InstalledSkill | null;
|
|
79
|
+
/**
|
|
80
|
+
* 获取 skill 详情
|
|
81
|
+
*/
|
|
82
|
+
getInfo(name: string): {
|
|
83
|
+
installed: InstalledSkill | null;
|
|
84
|
+
locked: ReturnType<LockManager['get']>;
|
|
85
|
+
config: string | undefined;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* 检查过期的 skills
|
|
89
|
+
*/
|
|
90
|
+
checkOutdated(): Promise<Array<{
|
|
91
|
+
name: string;
|
|
92
|
+
current: string;
|
|
93
|
+
latest: string;
|
|
94
|
+
updateAvailable: boolean;
|
|
95
|
+
}>>;
|
|
96
|
+
}
|
|
97
|
+
export default SkillManager;
|
|
98
|
+
//# sourceMappingURL=skill-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAa,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAehD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAU;gBAEd,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAY/D;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;;OAKG;IACH,aAAa,IAAI,MAAM;IAOvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIlC;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAqEjF;;OAEG;IACG,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBzE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA2BhC;;OAEG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA6BtD;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc;IAoCtD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkB7B;;OAEG;IACH,IAAI,IAAI,cAAc,EAAE;IA0BxB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA+BtD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QACrB,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B;IAQD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC,CAAC;CAgDJ;AAED,eAAe,YAAY,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reskill - AI Skills Package Manager
|
|
3
|
+
*
|
|
4
|
+
* Git-based skills management for AI agents
|
|
5
|
+
*/
|
|
6
|
+
export { GitResolver, CacheManager, ConfigLoader, LockManager, SkillManager, DEFAULT_REGISTRIES, } from './core/index.js';
|
|
7
|
+
export type { SkillsJson, SkillsLock, SkillJson, LockedSkill, ParsedSkillRef, ParsedVersion, VersionType, InstalledSkill, InstallOptions, UpdateOptions, ListOptions, } from './types/index.js';
|
|
8
|
+
export { logger } from './utils/index.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
|