vskill 1.0.20 → 1.1.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 +2 -0
- package/agents.json +1 -1
- package/dist/agents/agents-registry.d.ts +7 -0
- package/dist/agents/agents-registry.js +4 -0
- package/dist/agents/agents-registry.js.map +1 -1
- package/dist/bin.js +0 -0
- package/dist/commands/add.d.ts +7 -0
- package/dist/commands/add.js +220 -59
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/check.d.ts +41 -4
- package/dist/commands/check.js +112 -25
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/cleanup.d.ts +0 -1
- package/dist/commands/cleanup.js +71 -80
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/remove.js +97 -61
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/update.js +15 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/discovery/github-tree.js +56 -0
- package/dist/discovery/github-tree.js.map +1 -1
- package/dist/eval-server/api-routes.js +16 -10
- package/dist/eval-server/api-routes.js.map +1 -1
- package/dist/eval-server/git-routes.js +132 -2
- package/dist/eval-server/git-routes.js.map +1 -1
- package/dist/eval-server/plugin-cli-routes.js +14 -2
- package/dist/eval-server/plugin-cli-routes.js.map +1 -1
- package/dist/eval-server/plugin-cli.js +4 -1
- package/dist/eval-server/plugin-cli.js.map +1 -1
- package/dist/eval-server/source-link.js +3 -0
- package/dist/eval-server/source-link.js.map +1 -1
- package/dist/eval-server/utils/which.js +7 -1
- package/dist/eval-server/utils/which.js.map +1 -1
- package/dist/eval-ui/assets/{CreateSkillPage-gG-MYioa.js → CreateSkillPage-ENMve2K8.js} +1 -1
- package/dist/eval-ui/assets/{FindSkillsPalette-DgVp_buC.js → FindSkillsPalette-BMVKCk6E.js} +2 -2
- package/dist/eval-ui/assets/{SearchPaletteCore-D2gKxOTT.js → SearchPaletteCore-C9G-ySXc.js} +1 -1
- package/dist/eval-ui/assets/SkillDetailPanel-BCJj8p79.js +1 -0
- package/dist/eval-ui/assets/{UpdateDropdown-B9rCyfnR.js → UpdateDropdown-C4BH7W_M.js} +1 -1
- package/dist/eval-ui/assets/main-tzMA8J07.js +87 -0
- package/dist/eval-ui/index.html +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/canonical.js +14 -0
- package/dist/installer/canonical.js.map +1 -1
- package/dist/installer/multi-install.d.ts +47 -1
- package/dist/installer/multi-install.js +141 -28
- package/dist/installer/multi-install.js.map +1 -1
- package/dist/installer/transformers/aider.js +9 -3
- package/dist/installer/transformers/aider.js.map +1 -1
- package/dist/installer/transformers/github-copilot.js +4 -2
- package/dist/installer/transformers/github-copilot.js.map +1 -1
- package/dist/installer/transformers/index.d.ts +7 -1
- package/dist/lib/keychain.js +12 -5
- package/dist/lib/keychain.js.map +1 -1
- package/dist/lib/skill-lifecycle.d.ts +7 -1
- package/dist/lib/skill-lifecycle.js +13 -1
- package/dist/lib/skill-lifecycle.js.map +1 -1
- package/dist/lockfile/local-root.d.ts +7 -0
- package/dist/lockfile/local-root.js +25 -0
- package/dist/lockfile/local-root.js.map +1 -0
- package/dist/marketplace/manifest-conflict.d.ts +63 -0
- package/dist/marketplace/manifest-conflict.js +181 -0
- package/dist/marketplace/manifest-conflict.js.map +1 -0
- package/dist/updater/source-fetcher.d.ts +6 -0
- package/dist/updater/source-fetcher.js +4 -2
- package/dist/updater/source-fetcher.js.map +1 -1
- package/dist/utils/claude-plugin.js +8 -0
- package/dist/utils/claude-plugin.js.map +1 -1
- package/dist/utils/resolve-binary.d.ts +3 -0
- package/dist/utils/resolve-binary.js +24 -0
- package/dist/utils/resolve-binary.js.map +1 -1
- package/dist/utils/validation.d.ts +12 -5
- package/dist/utils/validation.js +33 -2
- package/dist/utils/validation.js.map +1 -1
- package/package.json +9 -4
- package/dist/eval-ui/assets/SkillDetailPanel-Ioc5XaDA.js +0 -1
- package/dist/eval-ui/assets/main-sUAgJ9SV.js +0 -87
- package/dist/sidecar/eval-ui-manifest.json +0 -1
- package/dist/sidecar/sea-config.json +0 -57
- package/dist/sidecar/sea-prep.blob +0 -0
- package/dist/sidecar/server.cjs +0 -141627
- package/dist/sidecar/vskill-version.txt +0 -1
|
@@ -17,7 +17,7 @@ export type AgentSurfaceClass = "claude-code-style" | "auto-discover";
|
|
|
17
17
|
* Drives the wording in the human-readable line. Machine consumers should
|
|
18
18
|
* read the structured `action` field rather than parsing the string.
|
|
19
19
|
*/
|
|
20
|
-
export type LifecycleAction = "enabled" | "already-enabled" | "disabled" | "already-disabled" | "not-applicable";
|
|
20
|
+
export type LifecycleAction = "enabled" | "already-enabled" | "disabled" | "already-disabled" | "removed" | "not-applicable";
|
|
21
21
|
export interface PerAgentReportEntry {
|
|
22
22
|
/** Agent id (e.g. "claude-code") */
|
|
23
23
|
id: string;
|
|
@@ -37,6 +37,12 @@ export interface BuildPerAgentReportOptions {
|
|
|
37
37
|
scope: "user" | "project";
|
|
38
38
|
/** The action that triggered the report. Auto-discover agents always map to `not-applicable` for enable/disable actions. */
|
|
39
39
|
action: LifecycleAction;
|
|
40
|
+
/**
|
|
41
|
+
* F5: optional per-agent override of `action`. `vskill remove` deletes
|
|
42
|
+
* files from some agents but not others, so it reports "removed" only for
|
|
43
|
+
* the agents it actually cleaned. Falls back to `action` when absent.
|
|
44
|
+
*/
|
|
45
|
+
actionFor?: (agent: AgentDefinition) => LifecycleAction;
|
|
40
46
|
/** The list of agents detected on the local machine. */
|
|
41
47
|
agents: AgentDefinition[];
|
|
42
48
|
}
|
|
@@ -82,6 +82,11 @@ function lineFor(agent, surface, action, scope) {
|
|
|
82
82
|
action: "already-disabled",
|
|
83
83
|
line: `${agent.displayName} (${scope}) — already disabled`,
|
|
84
84
|
};
|
|
85
|
+
case "removed":
|
|
86
|
+
return {
|
|
87
|
+
action: "removed",
|
|
88
|
+
line: `${agent.displayName} (${scope}) — removed (skill files deleted)`,
|
|
89
|
+
};
|
|
85
90
|
case "not-applicable":
|
|
86
91
|
return {
|
|
87
92
|
action: "not-applicable",
|
|
@@ -105,6 +110,13 @@ function lineFor(agent, surface, action, scope) {
|
|
|
105
110
|
action: "not-applicable",
|
|
106
111
|
line: `${agent.displayName} — auto-discovers from ${agent.localSkillsDir} (no plugin entry to disable; run vskill remove to stop loading)`,
|
|
107
112
|
};
|
|
113
|
+
// File deletion IS the un-load mechanism for auto-discover surfaces, so
|
|
114
|
+
// unlike enable/disable this is a real action, not a no-op.
|
|
115
|
+
case "removed":
|
|
116
|
+
return {
|
|
117
|
+
action: "removed",
|
|
118
|
+
line: `${agent.displayName} — removed (skill files deleted)`,
|
|
119
|
+
};
|
|
108
120
|
case "not-applicable":
|
|
109
121
|
return {
|
|
110
122
|
action: "not-applicable",
|
|
@@ -123,7 +135,7 @@ function lineFor(agent, surface, action, scope) {
|
|
|
123
135
|
export function buildPerAgentReport(opts) {
|
|
124
136
|
return opts.agents.map((agent) => {
|
|
125
137
|
const surface = classifyAgentSurface(agent);
|
|
126
|
-
const { action, line } = lineFor(agent, surface, opts.action, opts.scope);
|
|
138
|
+
const { action, line } = lineFor(agent, surface, opts.actionFor?.(agent) ?? opts.action, opts.scope);
|
|
127
139
|
return {
|
|
128
140
|
id: agent.id,
|
|
129
141
|
displayName: agent.displayName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-lifecycle.js","sourceRoot":"","sources":["../../src/lib/skill-lifecycle.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uCAAuC;AACvC,EAAE;AACF,oEAAoE;AACpE,4EAA4E;AAC5E,iEAAiE;AACjE,0EAA0E;AAC1E,oCAAoC;AACpC,0EAA0E;AAC1E,yEAAyE;AACzE,sBAAsB;AACtB,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,sDAAsD;AACtD,8EAA8E;
|
|
1
|
+
{"version":3,"file":"skill-lifecycle.js","sourceRoot":"","sources":["../../src/lib/skill-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A nested installation owns its own lockfile even inside a SpecWeave umbrella.
|
|
3
|
+
* Stop at that ownership boundary, including an unreadable/malformed lockfile;
|
|
4
|
+
* falling through to an ancestor could delete another project's installation.
|
|
5
|
+
* Without a nested lock, preserve SpecWeave's existing project-root behavior.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveLocalSkillRoot(): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { getProjectRoot } from "./project-root.js";
|
|
4
|
+
/**
|
|
5
|
+
* A nested installation owns its own lockfile even inside a SpecWeave umbrella.
|
|
6
|
+
* Stop at that ownership boundary, including an unreadable/malformed lockfile;
|
|
7
|
+
* falling through to an ancestor could delete another project's installation.
|
|
8
|
+
* Without a nested lock, preserve SpecWeave's existing project-root behavior.
|
|
9
|
+
*/
|
|
10
|
+
export function resolveLocalSkillRoot() {
|
|
11
|
+
const boundary = resolve(getProjectRoot());
|
|
12
|
+
let current = resolve(process.cwd());
|
|
13
|
+
const within = relative(boundary, current);
|
|
14
|
+
if (within.startsWith(`..${sep}`) || within === ".." || isAbsolute(within)) {
|
|
15
|
+
return boundary;
|
|
16
|
+
}
|
|
17
|
+
while (true) {
|
|
18
|
+
if (existsSync(join(current, "vskill.lock")))
|
|
19
|
+
return current;
|
|
20
|
+
if (current === boundary)
|
|
21
|
+
return boundary;
|
|
22
|
+
current = dirname(current);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=local-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-root.js","sourceRoot":"","sources":["../../src/lockfile/local-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QAC7D,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Component fields Claude Code treats as "component specs" in a manifest. */
|
|
2
|
+
export declare const COMPONENT_FIELDS: readonly ["skills", "commands", "agents", "hooks", "mcpServers"];
|
|
3
|
+
type ManifestEntry = Record<string, unknown>;
|
|
4
|
+
/** True when the object declares at least one component field. */
|
|
5
|
+
export declare function hasComponentFields(obj: ManifestEntry | null | undefined): boolean;
|
|
6
|
+
export interface HealedEntry {
|
|
7
|
+
/** Plugin name of the healed marketplace entry. */
|
|
8
|
+
plugin: string;
|
|
9
|
+
}
|
|
10
|
+
export interface HealResult {
|
|
11
|
+
/** Updated JSON content (2-space indent, trailing newline), or null if unchanged. */
|
|
12
|
+
content: string | null;
|
|
13
|
+
healed: HealedEntry[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Heal Postiz-class conflicts inside a marketplace.json string.
|
|
17
|
+
*
|
|
18
|
+
* For each plugin entry that (a) declares component fields, (b) does not set
|
|
19
|
+
* `strict: true`, and (c) whose plugin.json — looked up via
|
|
20
|
+
* `pluginHasComponents` — also declares component fields: set `strict: true`
|
|
21
|
+
* and remove the entry-level component fields.
|
|
22
|
+
*
|
|
23
|
+
* Pure apart from the injected lookup. Returns `content: null` when nothing
|
|
24
|
+
* needed healing (callers skip the write).
|
|
25
|
+
*/
|
|
26
|
+
export declare function healManifestContent(manifestContent: string, pluginHasComponents: (entry: {
|
|
27
|
+
name: string;
|
|
28
|
+
source: string;
|
|
29
|
+
}) => boolean): HealResult;
|
|
30
|
+
/**
|
|
31
|
+
* Heal `<marketplaceDir>/.claude-plugin/marketplace.json` in place, resolving
|
|
32
|
+
* each entry's plugin.json relative to the marketplace root (entry sources
|
|
33
|
+
* are "./" or "./plugins/<name>" style paths).
|
|
34
|
+
*
|
|
35
|
+
* Returns names of healed plugin entries (empty when nothing changed).
|
|
36
|
+
*/
|
|
37
|
+
export declare function healMarketplaceDir(marketplaceDir: string): string[];
|
|
38
|
+
/**
|
|
39
|
+
* Heal the marketplace.json copies inside the plugin cache
|
|
40
|
+
* (`<cacheRoot>/<marketplace>/<plugin>/<version>/.claude-plugin/`).
|
|
41
|
+
*
|
|
42
|
+
* In the cache layout the installed plugin's plugin.json sits NEXT TO the
|
|
43
|
+
* copied marketplace.json, so the conflict check pairs each cached
|
|
44
|
+
* marketplace.json with its sibling plugin.json and heals the entry whose
|
|
45
|
+
* name matches the plugin directory.
|
|
46
|
+
*/
|
|
47
|
+
export declare function healPluginCacheDir(cacheRoot: string): string[];
|
|
48
|
+
export interface HealAllOptions {
|
|
49
|
+
/** Defaults to ~/.claude/plugins/marketplaces */
|
|
50
|
+
marketplacesRoot?: string;
|
|
51
|
+
/** Defaults to ~/.claude/plugins/cache */
|
|
52
|
+
cacheRoot?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Heal every locally cached marketplace manifest (registered marketplaces +
|
|
56
|
+
* plugin-cache copies). Best-effort and idempotent: safe to call after every
|
|
57
|
+
* `claude plugin marketplace add` / `claude plugin install`. Never throws.
|
|
58
|
+
*
|
|
59
|
+
* Returns human-readable identifiers of healed entries, e.g.
|
|
60
|
+
* `["postiz", "cache: postiz-agent/postiz@2.0.12"]`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function healAllMarketplaceManifests(options?: HealAllOptions): string[];
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Postiz-class manifest conflict detection + healing (0851)
|
|
3
|
+
//
|
|
4
|
+
// Claude Code refuses to load a plugin when its marketplace entry AND its
|
|
5
|
+
// plugin.json BOTH specify component fields (skills/commands/agents/...):
|
|
6
|
+
//
|
|
7
|
+
// "Plugin <name> has conflicting manifests: both plugin.json and
|
|
8
|
+
// marketplace entry specify components. Set strict: true in marketplace
|
|
9
|
+
// entry or remove component specs from one location."
|
|
10
|
+
//
|
|
11
|
+
// Third-party marketplace authors ship this shape regularly (e.g. postiz),
|
|
12
|
+
// and every vskill/Skill Studio install that delegates to `claude plugin`
|
|
13
|
+
// would surface the loader error through no fault of ours. These helpers
|
|
14
|
+
// normalize the cached manifests the way the loader error suggests: set
|
|
15
|
+
// `strict: true` on the conflicting entry (plugin.json becomes the single
|
|
16
|
+
// source of truth) and drop the entry-level component arrays.
|
|
17
|
+
//
|
|
18
|
+
// Healing only ever touches LOCAL caches under ~/.claude/plugins — never a
|
|
19
|
+
// user's working tree or a remote repo.
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
22
|
+
import { homedir } from "node:os";
|
|
23
|
+
import { join, resolve } from "node:path";
|
|
24
|
+
/** Component fields Claude Code treats as "component specs" in a manifest. */
|
|
25
|
+
export const COMPONENT_FIELDS = [
|
|
26
|
+
"skills",
|
|
27
|
+
"commands",
|
|
28
|
+
"agents",
|
|
29
|
+
"hooks",
|
|
30
|
+
"mcpServers",
|
|
31
|
+
];
|
|
32
|
+
/** True when the object declares at least one component field. */
|
|
33
|
+
export function hasComponentFields(obj) {
|
|
34
|
+
if (!obj || typeof obj !== "object")
|
|
35
|
+
return false;
|
|
36
|
+
return COMPONENT_FIELDS.some((f) => obj[f] !== undefined);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Heal Postiz-class conflicts inside a marketplace.json string.
|
|
40
|
+
*
|
|
41
|
+
* For each plugin entry that (a) declares component fields, (b) does not set
|
|
42
|
+
* `strict: true`, and (c) whose plugin.json — looked up via
|
|
43
|
+
* `pluginHasComponents` — also declares component fields: set `strict: true`
|
|
44
|
+
* and remove the entry-level component fields.
|
|
45
|
+
*
|
|
46
|
+
* Pure apart from the injected lookup. Returns `content: null` when nothing
|
|
47
|
+
* needed healing (callers skip the write).
|
|
48
|
+
*/
|
|
49
|
+
export function healManifestContent(manifestContent, pluginHasComponents) {
|
|
50
|
+
let manifest;
|
|
51
|
+
try {
|
|
52
|
+
manifest = JSON.parse(manifestContent);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return { content: null, healed: [] };
|
|
56
|
+
}
|
|
57
|
+
if (!Array.isArray(manifest.plugins))
|
|
58
|
+
return { content: null, healed: [] };
|
|
59
|
+
const healed = [];
|
|
60
|
+
for (const entry of manifest.plugins) {
|
|
61
|
+
const name = typeof entry.name === "string" ? entry.name : "";
|
|
62
|
+
const source = typeof entry.source === "string" ? entry.source : "";
|
|
63
|
+
if (!name)
|
|
64
|
+
continue;
|
|
65
|
+
if (entry.strict === true)
|
|
66
|
+
continue;
|
|
67
|
+
if (!hasComponentFields(entry))
|
|
68
|
+
continue;
|
|
69
|
+
if (!pluginHasComponents({ name, source }))
|
|
70
|
+
continue;
|
|
71
|
+
entry.strict = true;
|
|
72
|
+
for (const field of COMPONENT_FIELDS)
|
|
73
|
+
delete entry[field];
|
|
74
|
+
healed.push({ plugin: name });
|
|
75
|
+
}
|
|
76
|
+
if (healed.length === 0)
|
|
77
|
+
return { content: null, healed: [] };
|
|
78
|
+
return { content: JSON.stringify(manifest, null, 2) + "\n", healed };
|
|
79
|
+
}
|
|
80
|
+
function readJsonSafe(path) {
|
|
81
|
+
try {
|
|
82
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Heal `<marketplaceDir>/.claude-plugin/marketplace.json` in place, resolving
|
|
90
|
+
* each entry's plugin.json relative to the marketplace root (entry sources
|
|
91
|
+
* are "./" or "./plugins/<name>" style paths).
|
|
92
|
+
*
|
|
93
|
+
* Returns names of healed plugin entries (empty when nothing changed).
|
|
94
|
+
*/
|
|
95
|
+
export function healMarketplaceDir(marketplaceDir) {
|
|
96
|
+
const manifestPath = join(marketplaceDir, ".claude-plugin", "marketplace.json");
|
|
97
|
+
if (!existsSync(manifestPath))
|
|
98
|
+
return [];
|
|
99
|
+
const result = healManifestContent(readFileSync(manifestPath, "utf8"), ({ source }) => {
|
|
100
|
+
if (!source)
|
|
101
|
+
return false;
|
|
102
|
+
const sourceDir = resolve(marketplaceDir, source.replace(/^\.\//, "") || ".");
|
|
103
|
+
// Guard against path escapes in hostile manifests.
|
|
104
|
+
if (!sourceDir.startsWith(resolve(marketplaceDir)))
|
|
105
|
+
return false;
|
|
106
|
+
return hasComponentFields(readJsonSafe(join(sourceDir, ".claude-plugin", "plugin.json")));
|
|
107
|
+
});
|
|
108
|
+
if (result.content !== null)
|
|
109
|
+
writeFileSync(manifestPath, result.content, "utf8");
|
|
110
|
+
return result.healed.map((h) => h.plugin);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Heal the marketplace.json copies inside the plugin cache
|
|
114
|
+
* (`<cacheRoot>/<marketplace>/<plugin>/<version>/.claude-plugin/`).
|
|
115
|
+
*
|
|
116
|
+
* In the cache layout the installed plugin's plugin.json sits NEXT TO the
|
|
117
|
+
* copied marketplace.json, so the conflict check pairs each cached
|
|
118
|
+
* marketplace.json with its sibling plugin.json and heals the entry whose
|
|
119
|
+
* name matches the plugin directory.
|
|
120
|
+
*/
|
|
121
|
+
export function healPluginCacheDir(cacheRoot) {
|
|
122
|
+
const healed = [];
|
|
123
|
+
if (!existsSync(cacheRoot))
|
|
124
|
+
return healed;
|
|
125
|
+
for (const mp of listDirs(cacheRoot)) {
|
|
126
|
+
for (const plugin of listDirs(join(cacheRoot, mp))) {
|
|
127
|
+
for (const version of listDirs(join(cacheRoot, mp, plugin))) {
|
|
128
|
+
const dir = join(cacheRoot, mp, plugin, version, ".claude-plugin");
|
|
129
|
+
const manifestPath = join(dir, "marketplace.json");
|
|
130
|
+
if (!existsSync(manifestPath))
|
|
131
|
+
continue;
|
|
132
|
+
const sibling = readJsonSafe(join(dir, "plugin.json"));
|
|
133
|
+
const result = healManifestContent(readFileSync(manifestPath, "utf8"), ({ name }) => name === plugin && hasComponentFields(sibling));
|
|
134
|
+
if (result.content !== null) {
|
|
135
|
+
writeFileSync(manifestPath, result.content, "utf8");
|
|
136
|
+
healed.push(...result.healed.map((h) => `${mp}/${h.plugin}@${version}`));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return healed;
|
|
142
|
+
}
|
|
143
|
+
function listDirs(path) {
|
|
144
|
+
try {
|
|
145
|
+
return readdirSync(path, { withFileTypes: true })
|
|
146
|
+
.filter((e) => e.isDirectory())
|
|
147
|
+
.map((e) => e.name);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Heal every locally cached marketplace manifest (registered marketplaces +
|
|
155
|
+
* plugin-cache copies). Best-effort and idempotent: safe to call after every
|
|
156
|
+
* `claude plugin marketplace add` / `claude plugin install`. Never throws.
|
|
157
|
+
*
|
|
158
|
+
* Returns human-readable identifiers of healed entries, e.g.
|
|
159
|
+
* `["postiz", "cache: postiz-agent/postiz@2.0.12"]`.
|
|
160
|
+
*/
|
|
161
|
+
export function healAllMarketplaceManifests(options = {}) {
|
|
162
|
+
const healed = [];
|
|
163
|
+
try {
|
|
164
|
+
const marketplacesRoot = options.marketplacesRoot ?? join(homedir(), ".claude", "plugins", "marketplaces");
|
|
165
|
+
for (const mp of listDirs(marketplacesRoot)) {
|
|
166
|
+
try {
|
|
167
|
+
healed.push(...healMarketplaceDir(join(marketplacesRoot, mp)));
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
/* best-effort per marketplace */
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const cacheRoot = options.cacheRoot ?? join(homedir(), ".claude", "plugins", "cache");
|
|
174
|
+
healed.push(...healPluginCacheDir(cacheRoot).map((id) => `cache: ${id}`));
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
/* never break an install over healing */
|
|
178
|
+
}
|
|
179
|
+
return healed;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=manifest-conflict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-conflict.js","sourceRoot":"","sources":["../../src/marketplace/manifest-conflict.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@ export interface FetchResult {
|
|
|
4
4
|
/** Skill content. For plugin-dir sources: combined content of all skills. */
|
|
5
5
|
content: string;
|
|
6
6
|
version: string;
|
|
7
|
+
/**
|
|
8
|
+
* Installed-skill identity sha. Single-skill sources MUST hash the SKILL.md
|
|
9
|
+
* content string — the same identity `vskill add` writes to the lockfile —
|
|
10
|
+
* or unchanged skills phantom-update. Multi-file plugin/local sources hash
|
|
11
|
+
* the files map.
|
|
12
|
+
*/
|
|
7
13
|
sha: string;
|
|
8
14
|
tier: string;
|
|
9
15
|
/** Path-to-content map of all files in this skill. */
|
|
@@ -52,7 +52,8 @@ async function fetchRegistry(skillName, entry) {
|
|
|
52
52
|
if (!remote.content)
|
|
53
53
|
return null;
|
|
54
54
|
const files = { "SKILL.md": remote.content };
|
|
55
|
-
|
|
55
|
+
// String mode — must match the install-time lockfile sha (see FetchResult.sha).
|
|
56
|
+
const sha = computeSha(remote.content);
|
|
56
57
|
return {
|
|
57
58
|
content: remote.content,
|
|
58
59
|
version: remote.version || entry.version,
|
|
@@ -93,7 +94,8 @@ async function fetchGitHubFlat(owner, repo, skillName, entry) {
|
|
|
93
94
|
return {
|
|
94
95
|
content,
|
|
95
96
|
version: extractFrontmatterVersion(content) || entry.version,
|
|
96
|
-
sha
|
|
97
|
+
// String mode — must match the install-time lockfile sha (see FetchResult.sha).
|
|
98
|
+
sha: computeSha(content),
|
|
97
99
|
tier: entry.tier,
|
|
98
100
|
files,
|
|
99
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-fetcher.js","sourceRoot":"","sources":["../../src/updater/source-fetcher.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wDAAwD;AACxD,iEAAiE;AACjE,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"source-fetcher.js","sourceRoot":"","sources":["../../src/updater/source-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { execFileSync } from "node:child_process";
|
|
8
8
|
import { resolveCliBinary } from "./resolve-binary.js";
|
|
9
9
|
import { purgeStalePlugins } from "../settings/index.js";
|
|
10
|
+
import { healAllMarketplaceManifests } from "../marketplace/manifest-conflict.js";
|
|
10
11
|
/**
|
|
11
12
|
* 0826: Add a Claude Code plugin marketplace via the claude CLI.
|
|
12
13
|
*
|
|
@@ -26,6 +27,10 @@ import { purgeStalePlugins } from "../settings/index.js";
|
|
|
26
27
|
export function claudePluginMarketplaceAdd(source, scope = "user") {
|
|
27
28
|
const claude = resolveCliBinary("claude");
|
|
28
29
|
execFileSync(claude, ["plugin", "marketplace", "add", "--scope", scope, "--", source], { stdio: "pipe", timeout: 180_000 });
|
|
30
|
+
// 0851: third-party marketplaces may ship Postiz-class manifest conflicts
|
|
31
|
+
// (entry + plugin.json both specify components). Normalize the local cache
|
|
32
|
+
// right after registration so the subsequent install copies a clean manifest.
|
|
33
|
+
healAllMarketplaceManifests();
|
|
29
34
|
}
|
|
30
35
|
/**
|
|
31
36
|
* 0826: List Claude Code marketplace names registered with the CLI.
|
|
@@ -80,6 +85,9 @@ export function claudePluginMarketplaceList() {
|
|
|
80
85
|
export function claudePluginInstall(pluginId, scope = "user", opts) {
|
|
81
86
|
const claude = resolveCliBinary("claude");
|
|
82
87
|
execFileSync(claude, ["plugin", "install", "--scope", scope, "--", pluginId], { stdio: "pipe", timeout: 30_000, ...(opts?.cwd ? { cwd: opts.cwd } : {}) });
|
|
88
|
+
// 0851: heal manifest conflicts in the cache copy the install just created
|
|
89
|
+
// (covers marketplaces that were already registered in a broken state).
|
|
90
|
+
healAllMarketplaceManifests();
|
|
83
91
|
}
|
|
84
92
|
/**
|
|
85
93
|
* Uninstall a marketplace plugin via the claude CLI.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-plugin.js","sourceRoot":"","sources":["../../src/utils/claude-plugin.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-plugin.js","sourceRoot":"","sources":["../../src/utils/claude-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,3 +41,6 @@ export declare function resolveCliBinary(name: string): string;
|
|
|
41
41
|
export declare function enhancedPath(currentPath?: string): string;
|
|
42
42
|
/** Clear the resolution cache (useful for testing) */
|
|
43
43
|
export declare function clearResolveCache(): void;
|
|
44
|
+
export declare function enhancedSpawnEnv(baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
45
|
+
/** Test-only: drop the memoized process-env enhanced PATH. */
|
|
46
|
+
export declare function _resetEnhancedSpawnEnvCache(): void;
|
|
@@ -111,6 +111,30 @@ export function enhancedPath(currentPath) {
|
|
|
111
111
|
export function clearResolveCache() {
|
|
112
112
|
resolvedCache.clear();
|
|
113
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Build a child-process env whose PATH is enhanced (see `enhancedPath`) so a
|
|
116
|
+
* spawned binary AND its subprocesses/hooks resolve even when the parent
|
|
117
|
+
* inherited a truncated PATH (macOS Dock/Spotlight launch, systemd service,
|
|
118
|
+
* etc.). Node resolves a bare command name via `options.env.PATH`, so passing
|
|
119
|
+
* this single env is enough to BOTH locate the binary (e.g. `claude`, `vskill`,
|
|
120
|
+
* `gh`, `git`) and fix hook/helper lookups (e.g. the Git-LFS `pre-push` hook
|
|
121
|
+
* shelling out to `git-lfs`). `enhancedPath` runs an execSync + fs probes, so
|
|
122
|
+
* the default-process-env result is memoized for the process lifetime.
|
|
123
|
+
*/
|
|
124
|
+
let cachedProcessEnvPath;
|
|
125
|
+
export function enhancedSpawnEnv(baseEnv = process.env) {
|
|
126
|
+
if (baseEnv === process.env) {
|
|
127
|
+
if (cachedProcessEnvPath === undefined) {
|
|
128
|
+
cachedProcessEnvPath = enhancedPath(process.env.PATH);
|
|
129
|
+
}
|
|
130
|
+
return { ...process.env, PATH: cachedProcessEnvPath };
|
|
131
|
+
}
|
|
132
|
+
return { ...baseEnv, PATH: enhancedPath(baseEnv.PATH) };
|
|
133
|
+
}
|
|
134
|
+
/** Test-only: drop the memoized process-env enhanced PATH. */
|
|
135
|
+
export function _resetEnhancedSpawnEnvCache() {
|
|
136
|
+
cachedProcessEnvPath = undefined;
|
|
137
|
+
}
|
|
114
138
|
// ---------------------------------------------------------------------------
|
|
115
139
|
// Internal
|
|
116
140
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../../src/utils/resolve-binary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../../src/utils/resolve-binary.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,22 @@
|
|
|
7
7
|
* Only allows word chars, dots, and hyphens.
|
|
8
8
|
*/
|
|
9
9
|
export declare function validateRepoSegment(segment: string): boolean;
|
|
10
|
+
export interface ParsedGitHubSource {
|
|
11
|
+
owner: string;
|
|
12
|
+
repo: string;
|
|
13
|
+
/** Branch/ref from a /tree/<ref>/... or /blob/<ref>/... deep link. */
|
|
14
|
+
ref?: string;
|
|
15
|
+
/** Repo-relative skill directory from a deep link ("" = repo root). */
|
|
16
|
+
skillPath?: string;
|
|
17
|
+
}
|
|
10
18
|
/**
|
|
11
19
|
* Parse a GitHub source — accepts both `owner/repo` shorthand and full GitHub URLs.
|
|
12
|
-
* Handles .git suffix
|
|
20
|
+
* Handles .git suffix and trailing slashes. URLs deep-linking a skill
|
|
21
|
+
* (/tree/<ref>/<skill-dir> or /blob/<ref>/<...>/SKILL.md) also carry `ref`
|
|
22
|
+
* and `skillPath` so callers install ONLY that skill, not the whole repo.
|
|
13
23
|
* Returns null for invalid or non-GitHub input.
|
|
14
24
|
*/
|
|
15
|
-
export declare function parseGitHubSource(source: string):
|
|
16
|
-
owner: string;
|
|
17
|
-
repo: string;
|
|
18
|
-
} | null;
|
|
25
|
+
export declare function parseGitHubSource(source: string): ParsedGitHubSource | null;
|
|
19
26
|
/**
|
|
20
27
|
* Validate a skill name.
|
|
21
28
|
* Rejects path traversal (../, ..\) and null bytes.
|