reskill 0.12.0 → 0.13.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 CHANGED
@@ -19,13 +19,13 @@ English | [简体中文](./README.zh-CN.md)
19
19
 
20
20
  ```bash
21
21
  # 1. Initialize project
22
- reskill init
22
+ npx reskill init
23
23
 
24
24
  # 2. Install a skill
25
- reskill install github:anthropics/skills/frontend-design@latest
25
+ npx reskill install github:anthropics/skills/frontend-design@latest
26
26
 
27
27
  # 3. List installed skills
28
- reskill list
28
+ npx reskill list
29
29
  ```
30
30
 
31
31
  ## What is reskill?
@@ -89,19 +89,19 @@ npx reskill <command>
89
89
 
90
90
  ```bash
91
91
  # GitHub shorthand
92
- reskill install github:user/skill@v1.0.0
92
+ npx reskill install github:user/skill@v1.0.0
93
93
 
94
94
  # Full URL
95
- reskill install https://github.com/user/skill
95
+ npx reskill install https://github.com/user/skill
96
96
 
97
97
  # GitLab
98
- reskill install gitlab:group/skill@latest
98
+ npx reskill install gitlab:group/skill@latest
99
99
 
100
100
  # Private registry
101
- reskill install gitlab.company.com:team/skill@v1.0.0
101
+ npx reskill install gitlab.company.com:team/skill@v1.0.0
102
102
 
103
103
  # Default registry (from skills.json)
104
- reskill install user/skill@v1.0.0
104
+ npx reskill install user/skill@v1.0.0
105
105
  ```
106
106
 
107
107
  ### Version Specification
@@ -116,19 +116,105 @@ reskill install user/skill@v1.0.0
116
116
 
117
117
  ## Commands
118
118
 
119
+ You can use `npx reskill` directly without global installation:
120
+
121
+ ```bash
122
+ # Initialize project
123
+ npx reskill init
124
+
125
+ # Install a skill from GitHub
126
+ npx reskill install github:anthropics/skills/frontend-design@latest
127
+
128
+ # Install from private GitLab
129
+ npx reskill install gitlab.company.com:team/internal-skill@v1.0.0
130
+
131
+ # List installed skills
132
+ npx reskill list
133
+ ```
134
+
135
+ ### Command Reference
136
+
119
137
  | Command | Description |
120
138
  |---------|-------------|
