@vibe-agent-toolkit/claude-marketplace 0.1.23 → 0.1.24
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/dist/compatibility-analyzer.js +6 -6
- package/dist/compatibility-analyzer.js.map +1 -1
- package/dist/install/plugin-list.d.ts.map +1 -1
- package/dist/install/plugin-list.js +2 -2
- package/dist/install/plugin-list.js.map +1 -1
- package/dist/install/plugin-registry.js +8 -8
- package/dist/install/plugin-registry.js.map +1 -1
- package/dist/install/plugin-uninstall.js +4 -4
- package/dist/install/plugin-uninstall.js.map +1 -1
- package/dist/paths/claude-paths.d.ts.map +1 -1
- package/dist/paths/claude-paths.js +15 -15
- package/dist/paths/claude-paths.js.map +1 -1
- package/dist/settings/permission-matcher.js +2 -2
- package/dist/settings/permission-matcher.js.map +1 -1
- package/dist/settings/settings-compat-checker.d.ts.map +1 -1
- package/dist/settings/settings-compat-checker.js +6 -6
- package/dist/settings/settings-compat-checker.js.map +1 -1
- package/dist/settings/settings-reader.d.ts.map +1 -1
- package/dist/settings/settings-reader.js +2 -2
- package/dist/settings/settings-reader.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readdir, readFile } from 'node:fs/promises';
|
|
2
|
-
import { extname
|
|
3
|
-
import { toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
2
|
+
import { extname } from 'node:path';
|
|
3
|
+
import { toForwardSlash, safePath } from '@vibe-agent-toolkit/utils';
|
|
4
4
|
import { classifyScriptFile, scanCodeBlocks, scanFrontmatter, scanHooksConfig, scanMcpConfig, scanPythonImports, } from './scanners/index.js';
|
|
5
5
|
import { ALL_TARGETS } from './types.js';
|
|
6
6
|
/** File extensions treated as scripts by the scanner */
|
|
@@ -12,7 +12,7 @@ const MARKDOWN_EXTENSIONS = new Set(['.md']);
|
|
|
12
12
|
* Throws if the file does not exist or is invalid JSON.
|
|
13
13
|
*/
|
|
14
14
|
async function readPluginManifest(pluginDir) {
|
|
15
|
-
const manifestPath = join(pluginDir, '.claude-plugin', 'plugin.json');
|
|
15
|
+
const manifestPath = safePath.join(pluginDir, '.claude-plugin', 'plugin.json');
|
|
16
16
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- path constructed from join(pluginDir, ...)
|
|
17
17
|
const raw = await readFile(manifestPath, 'utf8');
|
|
18
18
|
const parsed = JSON.parse(raw);
|
|
@@ -38,8 +38,8 @@ async function collectFiles(rootDir) {
|
|
|
38
38
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- recursive walk of user-provided plugin directory
|
|
39
39
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
40
40
|
for (const entry of entries) {
|
|
41
|
-
const fullPath = join(dir, entry.name);
|
|
42
|
-
const relativePath = toForwardSlash(relative(rootDir, fullPath));
|
|
41
|
+
const fullPath = safePath.join(dir, entry.name);
|
|
42
|
+
const relativePath = toForwardSlash(safePath.relative(rootDir, fullPath));
|
|
43
43
|
if (entry.isDirectory()) {
|
|
44
44
|
// Skip the .claude-plugin metadata directory
|
|
45
45
|
if (entry.name === '.claude-plugin')
|
|
@@ -168,7 +168,7 @@ export async function analyzeCompatibility(pluginDir) {
|
|
|
168
168
|
mcpConfigs: 0,
|
|
169
169
|
};
|
|
170
170
|
for (const relativePath of files) {
|
|
171
|
-
const fullPath = join(pluginDir, relativePath);
|
|
171
|
+
const fullPath = safePath.join(pluginDir, relativePath);
|
|
172
172
|
const ext = extname(relativePath).toLowerCase();
|
|
173
173
|
if (MARKDOWN_EXTENSIONS.has(ext)) {
|
|
174
174
|
counts.skillFiles++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility-analyzer.js","sourceRoot":"","sources":["../src/compatibility-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compatibility-analyzer.js","sourceRoot":"","sources":["../src/compatibility-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-list.d.ts","sourceRoot":"","sources":["../../src/install/plugin-list.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"plugin-list.d.ts","sourceRoot":"","sources":["../../src/install/plugin-list.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,aAAa,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAUzE"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - skillsDir (~/.claude/skills): legacy skills (symlinks or directories)
|
|
8
8
|
*/
|
|
9
9
|
import { existsSync, lstatSync, readdirSync } from 'node:fs';
|
|
10
|
-
import {
|
|
10
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
11
11
|
import { readInstalledPlugins, readKnownMarketplaces } from './plugin-registry.js';
|
|
12
12
|
/**
|
|
13
13
|
* List all locally installed plugins and legacy skills.
|
|
@@ -56,7 +56,7 @@ function collectLegacySkills(paths) {
|
|
|
56
56
|
for (const entry of entries) {
|
|
57
57
|
if (!entry.isDirectory() && !entry.isSymbolicLink())
|
|
58
58
|
continue;
|
|
59
|
-
const skillPath = join(paths.skillsDir, entry.name);
|
|
59
|
+
const skillPath = safePath.join(paths.skillsDir, entry.name);
|
|
60
60
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated path
|
|
61
61
|
const stat = lstatSync(skillPath);
|
|
62
62
|
legacySkills.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-list.js","sourceRoot":"","sources":["../../src/install/plugin-list.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-list.js","sourceRoot":"","sources":["../../src/install/plugin-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Follows Postel's Law: reads with fallbacks (liberal), writes with structured data.
|
|
9
9
|
*/
|
|
10
10
|
import { cpSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
-
import { dirname
|
|
12
|
-
import { mkdirSyncReal } from '@vibe-agent-toolkit/utils';
|
|
11
|
+
import { dirname } from 'node:path';
|
|
12
|
+
import { mkdirSyncReal, safePath } from '@vibe-agent-toolkit/utils';
|
|
13
13
|
/**
|
|
14
14
|
* Read known_marketplaces.json from the Claude plugins directory.
|
|
15
15
|
* Returns an empty object if the file does not exist.
|
|
@@ -73,8 +73,8 @@ export async function installPlugin(opts) {
|
|
|
73
73
|
const pluginKey = `${pluginName}@${marketplaceName}`;
|
|
74
74
|
// Step 1: Copy plugin to marketplacesDir/<marketplaceName>/plugins/<pluginName>/
|
|
75
75
|
// Skip if pluginDir is already at the destination (e.g. copyPluginTree already did the copy)
|
|
76
|
-
const marketplacePluginDest = join(paths.marketplacesDir, marketplaceName, 'plugins', pluginName);
|
|
77
|
-
if (resolve(pluginDir) !== resolve(marketplacePluginDest)) {
|
|
76
|
+
const marketplacePluginDest = safePath.join(paths.marketplacesDir, marketplaceName, 'plugins', pluginName);
|
|
77
|
+
if (safePath.resolve(pluginDir) !== safePath.resolve(marketplacePluginDest)) {
|
|
78
78
|
mkdirSyncReal(marketplacePluginDest, { recursive: true });
|
|
79
79
|
cpSync(pluginDir, marketplacePluginDest, { recursive: true });
|
|
80
80
|
}
|
|
@@ -82,14 +82,14 @@ export async function installPlugin(opts) {
|
|
|
82
82
|
const knownMarketplaces = readKnownMarketplaces(paths);
|
|
83
83
|
knownMarketplaces[marketplaceName] = {
|
|
84
84
|
source: source,
|
|
85
|
-
installLocation: join(paths.marketplacesDir, marketplaceName),
|
|
85
|
+
installLocation: safePath.join(paths.marketplacesDir, marketplaceName),
|
|
86
86
|
lastUpdated: now,
|
|
87
87
|
};
|
|
88
88
|
writeKnownMarketplaces(paths, knownMarketplaces);
|
|
89
89
|
// Step 3: Copy plugin to pluginsCacheDir/<marketplaceName>/<pluginName>/<version>/
|
|
90
90
|
// Skip if source and destination are the same
|
|
91
|
-
const cacheDest = join(paths.pluginsCacheDir, marketplaceName, pluginName, version);
|
|
92
|
-
if (resolve(pluginDir) !== resolve(cacheDest)) {
|
|
91
|
+
const cacheDest = safePath.join(paths.pluginsCacheDir, marketplaceName, pluginName, version);
|
|
92
|
+
if (safePath.resolve(pluginDir) !== safePath.resolve(cacheDest)) {
|
|
93
93
|
mkdirSyncReal(cacheDest, { recursive: true });
|
|
94
94
|
cpSync(pluginDir, cacheDest, { recursive: true });
|
|
95
95
|
}
|
|
@@ -98,7 +98,7 @@ export async function installPlugin(opts) {
|
|
|
98
98
|
installedPlugins.plugins[pluginKey] = [
|
|
99
99
|
{
|
|
100
100
|
scope: 'user',
|
|
101
|
-
installPath: join(paths.pluginsCacheDir, marketplaceName, pluginName, version),
|
|
101
|
+
installPath: safePath.join(paths.pluginsCacheDir, marketplaceName, pluginName, version),
|
|
102
102
|
version,
|
|
103
103
|
installedAt: now,
|
|
104
104
|
lastUpdated: now,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-registry.js","sourceRoot":"","sources":["../../src/install/plugin-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin-registry.js","sourceRoot":"","sources":["../../src/install/plugin-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, writeFileSync } from 'node:fs';
|
|
7
7
|
import { rm } from 'node:fs/promises';
|
|
8
|
-
import { dirname
|
|
9
|
-
import { mkdirSyncReal } from '@vibe-agent-toolkit/utils';
|
|
8
|
+
import { dirname } from 'node:path';
|
|
9
|
+
import { mkdirSyncReal, safePath } from '@vibe-agent-toolkit/utils';
|
|
10
10
|
import { readInstalledPlugins, readKnownMarketplaces, readUserSettings, writeInstalledPlugins, writeKnownMarketplaces, } from './plugin-registry.js';
|
|
11
11
|
function parsePluginKey(pluginKey) {
|
|
12
12
|
const atIdx = pluginKey.lastIndexOf('@');
|
|
@@ -24,7 +24,7 @@ async function removePluginDirs(paths, pluginName, marketplace, mpPluginDir, mpP
|
|
|
24
24
|
await rm(mpPluginDir, { recursive: true, force: true });
|
|
25
25
|
pluginDir = true;
|
|
26
26
|
}
|
|
27
|
-
const cachePluginDir = join(paths.pluginsCacheDir, marketplace, pluginName);
|
|
27
|
+
const cachePluginDir = safePath.join(paths.pluginsCacheDir, marketplace, pluginName);
|
|
28
28
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated paths from ClaudeUserPaths
|
|
29
29
|
const cacheDir = existsSync(cachePluginDir);
|
|
30
30
|
if (cacheDir && !dryRun)
|
|
@@ -61,7 +61,7 @@ export async function uninstallPlugin(opts) {
|
|
|
61
61
|
const { pluginKey, paths, dryRun = false } = opts;
|
|
62
62
|
const { pluginName, marketplace } = parsePluginKey(pluginKey);
|
|
63
63
|
const emptyArtifacts = { pluginDir: false, cacheDir: false, installedPlugins: false, knownMarketplaces: false, settings: false };
|
|
64
|
-
const mpPluginDir = join(paths.marketplacesDir, marketplace, 'plugins', pluginName);
|
|
64
|
+
const mpPluginDir = safePath.join(paths.marketplacesDir, marketplace, 'plugins', pluginName);
|
|
65
65
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated paths from ClaudeUserPaths
|
|
66
66
|
const mpPluginExists = existsSync(mpPluginDir);
|
|
67
67
|
const installedPlugins = readInstalledPlugins(paths);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-uninstall.js","sourceRoot":"","sources":["../../src/install/plugin-uninstall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin-uninstall.js","sourceRoot":"","sources":["../../src/install/plugin-uninstall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAKpE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAuB9B,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,qCAAqC,CAAC,CAAC;IACvG,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAgC,EAAE,SAAiB,EAAE,WAAmB;IAC1G,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC;AAOD,KAAK,UAAU,gBAAgB,CAC7B,KAAsB,EACtB,UAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,cAAuB,EACvB,MAAe;IAEf,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM;YAAE,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACrF,2GAA2G;IAC3G,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,QAAQ,IAAI,CAAC,MAAM;QAAE,MAAM,EAAE,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAsB,EACtB,SAAiB,EACjB,WAAmB,EACnB,UAAmB,EACnB,MAAe,EACf,oBAAsC;IAEtC,IAAI,uBAAuB,GAAG,KAAK,CAAC;IAEpC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QACrD,CAAC;QACD,uBAAuB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,0BAA0B,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACnG,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC1C,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACvD,CAAC;QACD,wBAAwB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;AACpG,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAA4B;IAChE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEjI,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7F,2GAA2G;IAC3G,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEtE,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,IAAI,CAAC,UAAU,CAAC;IAE/C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5H,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1K,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAElH,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,SAAS,gEAAgE,EAAE,SAAS,EAAE,CAAC;IACrI,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,KAAsB;IAC7E,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACvC,wEAAwE;QACxE,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,CAAC;IACvD,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACzB,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACxD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7B,OAAO,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAsB,EAAE,SAAiB,EAAE,MAAe;IAC1F,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5F,MAAM,EAAE,GAAG,OAAkC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACrB,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;QACpC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,2GAA2G;QAC3G,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-paths.d.ts","sourceRoot":"","sources":["../../src/paths/claude-paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"claude-paths.d.ts","sourceRoot":"","sources":["../../src/paths/claude-paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8BAA8B;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,wBAAwB,EAAE,MAAM,CAAC;IACjC,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAgBpD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAS5E"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Cross-platform utilities for accessing Claude's user-level and project-level directories.
|
|
5
5
|
*/
|
|
6
6
|
import { homedir } from 'node:os';
|
|
7
|
-
import {
|
|
7
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
8
8
|
/**
|
|
9
9
|
* Get user-level Claude directories and settings paths.
|
|
10
10
|
*
|
|
@@ -21,18 +21,18 @@ import { join } from 'node:path';
|
|
|
21
21
|
*/
|
|
22
22
|
export function getClaudeUserPaths() {
|
|
23
23
|
const home = homedir();
|
|
24
|
-
const claudeDir = process.env['CLAUDE_CONFIG_DIR'] ?? join(home, '.claude');
|
|
25
|
-
const pluginsDir = join(claudeDir, 'plugins');
|
|
24
|
+
const claudeDir = process.env['CLAUDE_CONFIG_DIR'] ?? safePath.join(home, '.claude');
|
|
25
|
+
const pluginsDir = safePath.join(claudeDir, 'plugins');
|
|
26
26
|
return {
|
|
27
27
|
claudeDir,
|
|
28
28
|
pluginsDir,
|
|
29
|
-
skillsDir: join(claudeDir, 'skills'),
|
|
30
|
-
marketplacesDir: join(pluginsDir, 'marketplaces'),
|
|
31
|
-
pluginsCacheDir: join(pluginsDir, 'cache'),
|
|
32
|
-
knownMarketplacesPath: join(pluginsDir, 'known_marketplaces.json'),
|
|
33
|
-
installedPluginsPath: join(pluginsDir, 'installed_plugins.json'),
|
|
34
|
-
userSettingsPath: join(claudeDir, 'settings.json'),
|
|
35
|
-
userDotJsonPath: join(home, '.claude.json'),
|
|
29
|
+
skillsDir: safePath.join(claudeDir, 'skills'),
|
|
30
|
+
marketplacesDir: safePath.join(pluginsDir, 'marketplaces'),
|
|
31
|
+
pluginsCacheDir: safePath.join(pluginsDir, 'cache'),
|
|
32
|
+
knownMarketplacesPath: safePath.join(pluginsDir, 'known_marketplaces.json'),
|
|
33
|
+
installedPluginsPath: safePath.join(pluginsDir, 'installed_plugins.json'),
|
|
34
|
+
userSettingsPath: safePath.join(claudeDir, 'settings.json'),
|
|
35
|
+
userDotJsonPath: safePath.join(home, '.claude.json'),
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
@@ -41,12 +41,12 @@ export function getClaudeUserPaths() {
|
|
|
41
41
|
* @param projectDir - Absolute path to the project root
|
|
42
42
|
*/
|
|
43
43
|
export function getClaudeProjectPaths(projectDir) {
|
|
44
|
-
const claudeDir = join(projectDir, '.claude');
|
|
44
|
+
const claudeDir = safePath.join(projectDir, '.claude');
|
|
45
45
|
return {
|
|
46
|
-
projectSettingsPath: join(claudeDir, 'settings.json'),
|
|
47
|
-
projectSettingsLocalPath: join(claudeDir, 'settings.local.json'),
|
|
48
|
-
claudeMdPath: join(claudeDir, 'CLAUDE.md'),
|
|
49
|
-
mcpJsonPath: join(projectDir, '.mcp.json'),
|
|
46
|
+
projectSettingsPath: safePath.join(claudeDir, 'settings.json'),
|
|
47
|
+
projectSettingsLocalPath: safePath.join(claudeDir, 'settings.local.json'),
|
|
48
|
+
claudeMdPath: safePath.join(claudeDir, 'CLAUDE.md'),
|
|
49
|
+
mcpJsonPath: safePath.join(projectDir, '.mcp.json'),
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
//# sourceMappingURL=claude-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-paths.js","sourceRoot":"","sources":["../../src/paths/claude-paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-paths.js","sourceRoot":"","sources":["../../src/paths/claude-paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAkCrD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEvD,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC7C,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;QAC1D,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QACnD,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC;QAC3E,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC;QACzE,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QAC3D,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;KACrD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAEvD,OAAO;QACL,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QAC9D,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;QACzE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QACnD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { createRequire } from 'node:module';
|
|
11
11
|
import { homedir } from 'node:os';
|
|
12
|
-
import
|
|
12
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
13
13
|
// createRequire is needed because ignore@6 is CJS and NodeNext module resolution
|
|
14
14
|
// doesn't allow calling the default import directly via ESM interop
|
|
15
15
|
const _require = createRequire(import.meta.url);
|
|
@@ -172,7 +172,7 @@ export function matchesPathRule(filePath, ruleContent, cwd = process.cwd()) {
|
|
|
172
172
|
pattern = normalised;
|
|
173
173
|
}
|
|
174
174
|
const ig = createIgnore().add(pattern);
|
|
175
|
-
const relative =
|
|
175
|
+
const relative = safePath.relative(root, filePath);
|
|
176
176
|
// node-ignore can't match paths that go "up" (..)
|
|
177
177
|
if (relative.startsWith('..'))
|
|
178
178
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-matcher.js","sourceRoot":"","sources":["../../src/settings/permission-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-matcher.js","sourceRoot":"","sources":["../../src/settings/permission-matcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-compat-checker.d.ts","sourceRoot":"","sources":["../../src/settings/settings-compat-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"settings-compat-checker.d.ts","sourceRoot":"","sources":["../../src/settings/settings-compat-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AAmO9E;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAU7B"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Check a plugin directory against effective settings for conflicts.
|
|
3
3
|
*/
|
|
4
4
|
import * as fs from 'node:fs/promises';
|
|
5
|
-
import
|
|
5
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
6
6
|
import { matchesPermissionRule } from './permission-matcher.js';
|
|
7
7
|
function parseInlineTools(inline) {
|
|
8
8
|
if (inline.startsWith('[')) {
|
|
@@ -78,10 +78,10 @@ async function findSkillFiles(pluginDir) {
|
|
|
78
78
|
const entries = await fs.readdir(dir, { withFileTypes: true, encoding: 'utf-8' });
|
|
79
79
|
for (const entry of entries) {
|
|
80
80
|
if (entry.name === 'SKILL.md' && entry.isFile()) {
|
|
81
|
-
skillFiles.push(
|
|
81
|
+
skillFiles.push(safePath.join(dir, entry.name));
|
|
82
82
|
}
|
|
83
83
|
else if (entry.isDirectory()) {
|
|
84
|
-
await scanDir(
|
|
84
|
+
await scanDir(safePath.join(dir, entry.name));
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -96,7 +96,7 @@ async function findSkillFiles(pluginDir) {
|
|
|
96
96
|
* Check if a plugin has a hooks.json file.
|
|
97
97
|
*/
|
|
98
98
|
async function hasHooksFile(pluginDir) {
|
|
99
|
-
const hooksPath =
|
|
99
|
+
const hooksPath = safePath.join(pluginDir, 'hooks.json');
|
|
100
100
|
try {
|
|
101
101
|
await fs.access(hooksPath);
|
|
102
102
|
return true;
|
|
@@ -132,7 +132,7 @@ async function checkToolBlockingConflicts(skillFiles, denyRules, pluginDir) {
|
|
|
132
132
|
if (isToolBlocked(toolName, toolInput, rule, pluginDir)) {
|
|
133
133
|
conflicts.push({
|
|
134
134
|
type: 'tool-blocked',
|
|
135
|
-
detail: `Tool "${tool}" in ${
|
|
135
|
+
detail: `Tool "${tool}" in ${safePath.relative(pluginDir, skillFile)} blocked by org policy (permissions.deny)`,
|
|
136
136
|
blockedBy: 'permissions.deny',
|
|
137
137
|
value: rule,
|
|
138
138
|
settingsFile: provenance.file,
|
|
@@ -176,7 +176,7 @@ async function checkModelUnavailabilityConflicts(skillFiles, effectiveSettings,
|
|
|
176
176
|
if (!allowedModels.has(frontmatter.model)) {
|
|
177
177
|
conflicts.push({
|
|
178
178
|
type: 'model-unavailable',
|
|
179
|
-
detail: `Model "${frontmatter.model}" required by ${
|
|
179
|
+
detail: `Model "${frontmatter.model}" required by ${safePath.relative(pluginDir, skillFile)} is not in org's availableModels`,
|
|
180
180
|
blockedBy: 'availableModels',
|
|
181
181
|
value: effectiveSettings.availableModels.value.join(', '),
|
|
182
182
|
settingsFile: provenance.file,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-compat-checker.js","sourceRoot":"","sources":["../../src/settings/settings-compat-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-compat-checker.js","sourceRoot":"","sources":["../../src/settings/settings-compat-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAIrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,eAAuB;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACtC,kHAAkH;IAClH,MAAM,WAAW,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/D,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,wDAAwD;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,SAAiB;IAEjB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,wGAAwG;QACxG,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;IACzC,CAAC;IAED,cAAc;IACd,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,UAAU,OAAO,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,yFAAyF;YACzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAElF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC/B,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,SAAiB;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CACpB,QAAgB,EAChB,SAAiB,EACjB,IAAY,EACZ,SAAiB;IAEjB,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,CACL,qBAAqB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC;YACpD,IAAI,KAAK,QAAQ;YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,UAAoB,EACpB,SAA2B,EAC3B,SAAiB;IAEjB,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;YAAE,SAAS;QAE9C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEzC,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC7C,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;oBACxD,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,SAAS,IAAI,QAAQ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,2CAA2C;wBAC/G,SAAS,EAAE,kBAAkB;wBAC7B,KAAK,EAAE,IAAI;wBACX,YAAY,EAAE,UAAU,CAAC,IAAI;wBAC7B,aAAa,EAAE,UAAU,CAAC,KAAK;qBAChC,CAAC,CAAC;oBACH,MAAM,CAAC,gDAAgD;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,SAAiB,EACjB,iBAAoC;IAEpC,IAAI,iBAAiB,CAAC,eAAe,EAAE,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAEjE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,eAAe,CAAC;IACzD,OAAO;QACL;YACE,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,oFAAoF;YAC5F,SAAS,EAAE,iBAAiB;YAC5B,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,UAAU,CAAC,IAAI;YAC7B,aAAa,EAAE,UAAU,CAAC,KAAK;SAChC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,UAAoB,EACpB,iBAAoC,EACpC,SAAiB;IAEjB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK;QAAE,OAAO,EAAE,CAAC;IAEzD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,eAAe,CAAC;IACzD,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,KAAK;YAAE,SAAS;QAElC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,UAAU,WAAW,CAAC,KAAK,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,kCAAkC;gBAC7H,SAAS,EAAE,iBAAiB;gBAC5B,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzD,YAAY,EAAE,UAAU,CAAC,IAAI;gBAC7B,aAAa,EAAE,UAAU,CAAC,KAAK;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAiB,EACjB,iBAAoC;IAEpC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAEnD,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvE,0BAA0B,CAAC,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;QACrF,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACzD,iCAAiC,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC;KAC5E,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-reader.d.ts","sourceRoot":"","sources":["../../src/settings/settings-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"settings-reader.d.ts","sourceRoot":"","sources":["../../src/settings/settings-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI7E,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAqED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAC,MAAM,sBAAsB,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as fs from 'node:fs/promises';
|
|
11
11
|
import { homedir } from 'node:os';
|
|
12
|
-
import {
|
|
12
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
13
13
|
import { getManagedSettingsCandidatePaths } from '../paths/managed-settings-path.js';
|
|
14
14
|
import { ManagedSettingsSchema, ProjectSettingsSchema, UserSettingsSchema, } from '../schemas/settings.js';
|
|
15
15
|
import { mergeSettingsLayers } from './settings-merger.js';
|
|
@@ -86,7 +86,7 @@ export async function readSettingsLayers(options = {}) {
|
|
|
86
86
|
await tryAddLayer(layers, `${options.projectDir}/.claude/settings.json`, 'project');
|
|
87
87
|
}
|
|
88
88
|
// 4. User settings
|
|
89
|
-
await tryAddLayer(layers, join(home, '.claude', 'settings.json'), 'user');
|
|
89
|
+
await tryAddLayer(layers, safePath.join(home, '.claude', 'settings.json'), 'user');
|
|
90
90
|
return layers;
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-reader.js","sourceRoot":"","sources":["../../src/settings/settings-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-reader.js","sourceRoot":"","sources":["../../src/settings/settings-reader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/claude-marketplace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"description": "Claude plugin marketplace tools: compatibility analysis, provenance tracking, enterprise config",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"typecheck": "tsc --noEmit"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@vibe-agent-toolkit/utils": "0.1.
|
|
28
|
+
"@vibe-agent-toolkit/utils": "0.1.24",
|
|
29
29
|
"ignore": "^6.0.0",
|
|
30
30
|
"yaml": "^2.6.1",
|
|
31
31
|
"zod": "^3.24.1"
|