vskill 0.4.14 → 0.4.16
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.
|
@@ -183,25 +183,23 @@ afterEach(() => {
|
|
|
183
183
|
// Tests: interactive-first default (prompts in TTY)
|
|
184
184
|
// ---------------------------------------------------------------------------
|
|
185
185
|
describe("wizard integration: interactive by default in TTY", () => {
|
|
186
|
-
it("prompts for agents and
|
|
186
|
+
it("prompts for agents and method by default for multi-skill repos", async () => {
|
|
187
187
|
const agents = [makeAgent(), makeAgent({ id: "cursor", displayName: "Cursor", localSkillsDir: ".cursor/skills" })];
|
|
188
188
|
mockDetectInstalledAgents.mockResolvedValue(agents);
|
|
189
189
|
mockDiscoverSkills.mockResolvedValue([
|
|
190
190
|
{ name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
|
|
191
191
|
{ name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
|
|
192
192
|
]);
|
|
193
|
-
// Agent selection,
|
|
193
|
+
// Agent selection, method selection, skill selection (no scope prompt)
|
|
194
194
|
mockPromptCheckboxList
|
|
195
195
|
.mockResolvedValueOnce([0, 1]) // agents
|
|
196
196
|
.mockResolvedValueOnce([0, 1]); // skills
|
|
197
|
-
mockPromptChoice
|
|
198
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
199
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
197
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
|
|
200
198
|
await addCommand("owner/repo", {});
|
|
201
199
|
// Agent checkbox + skill checkbox
|
|
202
200
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
|
|
203
|
-
//
|
|
204
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
201
|
+
// Method prompt only (scope prompt removed)
|
|
202
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
205
203
|
});
|
|
206
204
|
});
|
|
207
205
|
describe("wizard integration: --yes flag (backward compat)", () => {
|
|
@@ -226,16 +224,14 @@ describe("wizard integration: --select is a no-op (interactive is default)", ()
|
|
|
226
224
|
{ name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
|
|
227
225
|
{ name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
|
|
228
226
|
]);
|
|
229
|
-
// 1 detected + 1 undetected from registry → agent checkbox +
|
|
227
|
+
// 1 detected + 1 undetected from registry → agent checkbox + method + skill checkbox (no scope)
|
|
230
228
|
mockPromptCheckboxList
|
|
231
229
|
.mockResolvedValueOnce([0]) // agents: select detected only
|
|
232
230
|
.mockResolvedValueOnce([0, 1]); // skills
|
|
233
|
-
mockPromptChoice
|
|
234
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
235
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
231
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
|
|
236
232
|
await addCommand("owner/repo", { select: true });
|
|
237
|
-
//
|
|
238
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
233
|
+
// Method prompt only (scope removed)
|
|
234
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
239
235
|
// Agent checkbox + skill checkbox
|
|
240
236
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
|
|
241
237
|
});
|
|
@@ -255,8 +251,8 @@ describe("wizard integration: non-TTY mode", () => {
|
|
|
255
251
|
expect(mockPromptConfirm).not.toHaveBeenCalled();
|
|
256
252
|
});
|
|
257
253
|
});
|
|
258
|
-
describe("wizard integration: single skill
|
|
259
|
-
it("shows
|
|
254
|
+
describe("wizard integration: single skill prompts for method", () => {
|
|
255
|
+
it("shows method prompt and agent checkbox for single-skill with undetected agents", async () => {
|
|
260
256
|
const agents = [makeAgent()];
|
|
261
257
|
mockDetectInstalledAgents.mockResolvedValue(agents);
|
|
262
258
|
mockDiscoverSkills.mockResolvedValue([
|
|
@@ -264,34 +260,30 @@ describe("wizard integration: single skill still prompts for scope", () => {
|
|
|
264
260
|
]);
|
|
265
261
|
// 1 detected + 1 undetected → agent checkbox shown
|
|
266
262
|
mockPromptCheckboxList.mockResolvedValueOnce([0]); // agents: select detected
|
|
267
|
-
mockPromptChoice
|
|
268
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
269
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
263
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
|
|
270
264
|
await addCommand("owner/repo", {});
|
|
271
265
|
// Agent checkbox shown (detected + undetected agents in list)
|
|
272
266
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(1);
|
|
273
|
-
//
|
|
274
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
267
|
+
// Method prompt only (scope removed)
|
|
268
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
275
269
|
});
|
|
276
270
|
});
|
|
277
271
|
describe("wizard integration: --agent flag skips agent selection", () => {
|
|
278
|
-
it("does not prompt for agents but still prompts for
|
|
272
|
+
it("does not prompt for agents but still prompts for method", async () => {
|
|
279
273
|
const agents = [makeAgent()];
|
|
280
274
|
mockDetectInstalledAgents.mockResolvedValue(agents);
|
|
281
275
|
mockDiscoverSkills.mockResolvedValue([
|
|
282
276
|
{ name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
|
|
283
277
|
{ name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
|
|
284
278
|
]);
|
|
285
|
-
//
|
|
286
|
-
mockPromptChoice
|
|
287
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
288
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
279
|
+
// Method selection + skill selection (no agent checkbox since --agent, no scope prompt)
|
|
280
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
|
|
289
281
|
mockPromptCheckboxList.mockResolvedValue([0, 1]); // select all skills
|
|
290
282
|
await addCommand("owner/repo", { agent: ["claude-code"] });
|
|
291
283
|
// Skill checkbox called, agent checkbox NOT called (--agent flag)
|
|
292
284
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(1);
|
|
293
|
-
//
|
|
294
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
285
|
+
// Method prompt only (scope removed)
|
|
286
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
295
287
|
});
|
|
296
288
|
});
|
|
297
289
|
describe("wizard integration: --global flag skips scope selection", () => {
|
|
@@ -332,9 +324,9 @@ describe("wizard integration: abort at agent selection", () => {
|
|
|
332
324
|
expect(mockInstallCopy).not.toHaveBeenCalled();
|
|
333
325
|
});
|
|
334
326
|
});
|
|
335
|
-
// TC-014: Single-agent detected shows agents +
|
|
336
|
-
describe("wizard integration: TC-014 single-agent prompts agents +
|
|
337
|
-
it("shows agent checkbox with detected+undetected,
|
|
327
|
+
// TC-014: Single-agent detected shows agents + method + skills (undetected shown too)
|
|
328
|
+
describe("wizard integration: TC-014 single-agent prompts agents + method + skills", () => {
|
|
329
|
+
it("shows agent checkbox with detected+undetected, method, and skills", async () => {
|
|
338
330
|
const agents = [makeAgent()];
|
|
339
331
|
mockDetectInstalledAgents.mockResolvedValue(agents);
|
|
340
332
|
mockDiscoverSkills.mockResolvedValue([
|
|
@@ -345,21 +337,19 @@ describe("wizard integration: TC-014 single-agent prompts agents + scope + skill
|
|
|
345
337
|
mockPromptCheckboxList
|
|
346
338
|
.mockResolvedValueOnce([0]) // agents: select detected
|
|
347
339
|
.mockResolvedValueOnce([0, 1]); // select both skills
|
|
348
|
-
mockPromptChoice
|
|
349
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
350
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
340
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
|
|
351
341
|
await addCommand("owner/repo", {});
|
|
352
342
|
// Agent checkbox + skill checkbox
|
|
353
343
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
|
|
354
|
-
//
|
|
355
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
344
|
+
// Method prompt only (scope removed)
|
|
345
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
356
346
|
// Installation proceeded (via canonical installer)
|
|
357
347
|
expect(mockInstallSymlink).toHaveBeenCalled();
|
|
358
348
|
});
|
|
359
349
|
});
|
|
360
|
-
// TC-015: Multi-agent shows agents +
|
|
361
|
-
describe("wizard integration: TC-015 multi-agent prompts agents +
|
|
362
|
-
it("shows agent checkbox,
|
|
350
|
+
// TC-015: Multi-agent shows agents + method + skills
|
|
351
|
+
describe("wizard integration: TC-015 multi-agent prompts agents + method + skills", () => {
|
|
352
|
+
it("shows agent checkbox, method selection, and skill checkbox", async () => {
|
|
363
353
|
const agents = [makeAgent(), makeAgent({ id: "cursor", displayName: "Cursor" })];
|
|
364
354
|
mockDetectInstalledAgents.mockResolvedValue(agents);
|
|
365
355
|
mockDiscoverSkills.mockResolvedValue([
|
|
@@ -369,14 +359,12 @@ describe("wizard integration: TC-015 multi-agent prompts agents + scope + skills
|
|
|
369
359
|
mockPromptCheckboxList
|
|
370
360
|
.mockResolvedValueOnce([0, 1]) // agents
|
|
371
361
|
.mockResolvedValueOnce([0, 1]); // skills
|
|
372
|
-
mockPromptChoice
|
|
373
|
-
.mockResolvedValueOnce(0) // scope: project
|
|
374
|
-
.mockResolvedValueOnce(0); // method: symlink
|
|
362
|
+
mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
|
|
375
363
|
await addCommand("owner/repo", {});
|
|
376
364
|
// Two checkbox prompts: agents + skills
|
|
377
365
|
expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
|
|
378
|
-
//
|
|
379
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
366
|
+
// Method prompt only (scope removed)
|
|
367
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(1);
|
|
380
368
|
});
|
|
381
369
|
});
|
|
382
370
|
// TC-016: --copy flag causes copy behavior instead of symlink
|
|
@@ -388,15 +376,14 @@ describe("wizard integration: TC-016 --copy flag", () => {
|
|
|
388
376
|
{ name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
|
|
389
377
|
{ name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
|
|
390
378
|
]);
|
|
391
|
-
// Agent checkbox + skill checkbox
|
|
379
|
+
// Agent checkbox + skill checkbox (no scope, no method since --copy)
|
|
392
380
|
mockPromptCheckboxList
|
|
393
381
|
.mockResolvedValueOnce([0]) // agents: select detected
|
|
394
382
|
.mockResolvedValueOnce([0, 1]); // skills
|
|
395
|
-
mockPromptChoice.mockResolvedValueOnce(0); // scope: project (method skipped)
|
|
396
383
|
// Should not throw - --copy is a valid flag
|
|
397
384
|
await addCommand("owner/repo", { copy: true });
|
|
398
|
-
//
|
|
399
|
-
expect(mockPromptChoice).toHaveBeenCalledTimes(
|
|
385
|
+
// Both scope and method prompts skipped (scope removed, method skipped by --copy)
|
|
386
|
+
expect(mockPromptChoice).toHaveBeenCalledTimes(0);
|
|
400
387
|
// Uses installCopy, not installSymlink
|
|
401
388
|
expect(mockInstallCopy).toHaveBeenCalled();
|
|
402
389
|
expect(mockInstallSymlink).not.toHaveBeenCalled();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-wizard.test.js","sourceRoot":"","sources":["../../src/commands/add-wizard.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-wizard.test.js","sourceRoot":"","sources":["../../src/commands/add-wizard.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/add.js
CHANGED
|
@@ -23,7 +23,6 @@ import { parseSkillsShUrl, isCompleteParsed, isIncompleteParsed, } from "../reso
|
|
|
23
23
|
import { bold, green, red, yellow, dim, cyan, spinner, link, formatInstalls, } from "../utils/output.js";
|
|
24
24
|
import { isTTY, createPrompter } from "../utils/prompts.js";
|
|
25
25
|
import { installSymlink, installCopy } from "../installer/canonical.js";
|
|
26
|
-
import { isClaudeCliAvailable, registerMarketplace, deregisterMarketplace, installNativePlugin, uninstallNativePlugin, } from "../utils/claude-cli.js";
|
|
27
26
|
import { getMarketplaceName } from "../marketplace/index.js";
|
|
28
27
|
async function parseManifestFromContentsApi(data) {
|
|
29
28
|
// Prefer download_url for raw content
|
|
@@ -109,8 +108,7 @@ export async function detectMarketplaceRepo(owner, repo) {
|
|
|
109
108
|
* Install plugins from a Claude Code plugin marketplace repo.
|
|
110
109
|
*
|
|
111
110
|
* Shows a checkbox list of available plugins (all unchecked by default),
|
|
112
|
-
* then installs each selected plugin via
|
|
113
|
-
* Falls back to extraction-based install if Claude CLI is unavailable.
|
|
111
|
+
* then installs each selected plugin via file-system extraction to agent skill dirs.
|
|
114
112
|
*/
|
|
115
113
|
async function installMarketplaceRepo(owner, repo, manifestContent, opts, preSelected) {
|
|
116
114
|
const plugins = getAvailablePlugins(manifestContent);
|
|
@@ -264,8 +262,6 @@ async function installMarketplaceRepo(owner, repo, manifestContent, opts, preSel
|
|
|
264
262
|
}
|
|
265
263
|
usedInteractiveCheckbox = true;
|
|
266
264
|
}
|
|
267
|
-
// Attempt native Claude Code install
|
|
268
|
-
const hasClaude = !opts.copy && isClaudeCliAvailable();
|
|
269
265
|
// Uninstall plugins that were previously installed but now unchecked
|
|
270
266
|
const selectedNames = new Set([
|
|
271
267
|
...selectedPlugins.map((p) => p.name),
|
|
@@ -293,10 +289,6 @@ async function installMarketplaceRepo(owner, repo, manifestContent, opts, preSel
|
|
|
293
289
|
}
|
|
294
290
|
}
|
|
295
291
|
}
|
|
296
|
-
// Uninstall from Claude Code native plugin system
|
|
297
|
-
if (hasClaude && marketplaceName) {
|
|
298
|
-
uninstallNativePlugin(skillName, marketplaceName);
|
|
299
|
-
}
|
|
300
292
|
// Remove from lockfile
|
|
301
293
|
removeSkillFromLock(skillName, lockDir);
|
|
302
294
|
console.log(red(` ✗ ${bold(skillName)} uninstalled`) + (removedCount > 0 ? dim(` (${removedCount} location${removedCount === 1 ? "" : "s"})`) : ""));
|
|
@@ -390,48 +382,8 @@ async function installMarketplaceRepo(owner, repo, manifestContent, opts, preSel
|
|
|
390
382
|
selectedUnregistered = [];
|
|
391
383
|
}
|
|
392
384
|
}
|
|
393
|
-
// ── Step 1: Optional Claude Code native plugin install ──────────────
|
|
394
|
-
let marketplaceRegistered = false;
|
|
395
385
|
const results = [];
|
|
396
|
-
|
|
397
|
-
let wantNative = false;
|
|
398
|
-
if (isTTY() && !opts.yes) {
|
|
399
|
-
const prompter = createPrompter();
|
|
400
|
-
wantNative = await prompter.promptConfirm("Claude Code detected. Install selected plugins as native Claude Code plugins?", true);
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
// Non-interactive or --yes: install as native plugin by default
|
|
404
|
-
wantNative = true;
|
|
405
|
-
}
|
|
406
|
-
if (wantNative && marketplaceName) {
|
|
407
|
-
const gitUrl = `https://github.com/${owner}/${repo}`;
|
|
408
|
-
const regSpin = spinner("Registering marketplace with Claude Code");
|
|
409
|
-
let regResult = registerMarketplace(gitUrl);
|
|
410
|
-
if (!regResult.success) {
|
|
411
|
-
deregisterMarketplace(gitUrl);
|
|
412
|
-
regResult = registerMarketplace(gitUrl);
|
|
413
|
-
}
|
|
414
|
-
marketplaceRegistered = regResult.success;
|
|
415
|
-
regSpin.stop();
|
|
416
|
-
if (marketplaceRegistered) {
|
|
417
|
-
for (const plugin of selectedPlugins) {
|
|
418
|
-
const installSpin = spinner(`Installing ${bold(plugin.name)} via Claude Code plugin system`);
|
|
419
|
-
const ok = installNativePlugin(plugin.name, marketplaceName, opts.global ? "user" : "project");
|
|
420
|
-
installSpin.stop();
|
|
421
|
-
if (ok) {
|
|
422
|
-
console.log(green(` ✓ ${bold(plugin.name)}`) + dim(` (${marketplaceName}:${plugin.name})`));
|
|
423
|
-
}
|
|
424
|
-
else {
|
|
425
|
-
console.log(yellow(` ⚠ ${bold(plugin.name)}`) + dim(" — native install failed"));
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
else {
|
|
430
|
-
console.log(yellow(" Failed to register marketplace — skipping native install."));
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
// ── Step 2: Agent selection + skill file install (ALWAYS) ──────────
|
|
386
|
+
// ── Step 1: Agent selection + skill file install ──────────
|
|
435
387
|
const branch = await getDefaultBranch(owner, repo);
|
|
436
388
|
let agents = await detectInstalledAgents();
|
|
437
389
|
const selections = await promptInstallOptions(agents, opts);
|
|
@@ -562,9 +514,6 @@ async function installMarketplaceRepo(owner, repo, manifestContent, opts, preSel
|
|
|
562
514
|
else {
|
|
563
515
|
console.log(dim("\nNo changes made."));
|
|
564
516
|
}
|
|
565
|
-
if (hasClaude && marketplaceRegistered && marketplaceName) {
|
|
566
|
-
console.log(dim(`\nManage: claude plugin list | claude plugin uninstall "<plugin>@${marketplaceName}"`));
|
|
567
|
-
}
|
|
568
517
|
}
|
|
569
518
|
// ---------------------------------------------------------------------------
|
|
570
519
|
// Command file filter (prevents plugin internals leaking as slash commands)
|
|
@@ -622,97 +571,17 @@ function copyPluginFiltered(sourceDir, targetDir, relBase = "") {
|
|
|
622
571
|
// Plugin cache cleanup
|
|
623
572
|
// ---------------------------------------------------------------------------
|
|
624
573
|
/**
|
|
625
|
-
* Remove
|
|
626
|
-
*
|
|
627
|
-
* causing internal .md files to leak as ghost slash commands.
|
|
628
|
-
*
|
|
629
|
-
* Uses `claude plugin uninstall` CLI to properly remove the plugin through
|
|
630
|
-
* Claude Code's own API rather than directly manipulating internal files.
|
|
574
|
+
* Remove stale plugin cache from ~/.claude/plugins/cache/.
|
|
575
|
+
* Previous native installs may have left cached files that leak as ghost slash commands.
|
|
631
576
|
*/
|
|
632
577
|
function cleanPluginCache(pluginName, marketplace) {
|
|
633
|
-
const
|
|
578
|
+
const cacheDir = join(resolveTilde("~/.claude/plugins/cache"), marketplace, pluginName);
|
|
634
579
|
try {
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
catch { /* ignore - plugin might not be installed via CLI */ }
|
|
638
|
-
}
|
|
639
|
-
// ---------------------------------------------------------------------------
|
|
640
|
-
// Native Claude Code plugin install
|
|
641
|
-
// ---------------------------------------------------------------------------
|
|
642
|
-
/**
|
|
643
|
-
* Check if a path is inside the OS temp directory (e.g. /var/folders/.../T/).
|
|
644
|
-
* Temp dirs get cleaned up, making registered marketplace paths stale.
|
|
645
|
-
*/
|
|
646
|
-
function isTempPath(p) {
|
|
647
|
-
const tmpDir = os.tmpdir();
|
|
648
|
-
return p.startsWith(tmpDir);
|
|
649
|
-
}
|
|
650
|
-
/**
|
|
651
|
-
* Attempt to install a plugin via Claude Code's native plugin system.
|
|
652
|
-
*
|
|
653
|
-
* Returns true if native install succeeded (Claude Code should be excluded
|
|
654
|
-
* from the extraction agent list). Returns false if native install was
|
|
655
|
-
* skipped or failed (fall back to extraction).
|
|
656
|
-
*
|
|
657
|
-
* Conditions for native install:
|
|
658
|
-
* - `claude` CLI is available on PATH
|
|
659
|
-
* - --copy flag is NOT set
|
|
660
|
-
* - User opts in (interactive prompt) OR --yes flag is set
|
|
661
|
-
*/
|
|
662
|
-
async function tryNativeClaudeInstall(marketplacePath, marketplaceContent, pluginName, opts, gitUrl) {
|
|
663
|
-
if (opts.copy)
|
|
664
|
-
return false;
|
|
665
|
-
if (!isClaudeCliAvailable())
|
|
666
|
-
return false;
|
|
667
|
-
const marketplaceName = getMarketplaceName(marketplaceContent);
|
|
668
|
-
if (!marketplaceName)
|
|
669
|
-
return false;
|
|
670
|
-
// Guard: refuse to register temp dirs (they get deleted after install)
|
|
671
|
-
if (!gitUrl && isTempPath(marketplacePath)) {
|
|
672
|
-
console.log(yellow(" Cannot register temp directory as marketplace — falling back to extraction."));
|
|
673
|
-
return false;
|
|
674
|
-
}
|
|
675
|
-
// Prompt user unless --yes
|
|
676
|
-
if (isTTY() && !opts.yes) {
|
|
677
|
-
const prompter = createPrompter();
|
|
678
|
-
const choice = await prompter.promptChoice("Claude Code plugin install method:", [
|
|
679
|
-
{ label: "Native plugin install", hint: `recommended — enables ${marketplaceName}:${pluginName} namespacing` },
|
|
680
|
-
{ label: "Extract skills individually", hint: "copies files to .claude/skills/ directory" },
|
|
681
|
-
]);
|
|
682
|
-
if (choice !== 0)
|
|
683
|
-
return false;
|
|
684
|
-
}
|
|
685
|
-
// Register marketplace — prefer git URL (persistent) over local path
|
|
686
|
-
const registrationSource = gitUrl || marketplacePath;
|
|
687
|
-
const regSpin = spinner("Registering marketplace with Claude Code");
|
|
688
|
-
let regResult = registerMarketplace(registrationSource);
|
|
689
|
-
// Retry once after deregistering stale entry
|
|
690
|
-
if (!regResult.success) {
|
|
691
|
-
deregisterMarketplace(registrationSource);
|
|
692
|
-
regResult = registerMarketplace(registrationSource);
|
|
693
|
-
}
|
|
694
|
-
if (!regResult.success) {
|
|
695
|
-
regSpin.stop();
|
|
696
|
-
console.log(yellow(" Failed to register marketplace — falling back to extraction."));
|
|
697
|
-
if (regResult.stderr) {
|
|
698
|
-
console.log(dim(` Reason: ${regResult.stderr}`));
|
|
580
|
+
if (existsSync(cacheDir)) {
|
|
581
|
+
rmSync(cacheDir, { recursive: true, force: true });
|
|
699
582
|
}
|
|
700
|
-
return false;
|
|
701
|
-
}
|
|
702
|
-
regSpin.stop();
|
|
703
|
-
// Install plugin
|
|
704
|
-
const installSpin = spinner(`Installing ${pluginName} via Claude Code plugin system`);
|
|
705
|
-
const installed = installNativePlugin(pluginName, marketplaceName, opts.global ? "user" : "project");
|
|
706
|
-
if (!installed) {
|
|
707
|
-
installSpin.stop();
|
|
708
|
-
console.log(yellow(" Native install failed — falling back to extraction."));
|
|
709
|
-
return false;
|
|
710
583
|
}
|
|
711
|
-
|
|
712
|
-
console.log(green(` ${bold(pluginName)} installed as native Claude Code plugin`));
|
|
713
|
-
console.log(dim(` Namespace: ${marketplaceName}:${pluginName}`));
|
|
714
|
-
console.log(dim(` Manage: claude plugin list | claude plugin uninstall "${pluginName}@${marketplaceName}"`));
|
|
715
|
-
return true;
|
|
584
|
+
catch { /* ignore - cache dir might not exist */ }
|
|
716
585
|
}
|
|
717
586
|
/**
|
|
718
587
|
* Resolve the project root for skill installation, with a HOME-directory guard.
|
|
@@ -816,15 +685,8 @@ async function promptInstallOptions(agents, opts) {
|
|
|
816
685
|
console.log(dim(`\nDetected agent: ${agents[0].displayName}`));
|
|
817
686
|
}
|
|
818
687
|
}
|
|
819
|
-
// Scope
|
|
820
|
-
|
|
821
|
-
const prompter2 = createPrompter();
|
|
822
|
-
const scopeIdx = await prompter2.promptChoice("Installation scope:", [
|
|
823
|
-
{ label: "Project", hint: "install in current project root" },
|
|
824
|
-
{ label: "Global", hint: "install in user home directory" },
|
|
825
|
-
]);
|
|
826
|
-
useGlobal = scopeIdx === 1;
|
|
827
|
-
}
|
|
688
|
+
// Scope: always project unless --global flag was explicitly passed
|
|
689
|
+
useGlobal = !!opts.global;
|
|
828
690
|
// Installation method (skip if --copy explicitly set)
|
|
829
691
|
let useSymlink = !opts.copy;
|
|
830
692
|
if (!opts.copy) {
|
|
@@ -1061,40 +923,25 @@ async function installPluginDir(basePath, pluginName, opts) {
|
|
|
1061
923
|
const mktPath = join(basePath, ".claude-plugin", "marketplace.json");
|
|
1062
924
|
const mktContent = readFileSync(mktPath, "utf-8");
|
|
1063
925
|
const version = getPluginVersion(pluginName, mktContent) || "0.0.0";
|
|
1064
|
-
//
|
|
1065
|
-
// Extract git remote URL (used for both native Claude install and install tracking)
|
|
926
|
+
// Extract git remote URL for install tracking
|
|
1066
927
|
let gitUrl;
|
|
1067
928
|
try {
|
|
1068
929
|
gitUrl = execSync("git remote get-url origin", { cwd: resolve(basePath), stdio: ["pipe", "pipe", "ignore"], timeout: 5_000 })
|
|
1069
930
|
.toString().trim() || undefined;
|
|
1070
931
|
}
|
|
1071
932
|
catch { /* not a git repo or no remote — use local path */ }
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
// Filter Claude Code out of extraction if native install succeeded
|
|
1078
|
-
const extractionAgents = claudeNativeSuccess
|
|
1079
|
-
? selectedAgents.filter((a) => a.id !== "claude-code")
|
|
1080
|
-
: selectedAgents;
|
|
1081
|
-
// Clean stale plugin cache only when NOT using native install
|
|
1082
|
-
if (!claudeNativeSuccess) {
|
|
1083
|
-
try {
|
|
1084
|
-
const marketplaceName = JSON.parse(mktContent).name;
|
|
1085
|
-
if (marketplaceName) {
|
|
1086
|
-
cleanPluginCache(pluginName, marketplaceName);
|
|
1087
|
-
}
|
|
933
|
+
// Clean stale plugin cache
|
|
934
|
+
try {
|
|
935
|
+
const marketplaceName = JSON.parse(mktContent).name;
|
|
936
|
+
if (marketplaceName) {
|
|
937
|
+
cleanPluginCache(pluginName, marketplaceName);
|
|
1088
938
|
}
|
|
1089
|
-
catch { /* ignore parse errors */ }
|
|
1090
939
|
}
|
|
940
|
+
catch { /* ignore parse errors */ }
|
|
1091
941
|
// Install: recursively copy plugin directory to each agent
|
|
1092
942
|
const sha = createHash("sha256").update(content).digest("hex").slice(0, 12);
|
|
1093
943
|
const locations = [];
|
|
1094
|
-
|
|
1095
|
-
locations.push("Claude Code: native plugin");
|
|
1096
|
-
}
|
|
1097
|
-
for (const agent of extractionAgents) {
|
|
944
|
+
for (const agent of selectedAgents) {
|
|
1098
945
|
const cacheDir = join(resolveInstallBase(opts, agent), pluginName);
|
|
1099
946
|
try {
|
|
1100
947
|
// Full clean before copy: removes stale files from older installs
|
|
@@ -1461,13 +1308,6 @@ async function installRepoPlugin(ownerRepo, pluginName, opts, overrideSource) {
|
|
|
1461
1308
|
opts.global = true;
|
|
1462
1309
|
if (!selections.symlink)
|
|
1463
1310
|
opts.copy = true;
|
|
1464
|
-
// Native Claude Code plugin install is only available for local plugins.
|
|
1465
|
-
// Remote plugins require marketplace registration with a local path.
|
|
1466
|
-
const hasClaude = selectedAgents.some((a) => a.id === "claude-code");
|
|
1467
|
-
if (hasClaude && !opts.copy) {
|
|
1468
|
-
console.log(dim("\n Note: Native Claude Code plugin install requires a local path.") +
|
|
1469
|
-
dim("\n Use --plugin-dir for native install. Extracting skills for Claude Code.\n"));
|
|
1470
|
-
}
|
|
1471
1311
|
// Compute project root for consistent lockfile + skill locations
|
|
1472
1312
|
const projectRoot = safeProjectRoot(opts);
|
|
1473
1313
|
// Install skills and commands with namespace prefix
|