121
- | `reskill init` | Initialize `skills.json` in current directory |
122
- | `reskill install [skill]` | Install skills from `skills.json` or a specific skill |
123
- | `reskill list` | List installed skills |
124
- | `reskill info <skill>` | Show skill details |
125
- | `reskill update [skill]` | Update all or specific skill |
126
- | `reskill outdated` | Check for outdated skills |
127
- | `reskill uninstall <skill>` | Remove a skill |
128
- | `reskill link <path>` | Link local skill for development |
129
- | `reskill unlink <skill>` | Unlink a local skill |
130
-
131
- Run `reskill <command> --help` for detailed options.
139
+ | `npx reskill init` | Initialize `skills.json` in current directory |
140
+ | `npx reskill install [skill]` | Install skills from `skills.json` or a specific skill |
141
+ | `npx reskill list` | List installed skills |
142
+ | `npx reskill info <skill>` | Show skill details |
143
+ | `npx reskill update [skill]` | Update all or specific skill |
144
+ | `npx reskill outdated` | Check for outdated skills |
145
+ | `npx reskill uninstall <skill>` | Remove a skill |
146
+ | `npx reskill link <path>` | Link local skill for development |
147
+ | `npx reskill unlink <skill>` | Unlink a local skill |
148
+
149
+ Run `npx reskill <command> --help` for detailed options.
150
+
151
+ ## Private GitLab Support
152
+
153
+ reskill fully supports private GitLab repositories, including self-hosted instances. Authentication is handled transparently through your system's git configuration.
154
+
155
+ ### Authentication Methods
156
+
157
+ **SSH (Recommended)**
158
+
159
+ reskill uses your existing SSH configuration automatically:
160
+
161
+ ```bash
162
+ # Uses your ~/.ssh/id_rsa or ~/.ssh/id_ed25519 automatically
163
+ npx reskill install gitlab.company.com:team/private-skill@v1.0.0
164
+
165
+ # Or with explicit SSH URL
166
+ npx reskill install git@gitlab.company.com:team/private-skill.git@v1.0.0
167
+ ```
168
+
169
+ Ensure your SSH key is added to GitLab and ssh-agent is running.
170
+
171
+ **HTTPS with Git Credential**
172
+
173
+ For CI/CD or environments without SSH, configure git credential helper:
174
+
175
+ ```bash
176
+ # Store credentials (will prompt once, then remember)
177
+ git config --global credential.helper store
178
+
179
+ # Or use environment variable in CI
180
+ git config --global credential.helper '!f() { echo "username=oauth2"; echo "password=${GITLAB_TOKEN}"; }; f'
181
+ ```
182
+
183
+ For GitLab CI/CD, use the built-in `CI_JOB_TOKEN`:
184
+
185
+ ```yaml
186
+ before_script:
187
+ - git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.company.com/".insteadOf "https://gitlab.company.com/"
188
+ ```
189
+
190
+ ### Registry Configuration
191
+
192
+ Configure private registries in `skills.json`:
193
+
194
+ ```json
195
+ {
196
+ "registries": {
197
+ "internal": "https://gitlab.company.com",
198
+ "private": "git@gitlab.internal.io"
199
+ },
200
+ "skills": {
201
+ "company-standards": "internal:team/standards@latest",
202
+ "private-utils": "private:utils/helpers@v1.0.0"
203
+ }
204
+ }
205
+ ```
206
+
207
+ ### Self-Hosted GitLab
208
+
209
+ For self-hosted GitLab instances with custom domains:
210
+
211
+ ```bash
212
+ # Direct installation
213
+ npx reskill install git.mycompany.io:team/skill@v1.0.0
214
+
215
+ # With explicit SSH URL
216
+ npx reskill install git@git.mycompany.io:team/skill.git@v1.0.0
217
+ ```
132
218
 
133
219
  ## Configuration
134
220
 
@@ -215,7 +301,7 @@ my-project/
215
301
 
216
302
  | Variable | Description | Default |
217
303
  |----------|-------------|---------|
218
- | `SKPM_CACHE_DIR` | Global cache directory | `~/.reskill-cache` |
304
+ | `RESKILL_CACHE_DIR` | Global cache directory | `~/.reskill-cache` |
219
305
  | `DEBUG` | Enable debug logging | - |
220
306
 
221
307
  ## Development
package/README.zh-CN.md CHANGED
@@ -19,13 +19,13 @@
19
19
 
20
20
  ```bash
21
21
  # 1. 初始化项目
22
- reskill init
22
+ npx reskill init
23
23
 
24
24
  # 2. 安装 skill
25
- reskill install github:anthropics/skills/frontend-design@latest
25
+ npx reskill install github:anthropics/skills/frontend-design@latest
26
26
 
27
27
  # 3. 列出已安装的 skills
28
- reskill list
28
+ npx reskill list
29
29
  ```
30
30
 
31
31
  ## 什么是 reskill?
@@ -90,19 +90,19 @@ npx reskill <command>
90
90
 
91
91
  ```bash
92
92
  # GitHub 简写
93
- reskill install github:user/skill@v1.0.0
93
+ npx reskill install github:user/skill@v1.0.0
94
94
 
95
95
  # 完整 URL
96
- reskill install https://github.com/user/skill
96
+ npx reskill install https://github.com/user/skill
97
97
 
98
98
  # GitLab
99
- reskill install gitlab:group/skill@latest
99
+ npx reskill install gitlab:group/skill@latest
100
100
 
101
101
  # 私有 Registry
102
- reskill install gitlab.company.com:team/skill@v1.0.0
102
+ npx reskill install gitlab.company.com:team/skill@v1.0.0
103
103
 
104
104
  # 默认 Registry(来自 skills.json)
105
- reskill install user/skill@v1.0.0
105
+ npx reskill install user/skill@v1.0.0
106
106
  ```
