reskill 1.11.2 → 1.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 +21 -2
- package/README.zh-CN.md +17 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/login.d.ts +15 -2
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/index.js +277 -147
- package/dist/core/registry-resolver.d.ts +2 -1
- package/dist/core/registry-resolver.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/index.js +12 -5
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,7 +75,8 @@ npx reskill@latest <command> # Or use npx directly
|
|
|
75
75
|
| `-f, --force` | `install` | Force reinstall even if already installed |
|
|
76
76
|
| `-s, --skill <names...>` | `install` | Select specific skill(s) by name from a multi-skill repo |
|
|
77
77
|
| `--list` | `install` | List available skills in the repository without installing |
|
|
78
|
-
| `-r, --registry <url>` | `install`
|
|
78
|
+
| `-r, --registry <url>` | `install`, `publish` | Registry URL override for registry-based installs |
|
|
79
|
+
| `-t, --token <token>` | `install` | Auth token for registry API requests (for CI/CD) |
|
|
79
80
|
| `-j, --json` | `list`, `info`, `outdated`, `doctor` | Output as JSON |
|
|
80
81
|
|
|
81
82
|
Run `reskill <command> --help` for complete options and detailed usage.
|
|
@@ -208,9 +209,12 @@ Skills are installed to `.skills/` by default and can be integrated with any age
|
|
|
208
209
|
Publish your skills to the registry for others to use:
|
|
209
210
|
|
|
210
211
|
```bash
|
|
211
|
-
#
|
|
212
|
+
# Interactive login (recommended for humans — guides you through token setup)
|
|
212
213
|
reskill login
|
|
213
214
|
|
|
215
|
+
# Non-interactive login (for CI/CD — pass token directly)
|
|
216
|
+
reskill login --token <your-token>
|
|
217
|
+
|
|
214
218
|
# Validate without publishing (dry run)
|
|
215
219
|
reskill publish --dry-run
|
|
216
220
|
|
|
@@ -220,6 +224,21 @@ reskill publish
|
|
|
220
224
|
|
|
221
225
|
For detailed publishing guidelines, see the [CLI Specification](./docs/cli-spec.md#publish).
|
|
222
226
|
|
|
227
|
+
### Installing Private Skills
|
|
228
|
+
|
|
229
|
+
After logging in with `reskill login`, the token stored in `~/.reskillrc` is automatically used during `reskill install` to access private skills:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Token is automatically read from ~/.reskillrc (requires --registry to match)
|
|
233
|
+
reskill install @scope/private-skill --registry https://your-registry.com
|
|
234
|
+
|
|
235
|
+
# Or use RESKILL_TOKEN env var (works without --registry)
|
|
236
|
+
RESKILL_TOKEN=<token> reskill install @scope/private-skill
|
|
237
|
+
|
|
238
|
+
# Or pass token directly (for CI/CD)
|
|
239
|
+
reskill install @scope/private-skill --registry https://your-registry.com --token <token>
|
|
240
|
+
```
|
|
241
|
+
|
|
223
242
|
## Environment Variables
|
|
224
243
|
|
|
225
244
|
| Variable | Description | Default |
|
package/README.zh-CN.md
CHANGED
|
@@ -75,7 +75,8 @@ npx reskill@latest <command> # 或直接使用 npx
|
|
|
75
75
|
| `-f, --force` | `install` | 强制重新安装 |
|
|
76
76
|
| `-s, --skill <names...>` | `install` | 从多 skill 仓库中选择指定 skill |
|
|
77
77
|
| `--list` | `install` | 列出仓库中可用的 skills(不安装) |
|
|
78
|
-
| `-r, --registry <url>` | `install`
|
|
78
|
+
| `-r, --registry <url>` | `install`, `publish` | 覆盖 registry URL(用于 registry 安装) |
|
|
79
|
+
| `-t, --token <token>` | `install` | 认证令牌(用于 CI/CD 访问私有 skill) |
|
|
79
80
|
| `-j, --json` | `list`, `info`, `outdated`, `doctor` | JSON 格式输出 |
|
|
80
81
|
|
|
81
82
|
运行 `reskill <command> --help` 查看完整选项和详细用法。
|
|
@@ -220,6 +221,21 @@ reskill publish
|
|
|
220
221
|
|
|
221
222
|
详细的发布指南请参考 [CLI 规范](./docs/cli-spec.md#publish)。
|
|
222
223
|
|
|
224
|
+
### 安装私有 Skills
|
|
225
|
+
|
|
226
|
+
通过 `reskill login` 登录后,`reskill install` 会自动使用 `~/.reskillrc` 中的 token 访问私有 skill:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# 自动从 ~/.reskillrc 读取 token(需配合 --registry 指定 registry)
|
|
230
|
+
reskill install @scope/private-skill --registry https://your-registry.com
|
|
231
|
+
|
|
232
|
+
# 或通过 RESKILL_TOKEN 环境变量(无需 --registry)
|
|
233
|
+
RESKILL_TOKEN=<token> reskill install @scope/private-skill
|
|
234
|
+
|
|
235
|
+
# 或直接传入 token(用于 CI/CD)
|
|
236
|
+
reskill install @scope/private-skill --registry https://your-registry.com --token <token>
|
|
237
|
+
```
|
|
238
|
+
|
|
223
239
|
## 环境变量
|
|
224
240
|
|
|
225
241
|
| 变量 | 说明 | 默认值 |
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6yBpC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,SA8GvB,CAAC;AAEL,eAAe,cAAc,CAAC"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* login command - Authenticate with a reskill registry
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Supports two modes:
|
|
5
|
+
* 1. Interactive: prompts user to paste token (default when no --token flag)
|
|
6
|
+
* 2. Non-interactive: uses --token flag directly (for CI/CD)
|
|
7
|
+
*
|
|
8
|
+
* Tokens are stored in ~/.reskillrc per registry.
|
|
6
9
|
*/
|
|
7
10
|
import { Command } from 'commander';
|
|
11
|
+
/**
|
|
12
|
+
* Build the token settings page URL for a registry
|
|
13
|
+
*/
|
|
14
|
+
export declare function getTokenPageUrl(registry: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Prompt user to paste their access token interactively.
|
|
17
|
+
* Shows a fixed-length mask on input for visual feedback without revealing token length.
|
|
18
|
+
* Retries on empty input, returns null only on explicit cancel (Ctrl+C).
|
|
19
|
+
*/
|
|
20
|
+
export declare function promptForToken(registry: string): Promise<string | null>;
|
|
8
21
|
export declare const loginCommand: Command;
|
|
9
22
|
export default loginCommand;
|
|
10
23
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxD;AAiGD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6B7E;AA4ED,eAAO,MAAM,YAAY,SAOH,CAAC;AAEvB,eAAe,YAAY,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -3710,13 +3710,14 @@ class RegistryResolver {
|
|
|
3710
3710
|
*
|
|
3711
3711
|
* @param ref - Skill reference (e.g., "@kanyun/planning-with-files@2.4.5" or "my-skill@latest")
|
|
3712
3712
|
* @param overrideRegistryUrl - Optional registry URL override (bypasses scope-based lookup)
|
|
3713
|
+
* @param token - Optional auth token for private skill access
|
|
3713
3714
|
* @returns Resolved skill information including downloaded tarball
|
|
3714
3715
|
*
|
|
3715
3716
|
* @example
|
|
3716
3717
|
* const result = await resolver.resolve('@kanyun/planning-with-files@2.4.5');
|
|
3717
3718
|
* console.log(result.shortName); // 'planning-with-files'
|
|
3718
3719
|
* console.log(result.version); // '2.4.5'
|
|
3719
|
-
*/ async resolve(ref, overrideRegistryUrl) {
|
|
3720
|
+
*/ async resolve(ref, overrideRegistryUrl, token) {
|
|
3720
3721
|
// 1. Parse skill identifier
|
|
3721
3722
|
const parsed = parseSkillIdentifier(ref);
|
|
3722
3723
|
const shortName = getShortName(parsed.fullName);
|
|
@@ -3724,7 +3725,8 @@ class RegistryResolver {
|
|
|
3724
3725
|
const registryUrl = overrideRegistryUrl || getRegistryUrl(parsed.scope);
|
|
3725
3726
|
// 3. Create client and resolve version
|
|
3726
3727
|
const client = new RegistryClient({
|
|
3727
|
-
registry: registryUrl
|
|
3728
|
+
registry: registryUrl,
|
|
3729
|
+
token
|
|
3728
3730
|
});
|
|
3729
3731
|
const version = await client.resolveVersion(parsed.fullName, parsed.version);
|
|
3730
3732
|
// 4. Download tarball
|
|
@@ -4134,6 +4136,9 @@ class RegistryResolver {
|
|
|
4134
4136
|
const locked = this.lockManager.get(parsed.name);
|
|
4135
4137
|
if (locked?.registry) return locked.registry;
|
|
4136
4138
|
// Slow path: probe configured registries (skip git hosts)
|
|
4139
|
+
// Note: token is intentionally NOT passed during probe to avoid leaking
|
|
4140
|
+
// credentials to unrelated registries. Token is only used after the
|
|
4141
|
+
// target registry is determined.
|
|
4137
4142
|
const registries = this.config.getRegistries();
|
|
4138
4143
|
for (const [name, url] of Object.entries(registries))if (!this.isGitHostRegistry(name, url)) try {
|
|
4139
4144
|
const client = new RegistryClient({
|
|
@@ -4601,7 +4606,8 @@ class RegistryResolver {
|
|
|
4601
4606
|
const parsed = parseSkillIdentifier(ref);
|
|
4602
4607
|
const registryUrl = await this.resolveRegistryUrl(ref, options.registry);
|
|
4603
4608
|
const client = new RegistryClient({
|
|
4604
|
-
registry: registryUrl
|
|
4609
|
+
registry: registryUrl,
|
|
4610
|
+
token: options.token
|
|
4605
4611
|
});
|
|
4606
4612
|
// Query skill info to determine source_type
|
|
4607
4613
|
let skillInfo;
|
|
@@ -4622,7 +4628,7 @@ class RegistryResolver {
|
|
|
4622
4628
|
});
|
|
4623
4629
|
// 1. Resolve registry skill (pass pre-resolved registryUrl)
|
|
4624
4630
|
logger_logger["package"](`Resolving ${ref} from registry...`);
|
|
4625
|
-
const resolved = await this.registryResolver.resolve(ref, registryUrl);
|
|
4631
|
+
const resolved = await this.registryResolver.resolve(ref, registryUrl, options.token);
|
|
4626
4632
|
const { shortName, version, registryUrl: resolvedRegistryUrl, tarball, parsed: resolvedParsed } = resolved;
|
|
4627
4633
|
// 2. Check if already installed (skip if --force)
|
|
4628
4634
|
const skillPath = this.getSkillPath(shortName);
|
|
@@ -4832,7 +4838,8 @@ class RegistryResolver {
|
|
|
4832
4838
|
const version = 'latest';
|
|
4833
4839
|
// Download tarball via RegistryClient (handles auth + 302 redirect to signed URL)
|
|
4834
4840
|
const client = new RegistryClient({
|
|
4835
|
-
registry: registryUrl
|
|
4841
|
+
registry: registryUrl,
|
|
4842
|
+
token: options.token
|
|
4836
4843
|
});
|
|
4837
4844
|
const { tarball } = await client.downloadSkill(parsed.fullName, version);
|
|
4838
4845
|
logger_logger["package"](`Installing ${shortName} from ${registryUrl} to ${targetAgents.length} agent(s)...`);
|
|
@@ -6136,6 +6143,133 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6136
6143
|
// Display summary (use options.installDir directly since we just set it)
|
|
6137
6144
|
displayConfigSummary(options.installDir);
|
|
6138
6145
|
});
|
|
6146
|
+
/**
|
|
6147
|
+
* AuthManager - Handle authentication token management
|
|
6148
|
+
*
|
|
6149
|
+
* Manages tokens for registry authentication.
|
|
6150
|
+
* Tokens are stored in ~/.reskillrc or via RESKILL_TOKEN environment variable.
|
|
6151
|
+
*/ // ============================================================================
|
|
6152
|
+
// Constants
|
|
6153
|
+
// ============================================================================
|
|
6154
|
+
const CONFIG_FILE_NAME = '.reskillrc';
|
|
6155
|
+
// ============================================================================
|
|
6156
|
+
// AuthManager Class
|
|
6157
|
+
// ============================================================================
|
|
6158
|
+
class AuthManager {
|
|
6159
|
+
configPath;
|
|
6160
|
+
constructor(){
|
|
6161
|
+
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
6162
|
+
this.configPath = __WEBPACK_EXTERNAL_MODULE_node_path__.join(home, CONFIG_FILE_NAME);
|
|
6163
|
+
}
|
|
6164
|
+
/**
|
|
6165
|
+
* Get the default registry URL from environment variable
|
|
6166
|
+
*
|
|
6167
|
+
* Returns undefined if no registry is configured - there is no hardcoded default
|
|
6168
|
+
* to prevent accidental publishing to unintended registries.
|
|
6169
|
+
*/ getDefaultRegistry() {
|
|
6170
|
+
return process.env.RESKILL_REGISTRY;
|
|
6171
|
+
}
|
|
6172
|
+
/**
|
|
6173
|
+
* Get path to config file
|
|
6174
|
+
*/ getConfigPath() {
|
|
6175
|
+
return this.configPath;
|
|
6176
|
+
}
|
|
6177
|
+
/**
|
|
6178
|
+
* Get token for a registry
|
|
6179
|
+
*
|
|
6180
|
+
* Priority:
|
|
6181
|
+
* 1. RESKILL_TOKEN environment variable
|
|
6182
|
+
* 2. Token from ~/.reskillrc for the specified registry
|
|
6183
|
+
*/ getToken(registry) {
|
|
6184
|
+
// Check environment variable first
|
|
6185
|
+
const envToken = process.env.RESKILL_TOKEN;
|
|
6186
|
+
if (envToken) return envToken;
|
|
6187
|
+
// Read from config file
|
|
6188
|
+
const config = this.readConfig();
|
|
6189
|
+
if (!config?.registries) return;
|
|
6190
|
+
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6191
|
+
if (!targetRegistry) return;
|
|
6192
|
+
const auth = config.registries[targetRegistry];
|
|
6193
|
+
return auth?.token;
|
|
6194
|
+
}
|
|
6195
|
+
/**
|
|
6196
|
+
* Check if token exists for a registry
|
|
6197
|
+
*/ hasToken(registry) {
|
|
6198
|
+
return void 0 !== this.getToken(registry);
|
|
6199
|
+
}
|
|
6200
|
+
/**
|
|
6201
|
+
* Get email for a registry
|
|
6202
|
+
*/ getEmail(registry) {
|
|
6203
|
+
const config = this.readConfig();
|
|
6204
|
+
if (!config?.registries) return;
|
|
6205
|
+
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6206
|
+
if (!targetRegistry) return;
|
|
6207
|
+
const auth = config.registries[targetRegistry];
|
|
6208
|
+
return auth?.email;
|
|
6209
|
+
}
|
|
6210
|
+
/**
|
|
6211
|
+
* Get handle for a registry
|
|
6212
|
+
*/ getHandle(registry) {
|
|
6213
|
+
const config = this.readConfig();
|
|
6214
|
+
if (!config?.registries) return;
|
|
6215
|
+
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6216
|
+
if (!targetRegistry) return;
|
|
6217
|
+
const auth = config.registries[targetRegistry];
|
|
6218
|
+
return auth?.handle;
|
|
6219
|
+
}
|
|
6220
|
+
/**
|
|
6221
|
+
* Set token for a registry
|
|
6222
|
+
*
|
|
6223
|
+
* Note: When no registry is specified and RESKILL_REGISTRY env var is not set,
|
|
6224
|
+
* this method will throw an error. The calling code should ensure a registry
|
|
6225
|
+
* is always provided (either explicitly or via environment variable).
|
|
6226
|
+
*/ setToken(token, registry, email, handle) {
|
|
6227
|
+
const config = this.readConfig() || {};
|
|
6228
|
+
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6229
|
+
if (!targetRegistry) throw new Error('No registry specified. Set RESKILL_REGISTRY environment variable or provide registry explicitly.');
|
|
6230
|
+
if (!config.registries) config.registries = {};
|
|
6231
|
+
config.registries[targetRegistry] = {
|
|
6232
|
+
token,
|
|
6233
|
+
...email && {
|
|
6234
|
+
email
|
|
6235
|
+
},
|
|
6236
|
+
...handle && {
|
|
6237
|
+
handle
|
|
6238
|
+
}
|
|
6239
|
+
};
|
|
6240
|
+
this.writeConfig(config);
|
|
6241
|
+
}
|
|
6242
|
+
/**
|
|
6243
|
+
* Remove token for a registry
|
|
6244
|
+
*/ removeToken(registry) {
|
|
6245
|
+
const config = this.readConfig();
|
|
6246
|
+
if (!config?.registries) return;
|
|
6247
|
+
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6248
|
+
if (!targetRegistry) return;
|
|
6249
|
+
delete config.registries[targetRegistry];
|
|
6250
|
+
this.writeConfig(config);
|
|
6251
|
+
}
|
|
6252
|
+
/**
|
|
6253
|
+
* Read config file
|
|
6254
|
+
*/ readConfig() {
|
|
6255
|
+
try {
|
|
6256
|
+
if (!external_node_fs_.existsSync(this.configPath)) return null;
|
|
6257
|
+
const content = external_node_fs_.readFileSync(this.configPath, 'utf-8');
|
|
6258
|
+
if (!content.trim()) return null;
|
|
6259
|
+
return JSON.parse(content);
|
|
6260
|
+
} catch {
|
|
6261
|
+
return null;
|
|
6262
|
+
}
|
|
6263
|
+
}
|
|
6264
|
+
/**
|
|
6265
|
+
* Write config file
|
|
6266
|
+
*/ writeConfig(config) {
|
|
6267
|
+
const content = JSON.stringify(config, null, 2);
|
|
6268
|
+
external_node_fs_.writeFileSync(this.configPath, content, {
|
|
6269
|
+
mode: 384
|
|
6270
|
+
});
|
|
6271
|
+
}
|
|
6272
|
+
}
|
|
6139
6273
|
// ============================================================================
|
|
6140
6274
|
// Utility Functions
|
|
6141
6275
|
// ============================================================================
|
|
@@ -6381,7 +6515,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6381
6515
|
force: options.force,
|
|
6382
6516
|
save: false,
|
|
6383
6517
|
mode: installMode,
|
|
6384
|
-
registry: options.registry
|
|
6518
|
+
registry: options.registry,
|
|
6519
|
+
token: options.token
|
|
6385
6520
|
});
|
|
6386
6521
|
const successCount = Array.from(results.values()).filter((r)=>r.success).length;
|
|
6387
6522
|
totalInstalled += successCount;
|
|
@@ -6431,7 +6566,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6431
6566
|
force: options.force,
|
|
6432
6567
|
save: false !== options.save && !installGlobally,
|
|
6433
6568
|
mode: installMode,
|
|
6434
|
-
registry: options.registry
|
|
6569
|
+
registry: options.registry,
|
|
6570
|
+
token: options.token
|
|
6435
6571
|
});
|
|
6436
6572
|
spinner.stop('Installation complete');
|
|
6437
6573
|
// Process and display results
|
|
@@ -6495,7 +6631,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6495
6631
|
force: ctx.options.force,
|
|
6496
6632
|
save: false !== ctx.options.save && !installGlobally,
|
|
6497
6633
|
mode: installMode,
|
|
6498
|
-
registry: ctx.options.registry
|
|
6634
|
+
registry: ctx.options.registry,
|
|
6635
|
+
token: ctx.options.token
|
|
6499
6636
|
});
|
|
6500
6637
|
spinner.stop('Installation complete');
|
|
6501
6638
|
// listOnly is always false here (the listOnly path returns early above)
|
|
@@ -6555,6 +6692,7 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6555
6692
|
force: options.force,
|
|
6556
6693
|
save: false !== options.save && !installGlobally,
|
|
6557
6694
|
registry: options.registry,
|
|
6695
|
+
token: options.token,
|
|
6558
6696
|
mode: installMode
|
|
6559
6697
|
});
|
|
6560
6698
|
const successful = Array.from(results.values()).filter((r)=>r.success);
|
|
@@ -6681,12 +6819,18 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6681
6819
|
* Behavior:
|
|
6682
6820
|
* - Single skill install: Prompts for agents/mode (stored config as defaults)
|
|
6683
6821
|
* - Reinstall all (no args): Uses stored config directly, no confirmation
|
|
6684
|
-
*/ const installCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('install').alias('i').description('Install one or more skills, or all skills from skills.json').argument('[skills...]', 'Skill references (e.g., github:user/skill@v1.0.0 or git@github.com:user/repo.git)').option('-f, --force', 'Force reinstall even if already installed').option('-g, --global', 'Install globally to user home directory').option('--no-save', 'Do not save to skills.json').option('-a, --agent <agents...>', 'Specify target agents (e.g., cursor, claude-code)').option('--mode <mode>', 'Installation mode: symlink or copy').option('-y, --yes', 'Skip confirmation prompts').option('--all', 'Install to all agents (implies -y -g)').option('-s, --skill <names...>', 'Select specific skill(s) by name from a multi-skill repository').option('--list', 'List available skills in the repository without installing').option('-r, --registry <url>', 'Registry URL override for registry-based installs').action(async (skills, options)=>{
|
|
6822
|
+
*/ const installCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('install').alias('i').description('Install one or more skills, or all skills from skills.json').argument('[skills...]', 'Skill references (e.g., github:user/skill@v1.0.0 or git@github.com:user/repo.git)').option('-f, --force', 'Force reinstall even if already installed').option('-g, --global', 'Install globally to user home directory').option('--no-save', 'Do not save to skills.json').option('-a, --agent <agents...>', 'Specify target agents (e.g., cursor, claude-code)').option('--mode <mode>', 'Installation mode: symlink or copy').option('-y, --yes', 'Skip confirmation prompts').option('--all', 'Install to all agents (implies -y -g)').option('-s, --skill <names...>', 'Select specific skill(s) by name from a multi-skill repository').option('--list', 'List available skills in the repository without installing').option('-r, --registry <url>', 'Registry URL override for registry-based installs').option('-t, --token <token>', 'Auth token for registry API requests (for CI/CD)').action(async (skills, options)=>{
|
|
6685
6823
|
// Handle --all flag implications
|
|
6686
6824
|
if (options.all) {
|
|
6687
6825
|
options.yes = true;
|
|
6688
6826
|
options.global = true;
|
|
6689
6827
|
}
|
|
6828
|
+
// Resolve auth token: --token flag > RESKILL_TOKEN env > ~/.reskillrc
|
|
6829
|
+
if (!options.token) {
|
|
6830
|
+
const authManager = new AuthManager();
|
|
6831
|
+
const token = authManager.getToken(options.registry);
|
|
6832
|
+
if (token) options.token = token;
|
|
6833
|
+
}
|
|
6690
6834
|
// Create execution context
|
|
6691
6835
|
const ctx = createInstallContext(skills, options);
|
|
6692
6836
|
// Print banner
|
|
@@ -6770,161 +6914,148 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
6770
6914
|
logger_logger.log(`Total: ${skills.length} skill(s)`);
|
|
6771
6915
|
});
|
|
6772
6916
|
/**
|
|
6773
|
-
*
|
|
6917
|
+
* login command - Authenticate with a reskill registry
|
|
6774
6918
|
*
|
|
6775
|
-
*
|
|
6776
|
-
*
|
|
6919
|
+
* Supports two modes:
|
|
6920
|
+
* 1. Interactive: prompts user to paste token (default when no --token flag)
|
|
6921
|
+
* 2. Non-interactive: uses --token flag directly (for CI/CD)
|
|
6922
|
+
*
|
|
6923
|
+
* Tokens are stored in ~/.reskillrc per registry.
|
|
6777
6924
|
*/ // ============================================================================
|
|
6778
|
-
//
|
|
6925
|
+
// Helpers
|
|
6779
6926
|
// ============================================================================
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
/**
|
|
6804
|
-
* Get token for a registry
|
|
6805
|
-
*
|
|
6806
|
-
* Priority:
|
|
6807
|
-
* 1. RESKILL_TOKEN environment variable
|
|
6808
|
-
* 2. Token from ~/.reskillrc for the specified registry
|
|
6809
|
-
*/ getToken(registry) {
|
|
6810
|
-
// Check environment variable first
|
|
6811
|
-
const envToken = process.env.RESKILL_TOKEN;
|
|
6812
|
-
if (envToken) return envToken;
|
|
6813
|
-
// Read from config file
|
|
6814
|
-
const config = this.readConfig();
|
|
6815
|
-
if (!config?.registries) return;
|
|
6816
|
-
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6817
|
-
if (!targetRegistry) return;
|
|
6818
|
-
const auth = config.registries[targetRegistry];
|
|
6819
|
-
return auth?.token;
|
|
6820
|
-
}
|
|
6821
|
-
/**
|
|
6822
|
-
* Check if token exists for a registry
|
|
6823
|
-
*/ hasToken(registry) {
|
|
6824
|
-
return void 0 !== this.getToken(registry);
|
|
6825
|
-
}
|
|
6826
|
-
/**
|
|
6827
|
-
* Get email for a registry
|
|
6828
|
-
*/ getEmail(registry) {
|
|
6829
|
-
const config = this.readConfig();
|
|
6830
|
-
if (!config?.registries) return;
|
|
6831
|
-
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6832
|
-
if (!targetRegistry) return;
|
|
6833
|
-
const auth = config.registries[targetRegistry];
|
|
6834
|
-
return auth?.email;
|
|
6835
|
-
}
|
|
6836
|
-
/**
|
|
6837
|
-
* Get handle for a registry
|
|
6838
|
-
*/ getHandle(registry) {
|
|
6839
|
-
const config = this.readConfig();
|
|
6840
|
-
if (!config?.registries) return;
|
|
6841
|
-
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6842
|
-
if (!targetRegistry) return;
|
|
6843
|
-
const auth = config.registries[targetRegistry];
|
|
6844
|
-
return auth?.handle;
|
|
6845
|
-
}
|
|
6846
|
-
/**
|
|
6847
|
-
* Set token for a registry
|
|
6848
|
-
*
|
|
6849
|
-
* Note: When no registry is specified and RESKILL_REGISTRY env var is not set,
|
|
6850
|
-
* this method will throw an error. The calling code should ensure a registry
|
|
6851
|
-
* is always provided (either explicitly or via environment variable).
|
|
6852
|
-
*/ setToken(token, registry, email, handle) {
|
|
6853
|
-
const config = this.readConfig() || {};
|
|
6854
|
-
const targetRegistry = registry || this.getDefaultRegistry();
|
|
6855
|
-
if (!targetRegistry) throw new Error('No registry specified. Set RESKILL_REGISTRY environment variable or provide registry explicitly.');
|
|
6856
|
-
if (!config.registries) config.registries = {};
|
|
6857
|
-
config.registries[targetRegistry] = {
|
|
6858
|
-
token,
|
|
6859
|
-
...email && {
|
|
6860
|
-
email
|
|
6861
|
-
},
|
|
6862
|
-
...handle && {
|
|
6863
|
-
handle
|
|
6864
|
-
}
|
|
6927
|
+
/**
|
|
6928
|
+
* Build the token settings page URL for a registry
|
|
6929
|
+
*/ function getTokenPageUrl(registry) {
|
|
6930
|
+
const base = registry.endsWith('/') ? registry.slice(0, -1) : registry;
|
|
6931
|
+
return `${base}/skills/tokens`;
|
|
6932
|
+
}
|
|
6933
|
+
const MASK = '••••••••';
|
|
6934
|
+
const CANCELLED = Symbol('cancelled');
|
|
6935
|
+
/**
|
|
6936
|
+
* Erase N characters behind the cursor and clear to end of line.
|
|
6937
|
+
*/ function eraseChars(count) {
|
|
6938
|
+
process.stdout.write(`\x1b[${count}D\x1b[0K`);
|
|
6939
|
+
}
|
|
6940
|
+
/**
|
|
6941
|
+
* Read a line from piped stdin (non-TTY).
|
|
6942
|
+
*/ function readFromPipe() {
|
|
6943
|
+
return new Promise((resolve, reject)=>{
|
|
6944
|
+
const chunks = [];
|
|
6945
|
+
const onData = (chunk)=>chunks.push(chunk);
|
|
6946
|
+
const onEnd = ()=>{
|
|
6947
|
+
cleanup();
|
|
6948
|
+
const value = Buffer.concat(chunks).toString().trim();
|
|
6949
|
+
resolve(value || null);
|
|
6865
6950
|
};
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
*/ readConfig() {
|
|
6881
|
-
try {
|
|
6882
|
-
if (!external_node_fs_.existsSync(this.configPath)) return null;
|
|
6883
|
-
const content = external_node_fs_.readFileSync(this.configPath, 'utf-8');
|
|
6884
|
-
if (!content.trim()) return null;
|
|
6885
|
-
return JSON.parse(content);
|
|
6886
|
-
} catch {
|
|
6887
|
-
return null;
|
|
6888
|
-
}
|
|
6889
|
-
}
|
|
6890
|
-
/**
|
|
6891
|
-
* Write config file
|
|
6892
|
-
*/ writeConfig(config) {
|
|
6893
|
-
const content = JSON.stringify(config, null, 2);
|
|
6894
|
-
external_node_fs_.writeFileSync(this.configPath, content, {
|
|
6895
|
-
mode: 384
|
|
6896
|
-
});
|
|
6897
|
-
}
|
|
6951
|
+
const onError = (err)=>{
|
|
6952
|
+
cleanup();
|
|
6953
|
+
reject(err);
|
|
6954
|
+
};
|
|
6955
|
+
const cleanup = ()=>{
|
|
6956
|
+
process.stdin.removeListener('data', onData);
|
|
6957
|
+
process.stdin.removeListener('end', onEnd);
|
|
6958
|
+
process.stdin.removeListener('error', onError);
|
|
6959
|
+
};
|
|
6960
|
+
process.stdin.on('data', onData);
|
|
6961
|
+
process.stdin.on('end', onEnd);
|
|
6962
|
+
process.stdin.on('error', onError);
|
|
6963
|
+
process.stdin.resume();
|
|
6964
|
+
});
|
|
6898
6965
|
}
|
|
6899
6966
|
/**
|
|
6900
|
-
*
|
|
6967
|
+
* Read token from TTY stdin in raw mode with fixed-length mask feedback.
|
|
6901
6968
|
*
|
|
6902
|
-
*
|
|
6903
|
-
*
|
|
6904
|
-
|
|
6969
|
+
* Returns:
|
|
6970
|
+
* - token string on valid input + Enter
|
|
6971
|
+
* - empty string on empty Enter (no input)
|
|
6972
|
+
* - CANCELLED symbol on Ctrl+C
|
|
6973
|
+
*/ function readFromTTY() {
|
|
6974
|
+
return new Promise((resolve)=>{
|
|
6975
|
+
let input = '';
|
|
6976
|
+
let masked = false;
|
|
6977
|
+
process.stdin.setRawMode(true);
|
|
6978
|
+
process.stdin.resume();
|
|
6979
|
+
process.stdin.setEncoding('utf8');
|
|
6980
|
+
const finish = (value)=>{
|
|
6981
|
+
process.stdin.setRawMode(false);
|
|
6982
|
+
process.stdin.pause();
|
|
6983
|
+
process.stdin.removeAllListeners('data');
|
|
6984
|
+
process.stdout.write('\n');
|
|
6985
|
+
resolve(value);
|
|
6986
|
+
};
|
|
6987
|
+
process.stdin.on('data', (data)=>{
|
|
6988
|
+
for (const ch of data){
|
|
6989
|
+
if ('\r' === ch || '\n' === ch) return finish(input.trim());
|
|
6990
|
+
if ('\x03' === ch) return finish(CANCELLED);
|
|
6991
|
+
if ('\x7f' === ch || '\b' === ch) {
|
|
6992
|
+
// Fixed-length mask can't represent per-char deletion — clear all to let user retry
|
|
6993
|
+
if (input.length > 0) {
|
|
6994
|
+
input = '';
|
|
6995
|
+
if (masked) {
|
|
6996
|
+
eraseChars(MASK.length);
|
|
6997
|
+
masked = false;
|
|
6998
|
+
}
|
|
6999
|
+
}
|
|
7000
|
+
continue;
|
|
7001
|
+
}
|
|
7002
|
+
if (ch >= ' ') {
|
|
7003
|
+
input += ch;
|
|
7004
|
+
if (!masked) {
|
|
7005
|
+
process.stdout.write(MASK);
|
|
7006
|
+
masked = true;
|
|
7007
|
+
}
|
|
7008
|
+
}
|
|
7009
|
+
}
|
|
7010
|
+
});
|
|
7011
|
+
});
|
|
7012
|
+
}
|
|
7013
|
+
/**
|
|
7014
|
+
* Prompt user to paste their access token interactively.
|
|
7015
|
+
* Shows a fixed-length mask on input for visual feedback without revealing token length.
|
|
7016
|
+
* Retries on empty input, returns null only on explicit cancel (Ctrl+C).
|
|
7017
|
+
*/ async function promptForToken(registry) {
|
|
7018
|
+
const tokenPageUrl = getTokenPageUrl(registry);
|
|
7019
|
+
logger_logger.newline();
|
|
7020
|
+
logger_logger.log(` Registry: ${registry}`);
|
|
7021
|
+
logger_logger.newline();
|
|
7022
|
+
logger_logger.log(' To get your access token:');
|
|
7023
|
+
logger_logger.log(` 1. Open ${tokenPageUrl}`);
|
|
7024
|
+
logger_logger.log(' 2. Login and generate an API token');
|
|
7025
|
+
logger_logger.log(' 3. Copy the token and paste it below');
|
|
7026
|
+
logger_logger.newline();
|
|
7027
|
+
if (!process.stdin.isTTY) return readFromPipe();
|
|
7028
|
+
while(true){
|
|
7029
|
+
process.stdout.write(' Paste your access token: ');
|
|
7030
|
+
const result = await readFromTTY();
|
|
7031
|
+
if (result === CANCELLED) return null;
|
|
7032
|
+
if (result.length > 0) return result;
|
|
7033
|
+
logger_logger.warn(' Token cannot be empty. Please try again.');
|
|
7034
|
+
}
|
|
7035
|
+
}
|
|
7036
|
+
// ============================================================================
|
|
6905
7037
|
// Main Action
|
|
6906
7038
|
// ============================================================================
|
|
6907
7039
|
async function loginAction(options) {
|
|
6908
7040
|
const registry = resolveRegistry(options.registry);
|
|
6909
7041
|
const authManager = new AuthManager();
|
|
6910
|
-
|
|
6911
|
-
if (
|
|
6912
|
-
|
|
6913
|
-
|
|
6914
|
-
|
|
6915
|
-
|
|
6916
|
-
|
|
6917
|
-
|
|
6918
|
-
|
|
7042
|
+
let token;
|
|
7043
|
+
if (options.token) token = options.token;
|
|
7044
|
+
else {
|
|
7045
|
+
const prompted = await promptForToken(registry);
|
|
7046
|
+
if (!prompted) {
|
|
7047
|
+
logger_logger.warn('Login cancelled');
|
|
7048
|
+
process.exit(0);
|
|
7049
|
+
}
|
|
7050
|
+
token = prompted;
|
|
6919
7051
|
}
|
|
6920
|
-
await loginWithToken(
|
|
7052
|
+
await loginWithToken(token, registry, authManager);
|
|
6921
7053
|
}
|
|
6922
7054
|
/**
|
|
6923
7055
|
* Login with a pre-generated token from Web UI
|
|
6924
7056
|
*/ async function loginWithToken(token, registry, authManager) {
|
|
6925
7057
|
logger_logger.log(`Verifying token with ${registry}...`);
|
|
6926
7058
|
logger_logger.newline();
|
|
6927
|
-
// Verify token by calling login-cli endpoint
|
|
6928
7059
|
const client = new RegistryClient({
|
|
6929
7060
|
registry,
|
|
6930
7061
|
token
|
|
@@ -6935,7 +7066,6 @@ async function loginAction(options) {
|
|
|
6935
7066
|
logger_logger.error(response.error || 'Token verification failed');
|
|
6936
7067
|
process.exit(1);
|
|
6937
7068
|
}
|
|
6938
|
-
// Save token with handle and email
|
|
6939
7069
|
authManager.setToken(token, registry, response.user.email, response.user.handle);
|
|
6940
7070
|
logger_logger.log('✓ Token verified and saved!');
|
|
6941
7071
|
logger_logger.newline();
|
|
@@ -6956,7 +7086,7 @@ async function loginAction(options) {
|
|
|
6956
7086
|
// ============================================================================
|
|
6957
7087
|
// Command Definition
|
|
6958
7088
|
// ============================================================================
|
|
6959
|
-
const loginCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('login').description('Authenticate with a reskill registry').option('-r, --registry <url>', 'Registry URL (or set RESKILL_REGISTRY env var, or defaults.publishRegistry in skills.json)').option('-t, --token <token>', 'API token from Web UI (
|
|
7089
|
+
const loginCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('login').description('Authenticate with a reskill registry').option('-r, --registry <url>', 'Registry URL (or set RESKILL_REGISTRY env var, or defaults.publishRegistry in skills.json)').option('-t, --token <token>', 'API token from Web UI (skips interactive prompt)').action(loginAction);
|
|
6960
7090
|
/**
|
|
6961
7091
|
* logout command - Log out from a reskill registry
|
|
6962
7092
|
*
|
|
@@ -43,6 +43,7 @@ export declare class RegistryResolver {
|
|
|
43
43
|
*
|
|
44
44
|
* @param ref - Skill reference (e.g., "@kanyun/planning-with-files@2.4.5" or "my-skill@latest")
|
|
45
45
|
* @param overrideRegistryUrl - Optional registry URL override (bypasses scope-based lookup)
|
|
46
|
+
* @param token - Optional auth token for private skill access
|
|
46
47
|
* @returns Resolved skill information including downloaded tarball
|
|
47
48
|
*
|
|
48
49
|
* @example
|
|
@@ -50,7 +51,7 @@ export declare class RegistryResolver {
|
|
|
50
51
|
* console.log(result.shortName); // 'planning-with-files'
|
|
51
52
|
* console.log(result.version); // '2.4.5'
|
|
52
53
|
*/
|
|
53
|
-
resolve(ref: string, overrideRegistryUrl?: string): Promise<RegistryResolveResult>;
|
|
54
|
+
resolve(ref: string, overrideRegistryUrl?: string, token?: string): Promise<RegistryResolveResult>;
|
|
54
55
|
/**
|
|
55
56
|
* Extract tarball to a target directory
|
|
56
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-resolver.d.ts","sourceRoot":"","sources":["../../src/core/registry-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AAQpC,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,gBAAgB;IAC3B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAwC1C
|
|
1
|
+
{"version":3,"file":"registry-resolver.d.ts","sourceRoot":"","sources":["../../src/core/registry-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AAQpC,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,gBAAgB;IAC3B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAwC1C;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA+BxG;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAIf,MAAM,mBAAmB,CAAC;AAmB3B,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,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;IAc/D;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;;OAKG;IACH,aAAa,IAAI,MAAM;IAOvB;;;;;;OAMG;IACH,qBAAqB,IAAI,MAAM;IAM/B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA0BlC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAQjF;;OAEG;YACW,cAAc;IAwF5B;;OAEG;YACW,eAAe;IAwF7B;;OAEG;IACG,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsBzE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA2BhC;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAY7D;;OAEG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmEtD;;;;;;;;;OASG;YACW,kBAAkB;
|
|
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
|
@@ -3705,13 +3705,14 @@ class RegistryResolver {
|
|
|
3705
3705
|
*
|
|
3706
3706
|
* @param ref - Skill reference (e.g., "@kanyun/planning-with-files@2.4.5" or "my-skill@latest")
|
|
3707
3707
|
* @param overrideRegistryUrl - Optional registry URL override (bypasses scope-based lookup)
|
|
3708
|
+
* @param token - Optional auth token for private skill access
|
|
3708
3709
|
* @returns Resolved skill information including downloaded tarball
|
|
3709
3710
|
*
|
|
3710
3711
|
* @example
|
|
3711
3712
|
* const result = await resolver.resolve('@kanyun/planning-with-files@2.4.5');
|
|
3712
3713
|
* console.log(result.shortName); // 'planning-with-files'
|
|
3713
3714
|
* console.log(result.version); // '2.4.5'
|
|
3714
|
-
*/ async resolve(ref, overrideRegistryUrl) {
|
|
3715
|
+
*/ async resolve(ref, overrideRegistryUrl, token) {
|
|
3715
3716
|
// 1. Parse skill identifier
|
|
3716
3717
|
const parsed = parseSkillIdentifier(ref);
|
|
3717
3718
|
const shortName = getShortName(parsed.fullName);
|
|
@@ -3719,7 +3720,8 @@ class RegistryResolver {
|
|
|
3719
3720
|
const registryUrl = overrideRegistryUrl || getRegistryUrl(parsed.scope);
|
|
3720
3721
|
// 3. Create client and resolve version
|
|
3721
3722
|
const client = new RegistryClient({
|
|
3722
|
-
registry: registryUrl
|
|
3723
|
+
registry: registryUrl,
|
|
3724
|
+
token
|
|
3723
3725
|
});
|
|
3724
3726
|
const version = await client.resolveVersion(parsed.fullName, parsed.version);
|
|
3725
3727
|
// 4. Download tarball
|
|
@@ -4129,6 +4131,9 @@ class RegistryResolver {
|
|
|
4129
4131
|
const locked = this.lockManager.get(parsed.name);
|
|
4130
4132
|
if (locked?.registry) return locked.registry;
|
|
4131
4133
|
// Slow path: probe configured registries (skip git hosts)
|
|
4134
|
+
// Note: token is intentionally NOT passed during probe to avoid leaking
|
|
4135
|
+
// credentials to unrelated registries. Token is only used after the
|
|
4136
|
+
// target registry is determined.
|
|
4132
4137
|
const registries = this.config.getRegistries();
|
|
4133
4138
|
for (const [name, url] of Object.entries(registries))if (!this.isGitHostRegistry(name, url)) try {
|
|
4134
4139
|
const client = new RegistryClient({
|
|
@@ -4596,7 +4601,8 @@ class RegistryResolver {
|
|
|
4596
4601
|
const parsed = parseSkillIdentifier(ref);
|
|
4597
4602
|
const registryUrl = await this.resolveRegistryUrl(ref, options.registry);
|
|
4598
4603
|
const client = new RegistryClient({
|
|
4599
|
-
registry: registryUrl
|
|
4604
|
+
registry: registryUrl,
|
|
4605
|
+
token: options.token
|
|
4600
4606
|
});
|
|
4601
4607
|
// Query skill info to determine source_type
|
|
4602
4608
|
let skillInfo;
|
|
@@ -4617,7 +4623,7 @@ class RegistryResolver {
|
|
|
4617
4623
|
});
|
|
4618
4624
|
// 1. Resolve registry skill (pass pre-resolved registryUrl)
|
|
4619
4625
|
logger_logger["package"](`Resolving ${ref} from registry...`);
|
|
4620
|
-
const resolved = await this.registryResolver.resolve(ref, registryUrl);
|
|
4626
|
+
const resolved = await this.registryResolver.resolve(ref, registryUrl, options.token);
|
|
4621
4627
|
const { shortName, version, registryUrl: resolvedRegistryUrl, tarball, parsed: resolvedParsed } = resolved;
|
|
4622
4628
|
// 2. Check if already installed (skip if --force)
|
|
4623
4629
|
const skillPath = this.getSkillPath(shortName);
|
|
@@ -4827,7 +4833,8 @@ class RegistryResolver {
|
|
|
4827
4833
|
const version = 'latest';
|
|
4828
4834
|
// Download tarball via RegistryClient (handles auth + 302 redirect to signed URL)
|
|
4829
4835
|
const client = new RegistryClient({
|
|
4830
|
-
registry: registryUrl
|
|
4836
|
+
registry: registryUrl,
|
|
4837
|
+
token: options.token
|
|
4831
4838
|
});
|
|
4832
4839
|
const { tarball } = await client.downloadSkill(parsed.fullName, version);
|
|
4833
4840
|
logger_logger["package"](`Installing ${shortName} from ${registryUrl} to ${targetAgents.length} agent(s)...`);
|
package/dist/types/index.d.ts
CHANGED
|
@@ -244,6 +244,8 @@ export interface InstallOptions {
|
|
|
244
244
|
yes?: boolean;
|
|
245
245
|
/** Registry URL override (for registry-based installs) */
|
|
246
246
|
registry?: string;
|
|
247
|
+
/** Auth token for registry API requests (enables private skill access) */
|
|
248
|
+
token?: string;
|
|
247
249
|
/** Registry context for web-published skills (carries registry name through Git/HTTP install) */
|
|
248
250
|
registryContext?: RegistryInstallContext;
|
|
249
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|