skillmds 1.3.4 → 1.3.5
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/CHANGELOG.md +4 -0
- package/dist/cli.js +7 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `skillmds` are documented here. Versions follow [semver](https://semver.org).
|
|
4
4
|
|
|
5
|
+
## 1.3.5
|
|
6
|
+
|
|
7
|
+
- **The agent picker now says why Claude Code isn't in it.** `add plugin:owner/slug` installs the plugin into Claude Code as a real plugin first, then asks which other agents should get its skills, leaving Claude Code out so it doesn't get the same skills twice. The question read "Which agents do you want to install to?", and the confirmation only printed after the run, so the list looked as if Claude Code hadn't been detected. It now asks: `Claude Code already has <plugin> as a plugin. Which other agents should get its skills too?`
|
|
8
|
+
|
|
5
9
|
## 1.3.4
|
|
6
10
|
|
|
7
11
|
- **A companion file that its source repo no longer serves no longer fails the install.** When a registry pack links to a file the upstream repo has since deleted or moved, `add` (and the MCP install tool) now installs everything else and warns which files are missing, e.g. `1 companion file is gone from the source repo and was not installed (scripts/gone.ts)`. Before, one such link failed the whole bundle and `add owner/name` fell back to fetching the slug as a GitHub repo, ending in a misleading 404 with nothing installed. `update` stays strict: it never replaces a full install with a partial one.
|
package/dist/cli.js
CHANGED
|
@@ -856,11 +856,14 @@ async function promptScopeInteractive(ctx) {
|
|
|
856
856
|
});
|
|
857
857
|
return p3.isCancel(choice) ? null : choice;
|
|
858
858
|
}
|
|
859
|
+
function agentsPromptMessage(managed) {
|
|
860
|
+
return managed ? `Claude Code already has ${managed} as a plugin. Which other agents should get its skills too?` : "Which agents do you want to install to?";
|
|
861
|
+
}
|
|
859
862
|
async function promptAgentsInteractive(ctx) {
|
|
860
863
|
if (ctx.detected.length < 2) return ctx.detected;
|
|
861
864
|
const remembered = (readConfig().lastAgents ?? []).filter((id) => ctx.detected.includes(id));
|
|
862
865
|
const picked = await p3.multiselect({
|
|
863
|
-
message:
|
|
866
|
+
message: agentsPromptMessage(ctx.managed),
|
|
864
867
|
options: ctx.detected.map((id) => ({ value: id, label: id, hint: ctx.dirFor(id) })),
|
|
865
868
|
initialValues: remembered.length ? remembered : ctx.detected,
|
|
866
869
|
required: true
|
|
@@ -1210,7 +1213,7 @@ function gate(flags, deps, candidates) {
|
|
|
1210
1213
|
}
|
|
1211
1214
|
return null;
|
|
1212
1215
|
}
|
|
1213
|
-
async function chooseTargets(flags, deps, scope, detected) {
|
|
1216
|
+
async function chooseTargets(flags, deps, scope, detected, managed) {
|
|
1214
1217
|
const notices = [];
|
|
1215
1218
|
let targets = flags.agent?.length ? flags.agent : detected.length ? detected : ["claude-code"];
|
|
1216
1219
|
if (scope.global) {
|
|
@@ -1222,7 +1225,7 @@ async function chooseTargets(flags, deps, scope, detected) {
|
|
|
1222
1225
|
targets = kept;
|
|
1223
1226
|
}
|
|
1224
1227
|
if (!flags.agent?.length && deps.promptAgents && !flags.yes && !flags.json && !detectHostAgent(flags.env ?? process.env)) {
|
|
1225
|
-
const picked = await deps.promptAgents({ detected: targets, dirFor: (id) => agentDir(id, scope) });
|
|
1228
|
+
const picked = await deps.promptAgents({ detected: targets, dirFor: (id) => agentDir(id, scope), ...managed ? { managed } : {} });
|
|
1226
1229
|
if (picked === null) return null;
|
|
1227
1230
|
targets = picked;
|
|
1228
1231
|
if (flags.home === void 0 && picked.length) {
|
|
@@ -1354,7 +1357,7 @@ async function runAdd(arg, flags, deps) {
|
|
|
1354
1357
|
const notices = resolved.note ? [infoNotice(resolved.note)] : [];
|
|
1355
1358
|
notices.push(...managedNotices);
|
|
1356
1359
|
const detected = detectAgents(scope).filter((id) => id !== managed?.agent);
|
|
1357
|
-
const chosen = await chooseTargets(flags, d, scope, detected);
|
|
1360
|
+
const chosen = await chooseTargets(flags, d, scope, detected, managed?.name);
|
|
1358
1361
|
if (!chosen) return finish2(flags, { kind: "cancel" });
|
|
1359
1362
|
notices.push(...chosen.notices);
|
|
1360
1363
|
const ctx = { arg, flags, deny: new Set(flags.deny ?? []), scope, targets: chosen.targets, env, deps: d };
|
package/package.json
CHANGED