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.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +199 -0
  3. package/dist/cli/commands/index.d.ts +9 -0
  4. package/dist/cli/commands/index.d.ts.map +1 -0
  5. package/dist/cli/commands/info.d.ts +7 -0
  6. package/dist/cli/commands/info.d.ts.map +1 -0
  7. package/dist/cli/commands/init.d.ts +7 -0
  8. package/dist/cli/commands/init.d.ts.map +1 -0
  9. package/dist/cli/commands/install.d.ts +11 -0
  10. package/dist/cli/commands/install.d.ts.map +1 -0
  11. package/dist/cli/commands/link.d.ts +5 -0
  12. package/dist/cli/commands/link.d.ts.map +1 -0
  13. package/dist/cli/commands/list.d.ts +7 -0
  14. package/dist/cli/commands/list.d.ts.map +1 -0
  15. package/dist/cli/commands/outdated.d.ts +7 -0
  16. package/dist/cli/commands/outdated.d.ts.map +1 -0
  17. package/dist/cli/commands/uninstall.d.ts +7 -0
  18. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  19. package/dist/cli/commands/update.d.ts +7 -0
  20. package/dist/cli/commands/update.d.ts.map +1 -0
  21. package/dist/cli/index.d.ts +3 -0
  22. package/dist/cli/index.d.ts.map +1 -0
  23. package/dist/cli/index.js +1293 -0
  24. package/dist/core/cache-manager.d.ts +80 -0
  25. package/dist/core/cache-manager.d.ts.map +1 -0
  26. package/dist/core/config-loader.d.ts +76 -0
  27. package/dist/core/config-loader.d.ts.map +1 -0
  28. package/dist/core/git-resolver.d.ts +73 -0
  29. package/dist/core/git-resolver.d.ts.map +1 -0
  30. package/dist/core/index.d.ts +7 -0
  31. package/dist/core/index.d.ts.map +1 -0
  32. package/dist/core/lock-manager.d.ts +75 -0
  33. package/dist/core/lock-manager.d.ts.map +1 -0
  34. package/dist/core/skill-manager.d.ts +98 -0
  35. package/dist/core/skill-manager.d.ts.map +1 -0
  36. package/dist/index.d.ts +9 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +1033 -0
  39. package/dist/types/index.d.ts +213 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/utils/fs.d.ts +86 -0
  42. package/dist/utils/fs.d.ts.map +1 -0
  43. package/dist/utils/git.d.ts +112 -0
  44. package/dist/utils/git.d.ts.map +1 -0
  45. package/dist/utils/index.d.ts +4 -0
  46. package/dist/utils/index.d.ts.map +1 -0
  47. package/dist/utils/logger.d.ts +43 -0
  48. package/dist/utils/logger.d.ts.map +1 -0
  49. 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"}
@@ -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"}