reskill 1.19.0 → 1.20.1
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 +12 -6
- package/README.zh-CN.md +12 -6
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/index.js +71 -11
- package/dist/core/config-loader.d.ts +8 -0
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/git-resolver.d.ts +5 -0
- package/dist/core/git-resolver.d.ts.map +1 -1
- package/dist/core/lock-manager.d.ts +8 -0
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts +7 -0
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/index.js +57 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -76,8 +76,13 @@ npx reskill@latest <command> # Or use npx directly
|
|
|
76
76
|
| `-f, --force` | `install` | Force reinstall even if already installed |
|
|
77
77
|
| `-s, --skill <names...>` | `install` | Select specific skill(s) by name from a multi-skill repo |
|
|
78
78
|
| `--list` | `install` | List available skills in the repository without installing |
|
|
79
|
+
| `--skip-manifest` | `install` | Skip all `skills.json` and `skills.lock` writes (for platform integration) |
|
|
79
80
|
| `-t, --token <token>` | `install`, `find`, `group`, `publish`, `login` | Auth token for registry API requests (for CI/CD) |
|
|
80
81
|
| `-r, --registry <url>` | `install`, `find`, `group`, `publish`, `login`, `logout`, `whoami` | Registry URL override for registry-enabled commands |
|
|
82
|
+
| `--tag <tag>` | `publish` | Git tag to publish |
|
|
83
|
+
| `--access <level>` | `publish` | Access level: `public` (default) or `restricted` |
|
|
84
|
+
| `-n, --dry-run` | `publish` | Validate without publishing |
|
|
85
|
+
| `-g, --group <path>` | `publish` | Publish skill into a group (e.g., `kanyun/frontend`) |
|
|
81
86
|
| `-j, --json` | `list`, `info`, `outdated`, `doctor`, `group`, `find` | Output as JSON |
|
|
82
87
|
| `-l, --limit <n>` | `find` | Maximum number of search results |
|
|
83
88
|
| `--skip-network` | `doctor` | Skip network connectivity checks |
|
|
@@ -293,12 +298,13 @@ reskill install @scope/private-skill --registry https://your-registry.com --toke
|
|
|
293
298
|
|
|
294
299
|
| Variable | Description | Default |
|
|
295
300
|
| ------------------- | ----------------------------------------------- | ------------------------------ |
|
|
296
|
-
| `RESKILL_CACHE_DIR`
|
|
297
|
-
| `RESKILL_TOKEN`
|
|
298
|
-
| `RESKILL_REGISTRY`
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
301
|
-
| `
|
|
301
|
+
| `RESKILL_CACHE_DIR` | Global cache directory | `~/.reskill-cache` |
|
|
302
|
+
| `RESKILL_TOKEN` | Auth token (takes precedence over ~/.reskillrc) | - |
|
|
303
|
+
| `RESKILL_REGISTRY` | Default registry URL | `https://registry.reskill.dev` |
|
|
304
|
+
| `RESKILL_NO_MANIFEST` | Skip `skills.json` and `skills.lock` writes (set to `1` to enable) | - |
|
|
305
|
+
| `DEBUG` | Enable debug logging | - |
|
|
306
|
+
| `VERBOSE` | Enable debug logging (same effect as `DEBUG`) | - |
|
|
307
|
+
| `NO_COLOR` | Disable colored output | - |
|
|
302
308
|
|
|
303
309
|
reskill checks for newer versions in the background and shows an upgrade tip after command execution.
|
|
304
310
|
|
package/README.zh-CN.md
CHANGED
|
@@ -76,8 +76,13 @@ npx reskill@latest <command> # 或直接使用 npx
|
|
|
76
76
|
| `-f, --force` | `install` | 强制重新安装 |
|
|
77
77
|
| `-s, --skill <names...>` | `install` | 从多 skill 仓库中选择指定 skill |
|
|
78
78
|
| `--list` | `install` | 列出仓库中可用的 skills(不安装) |
|
|
79
|
+
| `--skip-manifest` | `install` | 跳过 `skills.json` 和 `skills.lock` 写入(用于平台集成) |
|
|
79
80
|
| `-t, --token <token>` | `install`, `find`, `group`, `publish`, `login` | 认证令牌(用于 CI/CD 访问私有 skill) |
|
|
80
81
|
| `-r, --registry <url>` | `install`, `find`, `group`, `publish`, `login`, `logout`, `whoami` | 覆盖 registry URL(用于 registry 相关命令) |
|
|
82
|
+
| `--tag <tag>` | `publish` | 发布的 Git tag |
|
|
83
|
+
| `--access <level>` | `publish` | 访问级别:`public`(默认)或 `restricted` |
|
|
84
|
+
| `-n, --dry-run` | `publish` | 仅验证不发布 |
|
|
85
|
+
| `-g, --group <path>` | `publish` | 发布到指定分组(如 `kanyun/frontend`) |
|
|
81
86
|
| `-j, --json` | `list`, `info`, `outdated`, `doctor`, `group`, `find` | JSON 格式输出 |
|
|
82
87
|
| `-l, --limit <n>` | `find` | 限制搜索结果数量 |
|
|
83
88
|
| `--skip-network` | `doctor` | 跳过网络连通性检查 |
|
|
@@ -293,12 +298,13 @@ reskill install @scope/private-skill --registry https://your-registry.com --toke
|
|
|
293
298
|
|
|
294
299
|
| 变量 | 说明 | 默认值 |
|
|
295
300
|
| ------------------- | ------------------------------- | ------------------------------ |
|
|
296
|
-
| `RESKILL_CACHE_DIR`
|
|
297
|
-
| `RESKILL_TOKEN`
|
|
298
|
-
| `RESKILL_REGISTRY`
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
301
|
-
| `
|
|
301
|
+
| `RESKILL_CACHE_DIR` | 全局缓存目录 | `~/.reskill-cache` |
|
|
302
|
+
| `RESKILL_TOKEN` | 认证令牌(优先于 ~/.reskillrc) | - |
|
|
303
|
+
| `RESKILL_REGISTRY` | 默认 registry URL | `https://registry.reskill.dev` |
|
|
304
|
+
| `RESKILL_NO_MANIFEST` | 跳过 `skills.json` 和 `skills.lock` 写入(设为 `1` 启用) | - |
|
|
305
|
+
| `DEBUG` | 启用调试日志 | - |
|
|
306
|
+
| `VERBOSE` | 启用调试日志(与 `DEBUG` 等效) | - |
|
|
307
|
+
| `NO_COLOR` | 禁用彩色输出 | - |
|
|
302
308
|
|
|
303
309
|
reskill 会在后台检查新版本,并在命令执行后提示升级信息。
|
|
304
310
|
|
|
@@ -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;AAq6BpC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,SAuHvB,CAAC;AAEL,eAAe,cAAc,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2132,6 +2132,20 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2132
2132
|
return __WEBPACK_EXTERNAL_MODULE_node_path__.join(this.projectRoot, installDir);
|
|
2133
2133
|
}
|
|
2134
2134
|
// ==========================================================================
|
|
2135
|
+
// No-Manifest Mode (platform integration)
|
|
2136
|
+
// ==========================================================================
|
|
2137
|
+
_noManifest = false;
|
|
2138
|
+
/**
|
|
2139
|
+
* Enable/disable no-manifest mode.
|
|
2140
|
+
* When enabled, all write operations (save, create, addSkill, updateDefaults,
|
|
2141
|
+
* addRegistry) become no-ops. Read operations are unaffected.
|
|
2142
|
+
*/ setNoManifest(enabled) {
|
|
2143
|
+
this._noManifest = enabled;
|
|
2144
|
+
}
|
|
2145
|
+
get noManifest() {
|
|
2146
|
+
return this._noManifest;
|
|
2147
|
+
}
|
|
2148
|
+
// ==========================================================================
|
|
2135
2149
|
// File Operations
|
|
2136
2150
|
// ==========================================================================
|
|
2137
2151
|
/**
|
|
@@ -2167,7 +2181,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2167
2181
|
*/ save(config) {
|
|
2168
2182
|
const toSave = config ?? this.config;
|
|
2169
2183
|
if (!toSave) throw new Error('No config to save');
|
|
2170
|
-
writeJson(this.configPath, toSave);
|
|
2184
|
+
if (!this._noManifest) writeJson(this.configPath, toSave);
|
|
2171
2185
|
this.config = toSave;
|
|
2172
2186
|
}
|
|
2173
2187
|
/**
|
|
@@ -2175,6 +2189,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2175
2189
|
*
|
|
2176
2190
|
* @returns true if file was created, false if it already existed
|
|
2177
2191
|
*/ ensureExists() {
|
|
2192
|
+
if (this._noManifest) return false;
|
|
2178
2193
|
if (this.exists()) return false;
|
|
2179
2194
|
this.create();
|
|
2180
2195
|
return true;
|
|
@@ -2237,6 +2252,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2237
2252
|
*
|
|
2238
2253
|
* @param updates - Partial defaults to merge
|
|
2239
2254
|
*/ updateDefaults(updates) {
|
|
2255
|
+
if (this._noManifest) return;
|
|
2240
2256
|
this.ensureConfigLoaded();
|
|
2241
2257
|
if (this.config) {
|
|
2242
2258
|
this.config.defaults = {
|
|
@@ -2372,6 +2388,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2372
2388
|
*
|
|
2373
2389
|
* Also auto-adds the registry to the registries field if it's a well-known registry.
|
|
2374
2390
|
*/ addSkill(name, ref) {
|
|
2391
|
+
if (this._noManifest) return;
|
|
2375
2392
|
this.ensureConfigLoaded();
|
|
2376
2393
|
if (this.config) {
|
|
2377
2394
|
this.config.skills[name] = ref;
|
|
@@ -2392,6 +2409,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2392
2409
|
* @param name - Registry name (e.g., 'github', 'gitlab', 'internal')
|
|
2393
2410
|
* @param url - Registry URL (e.g., 'https://github.com')
|
|
2394
2411
|
*/ addRegistry(name, url) {
|
|
2412
|
+
if (this._noManifest) return;
|
|
2395
2413
|
if (!this.config) // Config not loaded - this is expected when called before load()/create()
|
|
2396
2414
|
// Callers like addSkill() ensure config is loaded before calling this
|
|
2397
2415
|
return;
|
|
@@ -2425,6 +2443,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2425
2443
|
*
|
|
2426
2444
|
* @returns true if skill was removed, false if it didn't exist
|
|
2427
2445
|
*/ removeSkill(name) {
|
|
2446
|
+
if (this._noManifest) return false;
|
|
2428
2447
|
this.ensureConfigLoaded();
|
|
2429
2448
|
if (this.config?.skills[name]) {
|
|
2430
2449
|
delete this.config.skills[name];
|
|
@@ -2675,10 +2694,15 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2675
2694
|
}
|
|
2676
2695
|
/**
|
|
2677
2696
|
* Parse version specification
|
|
2697
|
+
*
|
|
2698
|
+
* When no version spec is provided, returns `type: 'default'` so that
|
|
2699
|
+
* `resolveVersion` auto-detects the repo's real default branch via HEAD.
|
|
2700
|
+
* Previously this returned `branch:main`, which broke installs for repos
|
|
2701
|
+
* whose default branch is not `main` (e.g. self-hosted GitLab with `master`).
|
|
2678
2702
|
*/ parseVersion(versionSpec) {
|
|
2679
2703
|
if (!versionSpec) return {
|
|
2680
|
-
type: '
|
|
2681
|
-
value: '
|
|
2704
|
+
type: 'default',
|
|
2705
|
+
value: '',
|
|
2682
2706
|
raw: ''
|
|
2683
2707
|
};
|
|
2684
2708
|
const raw = versionSpec;
|
|
@@ -2779,6 +2803,14 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2779
2803
|
ref: versionSpec.value,
|
|
2780
2804
|
commit: versionSpec.value
|
|
2781
2805
|
};
|
|
2806
|
+
case 'default':
|
|
2807
|
+
{
|
|
2808
|
+
// No version spec: clone the repository's real default branch.
|
|
2809
|
+
const defaultBranch = await getDefaultBranch(repoUrl);
|
|
2810
|
+
return {
|
|
2811
|
+
ref: defaultBranch
|
|
2812
|
+
};
|
|
2813
|
+
}
|
|
2782
2814
|
default:
|
|
2783
2815
|
throw new Error(`Unknown version type: ${versionSpec.type}`);
|
|
2784
2816
|
}
|
|
@@ -3018,11 +3050,22 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3018
3050
|
projectRoot;
|
|
3019
3051
|
lockPath;
|
|
3020
3052
|
lockData = null;
|
|
3053
|
+
_noManifest = false;
|
|
3021
3054
|
constructor(projectRoot){
|
|
3022
3055
|
this.projectRoot = projectRoot || process.cwd();
|
|
3023
3056
|
this.lockPath = getSkillsLockPath(this.projectRoot);
|
|
3024
3057
|
}
|
|
3025
3058
|
/**
|
|
3059
|
+
* Enable/disable no-manifest mode.
|
|
3060
|
+
* When enabled, disk write operations (save, set, remove) become no-ops.
|
|
3061
|
+
* lockSkill() still returns a LockedSkill but does not persist it.
|
|
3062
|
+
*/ setNoManifest(enabled) {
|
|
3063
|
+
this._noManifest = enabled;
|
|
3064
|
+
}
|
|
3065
|
+
get noManifest() {
|
|
3066
|
+
return this._noManifest;
|
|
3067
|
+
}
|
|
3068
|
+
/**
|
|
3026
3069
|
* Get lock file path
|
|
3027
3070
|
*/ getLockPath() {
|
|
3028
3071
|
return this.lockPath;
|
|
@@ -3060,6 +3103,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3060
3103
|
/**
|
|
3061
3104
|
* Save lock file
|
|
3062
3105
|
*/ save(lockToSave) {
|
|
3106
|
+
if (this._noManifest) return;
|
|
3063
3107
|
const toSave = lockToSave || this.lockData;
|
|
3064
3108
|
if (!toSave) throw new Error('No lock to save');
|
|
3065
3109
|
writeJson(this.lockPath, toSave);
|
|
@@ -3076,11 +3120,12 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3076
3120
|
*/ set(name, skill) {
|
|
3077
3121
|
const lock = this.load();
|
|
3078
3122
|
lock.skills[name] = skill;
|
|
3079
|
-
this.save();
|
|
3123
|
+
if (!this._noManifest) this.save();
|
|
3080
3124
|
}
|
|
3081
3125
|
/**
|
|
3082
3126
|
* Remove locked skill
|
|
3083
3127
|
*/ remove(name) {
|
|
3128
|
+
if (this._noManifest) return false;
|
|
3084
3129
|
const lock = this.load();
|
|
3085
3130
|
if (lock.skills[name]) {
|
|
3086
3131
|
delete lock.skills[name];
|
|
@@ -3966,6 +4011,14 @@ class RegistryResolver {
|
|
|
3966
4011
|
this.resolver = new GitResolver('github', void 0, (registryName)=>this.config.getRegistryUrl(registryName));
|
|
3967
4012
|
this.httpResolver = new HttpResolver();
|
|
3968
4013
|
this.registryResolver = new RegistryResolver();
|
|
4014
|
+
if (options?.noManifest ?? '1' === process.env.RESKILL_NO_MANIFEST) this.setNoManifest(true);
|
|
4015
|
+
}
|
|
4016
|
+
/**
|
|
4017
|
+
* Enable/disable no-manifest mode on both ConfigLoader and LockManager.
|
|
4018
|
+
* When enabled, no skills.json or skills.lock writes occur.
|
|
4019
|
+
*/ setNoManifest(enabled) {
|
|
4020
|
+
this.config.setNoManifest(enabled);
|
|
4021
|
+
this.lockManager.setNoManifest(enabled);
|
|
3969
4022
|
}
|
|
3970
4023
|
/**
|
|
3971
4024
|
* Check if in global mode
|
|
@@ -7167,7 +7220,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7167
7220
|
storedMode,
|
|
7168
7221
|
isReinstallAll: 0 === skills.length,
|
|
7169
7222
|
isBatchInstall: skills.length > 1,
|
|
7170
|
-
skipConfirm: options.yes ?? false
|
|
7223
|
+
skipConfirm: options.yes ?? false,
|
|
7224
|
+
skipManifest: options.skipManifest ?? false
|
|
7171
7225
|
};
|
|
7172
7226
|
}
|
|
7173
7227
|
// ============================================================================
|
|
@@ -7357,7 +7411,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7357
7411
|
// Execute installation (no confirmation for reinstall all)
|
|
7358
7412
|
spinner.start('Installing skills...');
|
|
7359
7413
|
const skillManager = new SkillManager(void 0, {
|
|
7360
|
-
global: false
|
|
7414
|
+
global: false,
|
|
7415
|
+
noManifest: ctx.skipManifest
|
|
7361
7416
|
});
|
|
7362
7417
|
let totalInstalled = 0;
|
|
7363
7418
|
let totalFailed = 0;
|
|
@@ -7392,7 +7447,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7392
7447
|
const skill = skills[0];
|
|
7393
7448
|
const cwd = process.cwd();
|
|
7394
7449
|
const skillManager = new SkillManager(void 0, {
|
|
7395
|
-
global: installGlobally
|
|
7450
|
+
global: installGlobally,
|
|
7451
|
+
noManifest: ctx.skipManifest
|
|
7396
7452
|
});
|
|
7397
7453
|
// Detect whether the ref points to a multi-skill directory
|
|
7398
7454
|
spinner.start('Resolving skill...');
|
|
@@ -7508,7 +7564,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7508
7564
|
* Multi-skill path: list or install selected skills from a single repo (--skill / --list)
|
|
7509
7565
|
*/ async function installMultiSkillFromRepo(ref, skillNames, listOnly, ctx, targetAgents, installGlobally, installMode, spinner) {
|
|
7510
7566
|
const skillManager = new SkillManager(void 0, {
|
|
7511
|
-
global: installGlobally
|
|
7567
|
+
global: installGlobally,
|
|
7568
|
+
noManifest: ctx.skipManifest
|
|
7512
7569
|
});
|
|
7513
7570
|
if (listOnly) {
|
|
7514
7571
|
spinner.start('Discovering skills...');
|
|
@@ -7601,7 +7658,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7601
7658
|
}
|
|
7602
7659
|
// Execute installation for all skills in parallel
|
|
7603
7660
|
const skillManager = new SkillManager(void 0, {
|
|
7604
|
-
global: installGlobally
|
|
7661
|
+
global: installGlobally,
|
|
7662
|
+
noManifest: ctx.skipManifest
|
|
7605
7663
|
});
|
|
7606
7664
|
const successfulSkills = [];
|
|
7607
7665
|
const failedSkills = [];
|
|
@@ -7740,7 +7798,7 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7740
7798
|
* Behavior:
|
|
7741
7799
|
* - Single skill install: Prompts for agents/mode (stored config as defaults)
|
|
7742
7800
|
* - Reinstall all (no args): Uses stored config directly, no confirmation
|
|
7743
|
-
*/ 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)=>{
|
|
7801
|
+
*/ 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)').option('--skip-manifest', 'Skip all skills.json and skills.lock writes (for platform integration)').action(async (skills, options)=>{
|
|
7744
7802
|
// Handle --all flag implications
|
|
7745
7803
|
if (options.all) {
|
|
7746
7804
|
options.yes = true;
|
|
@@ -7752,6 +7810,8 @@ const DEFAULT_INSTALL_DIR = '.skills';
|
|
|
7752
7810
|
const token = authManager.getToken(options.registry);
|
|
7753
7811
|
if (token) options.token = token;
|
|
7754
7812
|
}
|
|
7813
|
+
// Resolve skip-manifest mode: --skip-manifest flag > RESKILL_NO_MANIFEST env
|
|
7814
|
+
if (!options.skipManifest && '1' === process.env.RESKILL_NO_MANIFEST) options.skipManifest = true;
|
|
7755
7815
|
// Create execution context
|
|
7756
7816
|
const ctx = createInstallContext(skills, options);
|
|
7757
7817
|
// Print banner
|
|
@@ -9565,7 +9625,7 @@ async function publishAction(skillPath, options) {
|
|
|
9565
9625
|
// ============================================================================
|
|
9566
9626
|
// Command Definition
|
|
9567
9627
|
// ============================================================================
|
|
9568
|
-
const publishCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('publish').alias('pub').description('Publish a skill to the registry').argument('[path]', 'Path to skill directory', '.').option('-r, --registry <url>', 'Registry URL (or set RESKILL_REGISTRY env var, or defaults.publishRegistry in skills.json)').option('
|
|
9628
|
+
const publishCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('publish').alias('pub').description('Publish a skill to the registry').argument('[path]', 'Path to skill directory', '.').option('-r, --registry <url>', 'Registry URL (or set RESKILL_REGISTRY env var, or defaults.publishRegistry in skills.json)').option('--tag <tag>', 'Git tag to publish').option('--access <level>', 'Access level: public or restricted', 'public').option('-n, --dry-run', 'Validate without publishing').option('-y, --yes', 'Skip confirmation prompts').option('-g, --group <path>', 'Publish skill into a group (e.g., "kanyun/frontend")').option('-t, --token <token>', 'Auth token for registry API requests (for CI/CD)').action(publishAction);
|
|
9569
9629
|
/**
|
|
9570
9630
|
* uninstall command - Uninstall one or more skills
|
|
9571
9631
|
*/ const uninstallCommand = new __WEBPACK_EXTERNAL_MODULE_commander__.Command('uninstall').alias('un').alias('remove').alias('rm').description('Uninstall one or more skills').argument('<skills...>', 'Skill names to uninstall').option('-g, --global', 'Uninstall from global installation (~/.claude/skills)').option('-y, --yes', 'Skip confirmation prompts').action(async (skillNames, options)=>{
|
|
@@ -38,6 +38,14 @@ export declare class ConfigLoader {
|
|
|
38
38
|
* Get installation directory (resolved absolute path)
|
|
39
39
|
*/
|
|
40
40
|
getInstallDir(): string;
|
|
41
|
+
private _noManifest;
|
|
42
|
+
/**
|
|
43
|
+
* Enable/disable no-manifest mode.
|
|
44
|
+
* When enabled, all write operations (save, create, addSkill, updateDefaults,
|
|
45
|
+
* addRegistry) become no-ops. Read operations are unaffected.
|
|
46
|
+
*/
|
|
47
|
+
setNoManifest(enabled: boolean): void;
|
|
48
|
+
get noManifest(): boolean;
|
|
41
49
|
/**
|
|
42
50
|
* Check if configuration file exists
|
|
43
51
|
*/
|
|
@@ -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;AAiCpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AAMF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,WAAW,CAAC,EAAE,MAAM;IAShC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,aAAa,IAAI,MAAM;IASvB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;OAIG;IACH,IAAI,IAAI,UAAU;IAiBlB;;OAEG;IACH,MAAM,IAAI,UAAU;IAKpB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;
|
|
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;AAiCpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AAMF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,WAAW,CAAC,EAAE,MAAM;IAShC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,aAAa,IAAI,MAAM;IASvB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC,IAAI,UAAU,IAAI,OAAO,CAExB;IAMD;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;OAIG;IACH,IAAI,IAAI,UAAU;IAiBlB;;OAEG;IACH,MAAM,IAAI,UAAU;IAKpB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IAW/B;;;;OAIG;IACH,YAAY,IAAI,OAAO;IASvB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU;IAwBjD;;;;;;OAMG;IACH,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC,GAAG;QACjE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC;IAYD;;;;;;OAMG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAKxC;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAiBtD;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQvC;;;;;;;OAOG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiB5C;;;;;;;;OAQG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA2BnD;;;;;;;;;OASG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoBtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAiBzC;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB5C;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;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;IAS7C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAK3B;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -70,6 +70,11 @@ export declare class GitResolver {
|
|
|
70
70
|
private parseGitUrlRef;
|
|
71
71
|
/**
|
|
72
72
|
* Parse version specification
|
|
73
|
+
*
|
|
74
|
+
* When no version spec is provided, returns `type: 'default'` so that
|
|
75
|
+
* `resolveVersion` auto-detects the repo's real default branch via HEAD.
|
|
76
|
+
* Previously this returned `branch:main`, which broke installs for repos
|
|
77
|
+
* whose default branch is not `main` (e.g. self-hosted GitLab with `master`).
|
|
73
78
|
*/
|
|
74
79
|
parseVersion(versionSpec?: string): ParsedVersion;
|
|
75
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-resolver.d.ts","sourceRoot":"","sources":["../../src/core/git-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUvF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;IAErD;;;;;;OAMG;gBAED,eAAe,GAAE,MAAiB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC;;;;;;;;OAQG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAoB5C;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IA0ErC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;IAqFtB
|
|
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,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUvF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;IAErD;;;;;;OAMG;gBAED,eAAe,GAAE,MAAiB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC;;;;;;;;OAQG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAoB5C;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IA0ErC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;IAqFtB;;;;;;;OAOG;IACH,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IA+BjD;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAU5C;;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;IAwD5C;;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"}
|
|
@@ -12,7 +12,15 @@ export declare class LockManager {
|
|
|
12
12
|
private projectRoot;
|
|
13
13
|
private lockPath;
|
|
14
14
|
private lockData;
|
|
15
|
+
private _noManifest;
|
|
15
16
|
constructor(projectRoot?: string);
|
|
17
|
+
/**
|
|
18
|
+
* Enable/disable no-manifest mode.
|
|
19
|
+
* When enabled, disk write operations (save, set, remove) become no-ops.
|
|
20
|
+
* lockSkill() still returns a LockedSkill but does not persist it.
|
|
21
|
+
*/
|
|
22
|
+
setNoManifest(enabled: boolean): void;
|
|
23
|
+
get noManifest(): boolean;
|
|
16
24
|
/**
|
|
17
25
|
* Get lock file path
|
|
18
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA2B;
|
|
1
|
+
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAKhC;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;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;IAUnC;;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;IAQ3C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAW7B;;OAEG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,WAAW;IAmBd;;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"}
|
|
@@ -9,6 +9,8 @@ import { type ParsedSkillWithPath } from './skill-parser.js';
|
|
|
9
9
|
export interface SkillManagerOptions {
|
|
10
10
|
/** Global mode, install to ~/.agents/skills/ */
|
|
11
11
|
global?: boolean;
|
|
12
|
+
/** Skip all skills.json and skills.lock writes (platform integration mode) */
|
|
13
|
+
noManifest?: boolean;
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* SkillManager - Core Skill management class
|
|
@@ -30,6 +32,11 @@ export declare class SkillManager {
|
|
|
30
32
|
private lockManager;
|
|
31
33
|
private isGlobal;
|
|
32
34
|
constructor(projectRoot?: string, options?: SkillManagerOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Enable/disable no-manifest mode on both ConfigLoader and LockManager.
|
|
37
|
+
* When enabled, no skills.json or skills.lock writes occur.
|
|
38
|
+
*/
|
|
39
|
+
setNoManifest(enabled: boolean): void;
|
|
33
40
|
/**
|
|
34
41
|
* Check if in global mode
|
|
35
42
|
*/
|
|
@@ -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;AAoB3B,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;
|
|
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
|
@@ -2259,6 +2259,20 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2259
2259
|
return __WEBPACK_EXTERNAL_MODULE_node_path__.join(this.projectRoot, installDir);
|
|
2260
2260
|
}
|
|
2261
2261
|
// ==========================================================================
|
|
2262
|
+
// No-Manifest Mode (platform integration)
|
|
2263
|
+
// ==========================================================================
|
|
2264
|
+
_noManifest = false;
|
|
2265
|
+
/**
|
|
2266
|
+
* Enable/disable no-manifest mode.
|
|
2267
|
+
* When enabled, all write operations (save, create, addSkill, updateDefaults,
|
|
2268
|
+
* addRegistry) become no-ops. Read operations are unaffected.
|
|
2269
|
+
*/ setNoManifest(enabled) {
|
|
2270
|
+
this._noManifest = enabled;
|
|
2271
|
+
}
|
|
2272
|
+
get noManifest() {
|
|
2273
|
+
return this._noManifest;
|
|
2274
|
+
}
|
|
2275
|
+
// ==========================================================================
|
|
2262
2276
|
// File Operations
|
|
2263
2277
|
// ==========================================================================
|
|
2264
2278
|
/**
|
|
@@ -2294,7 +2308,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2294
2308
|
*/ save(config) {
|
|
2295
2309
|
const toSave = config ?? this.config;
|
|
2296
2310
|
if (!toSave) throw new Error('No config to save');
|
|
2297
|
-
writeJson(this.configPath, toSave);
|
|
2311
|
+
if (!this._noManifest) writeJson(this.configPath, toSave);
|
|
2298
2312
|
this.config = toSave;
|
|
2299
2313
|
}
|
|
2300
2314
|
/**
|
|
@@ -2302,6 +2316,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2302
2316
|
*
|
|
2303
2317
|
* @returns true if file was created, false if it already existed
|
|
2304
2318
|
*/ ensureExists() {
|
|
2319
|
+
if (this._noManifest) return false;
|
|
2305
2320
|
if (this.exists()) return false;
|
|
2306
2321
|
this.create();
|
|
2307
2322
|
return true;
|
|
@@ -2364,6 +2379,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2364
2379
|
*
|
|
2365
2380
|
* @param updates - Partial defaults to merge
|
|
2366
2381
|
*/ updateDefaults(updates) {
|
|
2382
|
+
if (this._noManifest) return;
|
|
2367
2383
|
this.ensureConfigLoaded();
|
|
2368
2384
|
if (this.config) {
|
|
2369
2385
|
this.config.defaults = {
|
|
@@ -2499,6 +2515,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2499
2515
|
*
|
|
2500
2516
|
* Also auto-adds the registry to the registries field if it's a well-known registry.
|
|
2501
2517
|
*/ addSkill(name, ref) {
|
|
2518
|
+
if (this._noManifest) return;
|
|
2502
2519
|
this.ensureConfigLoaded();
|
|
2503
2520
|
if (this.config) {
|
|
2504
2521
|
this.config.skills[name] = ref;
|
|
@@ -2519,6 +2536,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2519
2536
|
* @param name - Registry name (e.g., 'github', 'gitlab', 'internal')
|
|
2520
2537
|
* @param url - Registry URL (e.g., 'https://github.com')
|
|
2521
2538
|
*/ addRegistry(name, url) {
|
|
2539
|
+
if (this._noManifest) return;
|
|
2522
2540
|
if (!this.config) // Config not loaded - this is expected when called before load()/create()
|
|
2523
2541
|
// Callers like addSkill() ensure config is loaded before calling this
|
|
2524
2542
|
return;
|
|
@@ -2552,6 +2570,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2552
2570
|
*
|
|
2553
2571
|
* @returns true if skill was removed, false if it didn't exist
|
|
2554
2572
|
*/ removeSkill(name) {
|
|
2573
|
+
if (this._noManifest) return false;
|
|
2555
2574
|
this.ensureConfigLoaded();
|
|
2556
2575
|
if (this.config?.skills[name]) {
|
|
2557
2576
|
delete this.config.skills[name];
|
|
@@ -2802,10 +2821,15 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2802
2821
|
}
|
|
2803
2822
|
/**
|
|
2804
2823
|
* Parse version specification
|
|
2824
|
+
*
|
|
2825
|
+
* When no version spec is provided, returns `type: 'default'` so that
|
|
2826
|
+
* `resolveVersion` auto-detects the repo's real default branch via HEAD.
|
|
2827
|
+
* Previously this returned `branch:main`, which broke installs for repos
|
|
2828
|
+
* whose default branch is not `main` (e.g. self-hosted GitLab with `master`).
|
|
2805
2829
|
*/ parseVersion(versionSpec) {
|
|
2806
2830
|
if (!versionSpec) return {
|
|
2807
|
-
type: '
|
|
2808
|
-
value: '
|
|
2831
|
+
type: 'default',
|
|
2832
|
+
value: '',
|
|
2809
2833
|
raw: ''
|
|
2810
2834
|
};
|
|
2811
2835
|
const raw = versionSpec;
|
|
@@ -2906,6 +2930,14 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
2906
2930
|
ref: versionSpec.value,
|
|
2907
2931
|
commit: versionSpec.value
|
|
2908
2932
|
};
|
|
2933
|
+
case 'default':
|
|
2934
|
+
{
|
|
2935
|
+
// No version spec: clone the repository's real default branch.
|
|
2936
|
+
const defaultBranch = await getDefaultBranch(repoUrl);
|
|
2937
|
+
return {
|
|
2938
|
+
ref: defaultBranch
|
|
2939
|
+
};
|
|
2940
|
+
}
|
|
2909
2941
|
default:
|
|
2910
2942
|
throw new Error(`Unknown version type: ${versionSpec.type}`);
|
|
2911
2943
|
}
|
|
@@ -3145,11 +3177,22 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3145
3177
|
projectRoot;
|
|
3146
3178
|
lockPath;
|
|
3147
3179
|
lockData = null;
|
|
3180
|
+
_noManifest = false;
|
|
3148
3181
|
constructor(projectRoot){
|
|
3149
3182
|
this.projectRoot = projectRoot || process.cwd();
|
|
3150
3183
|
this.lockPath = getSkillsLockPath(this.projectRoot);
|
|
3151
3184
|
}
|
|
3152
3185
|
/**
|
|
3186
|
+
* Enable/disable no-manifest mode.
|
|
3187
|
+
* When enabled, disk write operations (save, set, remove) become no-ops.
|
|
3188
|
+
* lockSkill() still returns a LockedSkill but does not persist it.
|
|
3189
|
+
*/ setNoManifest(enabled) {
|
|
3190
|
+
this._noManifest = enabled;
|
|
3191
|
+
}
|
|
3192
|
+
get noManifest() {
|
|
3193
|
+
return this._noManifest;
|
|
3194
|
+
}
|
|
3195
|
+
/**
|
|
3153
3196
|
* Get lock file path
|
|
3154
3197
|
*/ getLockPath() {
|
|
3155
3198
|
return this.lockPath;
|
|
@@ -3187,6 +3230,7 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3187
3230
|
/**
|
|
3188
3231
|
* Save lock file
|
|
3189
3232
|
*/ save(lockToSave) {
|
|
3233
|
+
if (this._noManifest) return;
|
|
3190
3234
|
const toSave = lockToSave || this.lockData;
|
|
3191
3235
|
if (!toSave) throw new Error('No lock to save');
|
|
3192
3236
|
writeJson(this.lockPath, toSave);
|
|
@@ -3203,11 +3247,12 @@ ${CURSOR_BRIDGE_MARKER}
|
|
|
3203
3247
|
*/ set(name, skill) {
|
|
3204
3248
|
const lock = this.load();
|
|
3205
3249
|
lock.skills[name] = skill;
|
|
3206
|
-
this.save();
|
|
3250
|
+
if (!this._noManifest) this.save();
|
|
3207
3251
|
}
|
|
3208
3252
|
/**
|
|
3209
3253
|
* Remove locked skill
|
|
3210
3254
|
*/ remove(name) {
|
|
3255
|
+
if (this._noManifest) return false;
|
|
3211
3256
|
const lock = this.load();
|
|
3212
3257
|
if (lock.skills[name]) {
|
|
3213
3258
|
delete lock.skills[name];
|
|
@@ -4351,6 +4396,14 @@ class RegistryResolver {
|
|
|
4351
4396
|
this.resolver = new GitResolver('github', void 0, (registryName)=>this.config.getRegistryUrl(registryName));
|
|
4352
4397
|
this.httpResolver = new HttpResolver();
|
|
4353
4398
|
this.registryResolver = new RegistryResolver();
|
|
4399
|
+
if (options?.noManifest ?? '1' === process.env.RESKILL_NO_MANIFEST) this.setNoManifest(true);
|
|
4400
|
+
}
|
|
4401
|
+
/**
|
|
4402
|
+
* Enable/disable no-manifest mode on both ConfigLoader and LockManager.
|
|
4403
|
+
* When enabled, no skills.json or skills.lock writes occur.
|
|
4404
|
+
*/ setNoManifest(enabled) {
|
|
4405
|
+
this.config.setNoManifest(enabled);
|
|
4406
|
+
this.lockManager.setNoManifest(enabled);
|
|
4354
4407
|
}
|
|
4355
4408
|
/**
|
|
4356
4409
|
* Check if in global mode
|
package/dist/types/index.d.ts
CHANGED
|
@@ -184,7 +184,7 @@ export interface ParsedSkillRef {
|
|
|
184
184
|
/**
|
|
185
185
|
* Version type
|
|
186
186
|
*/
|
|
187
|
-
export type VersionType = 'exact' | 'latest' | 'range' | 'branch' | 'commit';
|
|
187
|
+
export type VersionType = 'exact' | 'latest' | 'range' | 'branch' | 'commit' | 'default';
|
|
188
188
|
/**
|
|
189
189
|
* Parsed version information
|
|
190
190
|
*/
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMxE;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAEvC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AACH,YAAY,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,YAAY,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,aAAa,GACd,MAAM,4BAA4B,CAAC;AAMpC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,oDAAoD;IACpD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC3C;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,6BAA6B;IAC7B,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,SAAS,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,wBAAwB;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;AAE/F;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|