107
107
 
108
108
  ### 版本规范
@@ -117,19 +117,105 @@ reskill install user/skill@v1.0.0
117
117
 
118
118
  ## 命令
119
119
 
120
+ 无需全局安装,直接使用 `npx reskill`:
121
+
122
+ ```bash
123
+ # 初始化项目
124
+ npx reskill init
125
+
126
+ # 从 GitHub 安装 skill
127
+ npx reskill install github:anthropics/skills/frontend-design@latest
128
+
129
+ # 从私有 GitLab 安装
130
+ npx reskill install gitlab.company.com:team/internal-skill@v1.0.0
131
+
132
+ # 列出已安装的 skills
133
+ npx reskill list
134
+ ```
135
+
136
+ ### 命令参考
137
+
120
138
  | 命令 | 说明 |
121
139
  |------|------|
122
- | `reskill init` | 在当前目录初始化 `skills.json` |
123
- | `reskill install [skill]` | 安装 `skills.json` 中的所有 skills 或指定 skill |
124
- | `reskill list` | 列出已安装的 skills |
125
- | `reskill info <skill>` | 查看 skill 详情 |
126
- | `reskill update [skill]` | 更新所有或指定 skill |
127
- | `reskill outdated` | 检查过期的 skills |
128
- | `reskill uninstall <skill>` | 卸载 skill |
129
- | `reskill link <path>` | 链接本地 skill(开发用) |
130
- | `reskill unlink <skill>` | 取消链接本地 skill |
131
-
132
- 运行 `reskill <command> --help` 查看详细选项。
140
+ | `npx reskill init` | 在当前目录初始化 `skills.json` |
141
+ | `npx reskill install [skill]` | 安装 `skills.json` 中的所有 skills 或指定 skill |
142
+ | `npx reskill list` | 列出已安装的 skills |
143
+ | `npx reskill info <skill>` | 查看 skill 详情 |
144
+ | `npx reskill update [skill]` | 更新所有或指定 skill |
145
+ | `npx reskill outdated` | 检查过期的 skills |
146
+ | `npx reskill uninstall <skill>` | 卸载 skill |
147
+ | `npx reskill link <path>` | 链接本地 skill(开发用) |
148
+ | `npx reskill unlink <skill>` | 取消链接本地 skill |
149
+
150
+ 运行 `npx reskill <command> --help` 查看详细选项。
151
+
152
+ ## 私有 GitLab 支持
153
+
154
+ reskill 完整支持私有 GitLab 仓库,包括自建实例。认证通过系统的 git 配置透明处理。
155
+
156
+ ### 认证方式
157
+
158
+ **SSH(推荐)**
159
+
160
+ reskill 自动使用你已有的 SSH 配置:
161
+
162
+ ```bash
163
+ # 自动使用 ~/.ssh/id_rsa 或 ~/.ssh/id_ed25519
164
+ npx reskill install gitlab.company.com:team/private-skill@v1.0.0
165
+
166
+ # 或使用显式的 SSH URL
167
+ npx reskill install git@gitlab.company.com:team/private-skill.git@v1.0.0
168
+ ```
169
+
170
+ 确保你的 SSH key 已添加到 GitLab,并且 ssh-agent 正在运行。
171
+
172
+ **HTTPS + Git Credential**
173
+
174
+ 适用于 CI/CD 或无 SSH 的环境,配置 git credential helper:
175
+
176
+ ```bash
177
+ # 存储凭证(首次会提示输入,之后自动记住)
178
+ git config --global credential.helper store
179
+
180
+ # 或在 CI 中使用环境变量
181
+ git config --global credential.helper '!f() { echo "username=oauth2"; echo "password=${GITLAB_TOKEN}"; }; f'
182
+ ```
183
+
184
+ GitLab CI/CD 可使用内置的 `CI_JOB_TOKEN`:
185
+
186
+ ```yaml
187
+ before_script:
188
+ - git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.company.com/".insteadOf "https://gitlab.company.com/"
189
+ ```
190
+
191
+ ### Registry 配置
192
+
193
+ 在 `skills.json` 中配置私有 registry:
194
+
195
+ ```json
196
+ {
197
+ "registries": {
198
+ "internal": "https://gitlab.company.com",
199
+ "private": "git@gitlab.internal.io"
200
+ },
201
+ "skills": {
202
+ "company-standards": "internal:team/standards@latest",
203
+ "private-utils": "private:utils/helpers@v1.0.0"
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### 自建 GitLab
209
+
210
+ 对于使用自定义域名的自建 GitLab 实例:
211
+
212
+ ```bash
213
+ # 直接安装
214
+ npx reskill install git.mycompany.io:team/skill@v1.0.0
215
+
216
+ # 使用显式的 SSH URL
217
+ npx reskill install git@git.mycompany.io:team/skill.git@v1.0.0
218
+ ```
133
219
 
134
220
  ## 配置
135
221
 
@@ -216,7 +302,7 @@ my-project/
216
302
 
217
303
  | 变量 | 说明 | 默认值 |
218
304
  |------|------|--------|
219
- | `SKPM_CACHE_DIR` | 全局缓存目录 | `~/.reskill-cache` |
305
+ | `RESKILL_CACHE_DIR` | 全局缓存目录 | `~/.reskill-cache` |
220
306
  | `DEBUG` | 启用调试日志 | - |
221
307
 
222
308
  ## 开发
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,SA4XvB,CAAC;AAEL,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,SAkYvB,CAAC;AAEL,eAAe,cAAc,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import * as __WEBPACK_EXTERNAL_MODULE_node_fs__ from "node:fs";
3
- import * as __WEBPACK_EXTERNAL_MODULE_commander__ from "commander";
4
3
  import * as __WEBPACK_EXTERNAL_MODULE_node_path__ from "node:path";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_node_url__ from "node:url";
5
+ import * as __WEBPACK_EXTERNAL_MODULE_commander__ from "commander";
5
6
  import * as __WEBPACK_EXTERNAL_MODULE_chalk__ from "chalk";
6
7
  import * as __WEBPACK_EXTERNAL_MODULE_node_os__ from "node:os";
7
8
  import * as __WEBPACK_EXTERNAL_MODULE_node_child_process__ from "node:child_process";
@@ -290,20 +291,32 @@ class GitCloneError extends Error {
290
291
  repoUrl;
291
292
  originalError;
292
293
  isAuthError;
294
+ urlType;
293
295
  constructor(repoUrl, originalError){
294
296
  const isAuthError = GitCloneError.isAuthenticationError(originalError.message);
297
+ const urlType = GitCloneError.detectUrlType(repoUrl);
295
298
  let message = `Failed to clone repository: ${repoUrl}`;
296
299
  if (isAuthError) {
297
- message += '\n\nTip: For private repos, ensure git SSH keys or credentials are configured:';
298
- message += '\n - SSH: Check ~/.ssh/id_rsa or ~/.ssh/id_ed25519';
299
- message += "\n - HTTPS: Run 'git config --global credential.helper store'";
300
- message += '\n - Or use a personal access token in the URL';
300
+ message += '\n\nTip: For private repos, ensure git credentials are configured:';
301
+ if ('ssh' === urlType) {
302
+ message += '\n - Check ~/.ssh/id_rsa or ~/.ssh/id_ed25519';
303
+ message += '\n - Ensure SSH key is added to your Git hosting service';
304
+ } else {
305
+ message += "\n - Run 'git config --global credential.helper store'";
306
+ message += '\n - Or use a personal access token in the URL';
307
+ }
301
308
  }
302
309
  super(message);
303
310
  this.name = 'GitCloneError';
304
311
  this.repoUrl = repoUrl;
305
312
  this.originalError = originalError;
306
313
  this.isAuthError = isAuthError;
314
+ this.urlType = urlType;
315
+ }
316
+ static detectUrlType(url) {
317
+ if (url.startsWith('git@') || url.startsWith('ssh://')) return 'ssh';
318
+ if (url.startsWith('http://') || url.startsWith('https://')) return 'https';
319
+ return 'unknown';
307
320
  }
308
321
  static isAuthenticationError(message) {
309
322
  const authPatterns = [
@@ -614,6 +627,11 @@ class ConfigLoader {
614
627
  writeJson(this.configPath, toSave);
615
628
  this.config = toSave;
616
629
  }
630
+ ensureExists() {
631
+ if (this.exists()) return false;
632
+ this.create();
633
+ return true;
634
+ }
617
635
  create(options) {
618
636
  const config = {
619
637
  ...DEFAULT_SKILLS_JSON,
@@ -883,7 +901,8 @@ function installer_remove(targetPath) {
883
901
  function copyDirectory(src, dest, options) {
884
902
  const exclude = new Set(options?.exclude || [
885
903
  'README.md',
886
- 'metadata.json'
904
+ 'metadata.json',
905
+ '.reskill-commit'
887
906
  ]);
888
907
  installer_ensureDir(dest);
889
908
  const entries = external_node_fs_.readdirSync(src, {
@@ -1217,7 +1236,10 @@ class SkillManager {
1217
1236
  resolved: repoUrl,
1218
1237
  commit: cacheResult.commit
1219
1238
  });
1220
- if (!this.isGlobal && save && this.config.exists()) this.config.addSkill(skillName, ref);
1239
+ if (!this.isGlobal && save) {
1240
+ this.config.ensureExists();
1241
+ this.config.addSkill(skillName, ref);
1242
+ }
1221
1243
  const locationHint = this.isGlobal ? '(global)' : '';
1222
1244
  logger.success(`Installed ${skillName}@${version} to ${skillPath} ${locationHint}`.trim());
1223
1245
  const installed = this.getInstalledSkill(skillName);
@@ -1435,7 +1457,10 @@ class SkillManager {
1435
1457
  resolved: repoUrl,
1436
1458
  commit: cacheResult.commit
1437
1459
  });
1438
- if (!this.isGlobal && save && this.config.exists()) this.config.addSkill(skillName, ref);
1460
+ if (!this.isGlobal && save) {
1461
+ this.config.ensureExists();
1462
+ this.config.addSkill(skillName, ref);
1463
+ }
1439
1464
  const successCount = Array.from(results.values()).filter((r)=>r.success).length;
1440
1465
  const failCount = results.size - successCount;
1441
1466
  if (0 === failCount) logger.success(`Installed ${skillName}@${version} to ${successCount} agent(s)`);
@@ -1598,7 +1623,7 @@ const installCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('instal
1598
1623
  label: config.displayName
1599
1624
  }));
1600
1625
  const selected = await __WEBPACK_EXTERNAL_MODULE__clack_prompts__.multiselect({
1601
- message: 'Select agents to install skills to',
1626
+ message: `Select agents to install skills to ${__WEBPACK_EXTERNAL_MODULE_chalk__["default"].dim('(Space to toggle, Enter to confirm)')}`,
1602
1627
  options: allAgentChoices,
1603
1628
  required: true,
1604
1629
  initialValues: allAgentTypes
@@ -1620,7 +1645,7 @@ const installCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('instal
1620
1645
  hint: agents[a].skillsDir
1621
1646
  }));
1622
1647
  const selected = await __WEBPACK_EXTERNAL_MODULE__clack_prompts__.multiselect({
1623
- message: 'Select agents to install skills to',
1648
+ message: `Select agents to install skills to ${__WEBPACK_EXTERNAL_MODULE_chalk__["default"].dim('(Space to toggle, Enter to confirm)')}`,
1624
1649
  options: agentChoices,
1625
1650
  required: true,
1626
1651
  initialValues: installedAgents
@@ -1633,7 +1658,10 @@ const installCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('instal
1633
1658
  }
1634
1659
  }
1635
1660
  let installGlobally = options.global ?? false;
1636
- if (void 0 === options.global && !skipConfirm) {
1661
+ const hasSkillsJson = configLoader.exists();
1662
+ if (void 0 !== options.global || skipConfirm || hasSkillsJson) {
1663
+ if (hasSkillsJson && void 0 === options.global) __WEBPACK_EXTERNAL_MODULE__clack_prompts__.log.info(`Found ${__WEBPACK_EXTERNAL_MODULE_chalk__["default"].cyan('skills.json')}, installing to project`);
1664
+ } else {
1637
1665
  const scope = await __WEBPACK_EXTERNAL_MODULE__clack_prompts__.select({
1638
1666
  message: 'Installation scope',
1639
1667
  options: [
@@ -1925,8 +1953,10 @@ const updateCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('update'
1925
1953
  process.exit(1);
1926
1954
  }
1927
1955
  });
1956
+ const cli_rslib_entry_dirname = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.dirname)((0, __WEBPACK_EXTERNAL_MODULE_node_url__.fileURLToPath)(import.meta.url));
1957
+ const packageJson = JSON.parse((0, external_node_fs_.readFileSync)((0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cli_rslib_entry_dirname, '../../package.json'), 'utf-8'));
1928
1958
  const program = new __WEBPACK_EXTERNAL_MODULE_commander__.Command();
1929
- program.name('reskill').description('AI Skills Package Manager - Git-based skills management for AI agents').version('0.1.0');
1959
+ program.name('reskill').description('AI Skills Package Manager - Git-based skills management for AI agents').version(packageJson.version);
1930
1960
  program.addCommand(initCommand);
1931
1961
  program.addCommand(installCommand);
1932
1962
  program.addCommand(listCommand);
@@ -35,6 +35,12 @@ export declare class ConfigLoader {
35
35
  * Save configuration
36
36
  */
37
37
  save(config?: SkillsJson): void;
38
+ /**
39
+ * Ensure skills.json exists, create with defaults if not
40
+ *
41
+ * @returns true if file was created, false if it already existed
42
+ */
43
+ ensureExists(): boolean;
38
44
  /**
39
45
  * Create default configuration
40
46
  */
@@ -1 +1 @@
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
+ {"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;;;;OAIG;IACH,YAAY,IAAI,OAAO;IAQvB;;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 +1 @@
1
- {"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"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"}
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
@@ -277,20 +277,32 @@ class GitCloneError extends Error {
277
277
  repoUrl;
278
278
  originalError;
279
279
  isAuthError;
280
+ urlType;
280
281
  constructor(repoUrl, originalError){
281
282
  const isAuthError = GitCloneError.isAuthenticationError(originalError.message);
283
+ const urlType = GitCloneError.detectUrlType(repoUrl);
282
284
  let message = `Failed to clone repository: ${repoUrl}`;
283
285
  if (isAuthError) {
284
- message += '\n\nTip: For private repos, ensure git SSH keys or credentials are configured:';
285
- message += '\n - SSH: Check ~/.ssh/id_rsa or ~/.ssh/id_ed25519';
286
- message += "\n - HTTPS: Run 'git config --global credential.helper store'";
287
- message += '\n - Or use a personal access token in the URL';
286
+ message += '\n\nTip: For private repos, ensure git credentials are configured:';
287
+ if ('ssh' === urlType) {
288
+ message += '\n - Check ~/.ssh/id_rsa or ~/.ssh/id_ed25519';
289
+ message += '\n - Ensure SSH key is added to your Git hosting service';
290
+ } else {
291
+ message += "\n - Run 'git config --global credential.helper store'";
292
+ message += '\n - Or use a personal access token in the URL';
293
+ }
288
294
  }
289
295
  super(message);
290
296
  this.name = 'GitCloneError';
291
297
  this.repoUrl = repoUrl;
292
298
  this.originalError = originalError;
293
299
  this.isAuthError = isAuthError;
300
+ this.urlType = urlType;
301
+ }
302
+ static detectUrlType(url) {
303
+ if (url.startsWith('git@') || url.startsWith('ssh://')) return 'ssh';
304
+ if (url.startsWith('http://') || url.startsWith('https://')) return 'https';
305
+ return 'unknown';
294
306
  }
295
307
  static isAuthenticationError(message) {
296
308
  const authPatterns = [
@@ -601,6 +613,11 @@ class ConfigLoader {
601
613
  writeJson(this.configPath, toSave);
602
614
  this.config = toSave;
603
615
  }
616
+ ensureExists() {
617
+ if (this.exists()) return false;
618
+ this.create();
619
+ return true;
620
+ }
604
621
  create(options) {
605
622
  const config = {
606
623
  ...DEFAULT_SKILLS_JSON,
@@ -870,7 +887,8 @@ function installer_remove(targetPath) {
870
887
  function copyDirectory(src, dest, options) {
871
888
  const exclude = new Set(options?.exclude || [
872
889
  'README.md',
873
- 'metadata.json'
890
+ 'metadata.json',
891
+ '.reskill-commit'
874
892
  ]);
875
893
  installer_ensureDir(dest);
876
894
  const entries = external_node_fs_.readdirSync(src, {
@@ -1245,7 +1263,10 @@ class SkillManager {
1245
1263
  resolved: repoUrl,
1246
1264
  commit: cacheResult.commit
1247
1265
  });
1248
- if (!this.isGlobal && save && this.config.exists()) this.config.addSkill(skillName, ref);
1266
+ if (!this.isGlobal && save) {
1267
+ this.config.ensureExists();
1268
+ this.config.addSkill(skillName, ref);
1269
+ }
1249
1270
  const locationHint = this.isGlobal ? '(global)' : '';
1250
1271
  logger.success(`Installed ${skillName}@${version} to ${skillPath} ${locationHint}`.trim());
1251
1272
  const installed = this.getInstalledSkill(skillName);
@@ -1463,7 +1484,10 @@ class SkillManager {
1463
1484
  resolved: repoUrl,
1464
1485
  commit: cacheResult.commit
1465
1486
  });
1466
- if (!this.isGlobal && save && this.config.exists()) this.config.addSkill(skillName, ref);
1487
+ if (!this.isGlobal && save) {
1488
+ this.config.ensureExists();
1489
+ this.config.addSkill(skillName, ref);
1490
+ }
1467
1491
  const successCount = Array.from(results.values()).filter((r)=>r.success).length;
1468
1492
  const failCount = results.size - successCount;
1469
1493
  if (0 === failCount) logger.success(`Installed ${skillName}@${version} to ${successCount} agent(s)`);
@@ -13,7 +13,12 @@ export declare class GitCloneError extends Error {
13
13
  readonly repoUrl: string;
14
14
  readonly originalError: Error;
15
15
  readonly isAuthError: boolean;
16
+ readonly urlType: 'ssh' | 'https' | 'unknown';
16
17
  constructor(repoUrl: string, originalError: Error);
18
+ /**
19
+ * Detect URL type from repository URL
20
+ */
21
+ static detectUrlType(url: string): 'ssh' | 'https' | 'unknown';
17
22
  /**
18
23
  * Check if an error message indicates an authentication problem
19
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,aAAa,EAAE,KAAK,CAAC;IACrC,SAAgB,WAAW,EAAE,OAAO,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;IAkBjD;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAevD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBtE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAe1E;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9E;AAsBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASxE;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA0C5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reskill",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "AI Skills Package Manager - Git-based skills management for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",