mcpick 0.0.18 → 0.0.20
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/.github/workflows/ci.yml +26 -0
- package/.vscode/settings.json +5 -0
- package/CHANGELOG.md +15 -0
- package/LICENSE +21 -0
- package/dist/add-BDyaBew0.js +113 -0
- package/dist/add-json-BjgzdeG-.js +58 -0
- package/dist/atomic-write-BqEykHp9.js +26 -0
- package/dist/backup-DSDhHI5f.js +64 -0
- package/dist/cache-D6kd7qE8.js +226 -0
- package/dist/claude-cli-DnmBJrjg.js +445 -0
- package/dist/cli-CsFfnWBo.js +84 -0
- package/dist/clone-DYKPEsar.js +88 -0
- package/dist/config-DijVdEFn.js +176 -0
- package/dist/dev-DRJRNp7y.js +265 -0
- package/dist/disable-xJXZfUR_.js +39 -0
- package/dist/enable-RrpcN6la.js +40 -0
- package/dist/get-Bb1eOOIZ.js +41 -0
- package/dist/hook-state-Di8lUsPr.js +171 -0
- package/dist/hooks-Bmn7pUZa.js +280 -0
- package/dist/index.js +1232 -305
- package/dist/list-B8YeDWt6.js +64 -0
- package/dist/marketplace-DcKk5dc1.js +168 -0
- package/dist/output-BchYq0mR.js +15 -0
- package/dist/paths-BPISiJi4.js +124 -0
- package/dist/plugin-cache-Bby9Dxm9.js +405 -0
- package/dist/plugins-Dc7DN6R_.js +212 -0
- package/dist/profile-CX97sMGp.js +120 -0
- package/dist/profile-DkY_lBEm.js +70 -0
- package/dist/redact-O35tjnRD.js +26 -0
- package/dist/registry-CfUKT7_C.js +92 -0
- package/dist/reload-CYDhkCVZ.js +31 -0
- package/dist/remove-D1owHLhG.js +31 -0
- package/dist/reset-project-choices-BfRSNN3m.js +28 -0
- package/dist/restore-DdMfUljI.js +84 -0
- package/dist/rolldown-runtime-CiIaOW0V.js +13 -0
- package/dist/settings-DEcWtzLE.js +201 -0
- package/dist/validation-xMlbgGCF.js +44 -0
- package/package.json +23 -22
- package/dist/cli/commands/add-json.js +0 -60
- package/dist/cli/commands/add.js +0 -135
- package/dist/cli/commands/backup.js +0 -83
- package/dist/cli/commands/cache.js +0 -296
- package/dist/cli/commands/clone.js +0 -108
- package/dist/cli/commands/dev.js +0 -167
- package/dist/cli/commands/disable.js +0 -36
- package/dist/cli/commands/enable.js +0 -39
- package/dist/cli/commands/get.js +0 -45
- package/dist/cli/commands/hooks.js +0 -314
- package/dist/cli/commands/list.js +0 -64
- package/dist/cli/commands/marketplace.js +0 -211
- package/dist/cli/commands/plugins.js +0 -265
- package/dist/cli/commands/profile.js +0 -134
- package/dist/cli/commands/reload.js +0 -36
- package/dist/cli/commands/remove.js +0 -35
- package/dist/cli/commands/reset-project-choices.js +0 -32
- package/dist/cli/commands/restore.js +0 -105
- package/dist/cli/index.js +0 -29
- package/dist/cli/output.js +0 -21
- package/dist/commands/add-server.js +0 -310
- package/dist/commands/backup.js +0 -60
- package/dist/commands/edit-config.js +0 -109
- package/dist/commands/edit-plugins.js +0 -201
- package/dist/commands/manage-cache.js +0 -155
- package/dist/commands/manage-hooks.js +0 -99
- package/dist/commands/manage-marketplace.js +0 -293
- package/dist/commands/restore.js +0 -118
- package/dist/core/config.js +0 -200
- package/dist/core/dev-override.js +0 -155
- package/dist/core/hook-state.js +0 -220
- package/dist/core/plugin-cache.js +0 -506
- package/dist/core/profile.js +0 -94
- package/dist/core/registry.js +0 -121
- package/dist/core/settings.js +0 -243
- package/dist/core/validation.js +0 -49
- package/dist/types.js +0 -2
- package/dist/utils/atomic-write.js +0 -27
- package/dist/utils/claude-cli.js +0 -485
- package/dist/utils/paths.js +0 -114
- package/dist/utils/redact.js +0 -28
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { n as get_all_available_servers } from "./registry-CfUKT7_C.js";
|
|
2
|
+
import { o as get_enabled_servers_for_scope } from "./config-DijVdEFn.js";
|
|
3
|
+
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
4
|
+
import { t as redact_server } from "./redact-O35tjnRD.js";
|
|
5
|
+
import { defineCommand } from "citty";
|
|
6
|
+
//#region src/cli/commands/list.ts
|
|
7
|
+
var list_default = defineCommand({
|
|
8
|
+
meta: {
|
|
9
|
+
name: "list",
|
|
10
|
+
description: "List all MCP servers and their status"
|
|
11
|
+
},
|
|
12
|
+
args: {
|
|
13
|
+
scope: {
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Scope to check: local, project, or user"
|
|
16
|
+
},
|
|
17
|
+
json: {
|
|
18
|
+
type: "boolean",
|
|
19
|
+
description: "Output as JSON",
|
|
20
|
+
default: false
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
async run({ args }) {
|
|
24
|
+
const scopes = args.scope ? [args.scope] : [
|
|
25
|
+
"local",
|
|
26
|
+
"project",
|
|
27
|
+
"user"
|
|
28
|
+
];
|
|
29
|
+
if (args.scope && ![
|
|
30
|
+
"local",
|
|
31
|
+
"project",
|
|
32
|
+
"user"
|
|
33
|
+
].includes(args.scope)) error(`Invalid scope: ${args.scope}. Use local, project, or user.`);
|
|
34
|
+
const all_servers = await get_all_available_servers();
|
|
35
|
+
const enabled_by_scope = {};
|
|
36
|
+
for (const scope of scopes) enabled_by_scope[scope] = await get_enabled_servers_for_scope(scope);
|
|
37
|
+
if (args.json) output(all_servers.map((server) => {
|
|
38
|
+
const status = {};
|
|
39
|
+
for (const scope of scopes) status[scope] = enabled_by_scope[scope].includes(server.name);
|
|
40
|
+
const { name, ...rest } = redact_server(server);
|
|
41
|
+
return {
|
|
42
|
+
name,
|
|
43
|
+
...status,
|
|
44
|
+
...rest
|
|
45
|
+
};
|
|
46
|
+
}), true);
|
|
47
|
+
else {
|
|
48
|
+
if (all_servers.length === 0) {
|
|
49
|
+
console.log("No servers in registry.");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
for (const server of all_servers) {
|
|
53
|
+
const statuses = scopes.map((scope) => {
|
|
54
|
+
return `${scope}:${enabled_by_scope[scope].includes(server.name) ? "on" : "off"}`;
|
|
55
|
+
}).join(" ");
|
|
56
|
+
console.log(`${server.name} ${statuses}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { list_default as default };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=list-B8YeDWt6.js.map
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { c as marketplace_remove_via_cli, l as marketplace_update_via_cli, o as marketplace_add_via_cli, s as marketplace_list_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
|
+
import { u as read_marketplace_manifest } from "./plugin-cache-Bby9Dxm9.js";
|
|
3
|
+
import { a as redisable_restored_hooks, t as check_restored_hooks } from "./hook-state-Di8lUsPr.js";
|
|
4
|
+
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
5
|
+
import { defineCommand } from "citty";
|
|
6
|
+
//#region src/cli/commands/marketplace.ts
|
|
7
|
+
const list = defineCommand({
|
|
8
|
+
meta: {
|
|
9
|
+
name: "list",
|
|
10
|
+
description: "List configured marketplaces"
|
|
11
|
+
},
|
|
12
|
+
args: { json: {
|
|
13
|
+
type: "boolean",
|
|
14
|
+
description: "Output as JSON",
|
|
15
|
+
default: false
|
|
16
|
+
} },
|
|
17
|
+
async run({ args }) {
|
|
18
|
+
const result = await marketplace_list_via_cli();
|
|
19
|
+
if (!result.success) error(result.error || "Unknown error");
|
|
20
|
+
if (args.json) try {
|
|
21
|
+
output(JSON.parse(result.stdout || "[]"), true);
|
|
22
|
+
} catch {
|
|
23
|
+
output({ marketplaces: result.stdout }, true);
|
|
24
|
+
}
|
|
25
|
+
else console.log(result.stdout || "No marketplaces configured.");
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const add = defineCommand({
|
|
29
|
+
meta: {
|
|
30
|
+
name: "add",
|
|
31
|
+
description: "Add a plugin marketplace (a catalog of installable plugins and skills). After adding, install plugins with: mcpick plugins install <name>@<marketplace>"
|
|
32
|
+
},
|
|
33
|
+
args: {
|
|
34
|
+
source: {
|
|
35
|
+
type: "positional",
|
|
36
|
+
description: "Marketplace source: owner/repo (GitHub), https://... URL, or ./local-path",
|
|
37
|
+
required: true
|
|
38
|
+
},
|
|
39
|
+
json: {
|
|
40
|
+
type: "boolean",
|
|
41
|
+
description: "Output as JSON",
|
|
42
|
+
default: false
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
async run({ args }) {
|
|
46
|
+
const result = await marketplace_add_via_cli(args.source);
|
|
47
|
+
if (args.json) {
|
|
48
|
+
let available_plugins = [];
|
|
49
|
+
if (result.success) available_plugins = await find_marketplace_plugins(args.source);
|
|
50
|
+
output({
|
|
51
|
+
added: args.source,
|
|
52
|
+
success: result.success,
|
|
53
|
+
error: result.error,
|
|
54
|
+
available_plugins
|
|
55
|
+
}, true);
|
|
56
|
+
} else if (result.success) {
|
|
57
|
+
console.log(`Marketplace added: ${args.source}`);
|
|
58
|
+
await show_available_plugins(args.source);
|
|
59
|
+
} else error(result.error || "Unknown error");
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Try to find and display available plugins from a newly added marketplace.
|
|
64
|
+
* The marketplace name in the filesystem may differ from the source string,
|
|
65
|
+
* so we try common derivations.
|
|
66
|
+
*/
|
|
67
|
+
async function find_marketplace_plugins(source) {
|
|
68
|
+
const candidates = [];
|
|
69
|
+
const repo_match = source.match(/([^/]+?)(?:\.git)?$/);
|
|
70
|
+
if (repo_match) {
|
|
71
|
+
candidates.push(repo_match[1].toLowerCase());
|
|
72
|
+
candidates.push(repo_match[1]);
|
|
73
|
+
}
|
|
74
|
+
candidates.push(source);
|
|
75
|
+
for (const name of candidates) {
|
|
76
|
+
const manifest = await read_marketplace_manifest(name);
|
|
77
|
+
if (manifest?.plugins?.length) return manifest.plugins.map((p) => {
|
|
78
|
+
const desc = p.description ? ` - ${p.description}` : "";
|
|
79
|
+
return `${p.name}${desc}`;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
async function show_available_plugins(source) {
|
|
85
|
+
const plugins = await find_marketplace_plugins(source);
|
|
86
|
+
if (plugins.length > 0) {
|
|
87
|
+
console.log(`\nAvailable plugins (${plugins.length}):`);
|
|
88
|
+
for (const p of plugins) console.log(` - ${p}`);
|
|
89
|
+
console.log("\nInstall with: mcpick plugins install <name>@<marketplace>");
|
|
90
|
+
} else console.log("\nTo browse and install plugins: mcpick plugins install <name>@<marketplace>");
|
|
91
|
+
}
|
|
92
|
+
var marketplace_default = defineCommand({
|
|
93
|
+
meta: {
|
|
94
|
+
name: "marketplace",
|
|
95
|
+
description: "Manage plugin marketplaces (catalogs of installable plugins). Add a marketplace first, then install plugins from it with: mcpick plugins install <name>@<marketplace>"
|
|
96
|
+
},
|
|
97
|
+
subCommands: {
|
|
98
|
+
list,
|
|
99
|
+
add,
|
|
100
|
+
remove: defineCommand({
|
|
101
|
+
meta: {
|
|
102
|
+
name: "remove",
|
|
103
|
+
description: "Remove a marketplace"
|
|
104
|
+
},
|
|
105
|
+
args: {
|
|
106
|
+
name: {
|
|
107
|
+
type: "positional",
|
|
108
|
+
description: "Marketplace name to remove",
|
|
109
|
+
required: true
|
|
110
|
+
},
|
|
111
|
+
json: {
|
|
112
|
+
type: "boolean",
|
|
113
|
+
description: "Output as JSON",
|
|
114
|
+
default: false
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
async run({ args }) {
|
|
118
|
+
const result = await marketplace_remove_via_cli(args.name);
|
|
119
|
+
if (args.json) output({
|
|
120
|
+
removed: args.name,
|
|
121
|
+
success: result.success,
|
|
122
|
+
error: result.error
|
|
123
|
+
}, true);
|
|
124
|
+
else if (result.success) console.log(`Marketplace removed: ${args.name}`);
|
|
125
|
+
else error(result.error || "Unknown error");
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
update: defineCommand({
|
|
129
|
+
meta: {
|
|
130
|
+
name: "update",
|
|
131
|
+
description: "Update marketplace(s) from source"
|
|
132
|
+
},
|
|
133
|
+
args: {
|
|
134
|
+
name: {
|
|
135
|
+
type: "positional",
|
|
136
|
+
description: "Marketplace name to update (omit to update all)",
|
|
137
|
+
required: false
|
|
138
|
+
},
|
|
139
|
+
json: {
|
|
140
|
+
type: "boolean",
|
|
141
|
+
description: "Output as JSON",
|
|
142
|
+
default: false
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
async run({ args }) {
|
|
146
|
+
const result = await marketplace_update_via_cli(args.name || void 0);
|
|
147
|
+
if (args.json) output({
|
|
148
|
+
updated: args.name || "all",
|
|
149
|
+
success: result.success,
|
|
150
|
+
error: result.error
|
|
151
|
+
}, true);
|
|
152
|
+
else if (result.success) {
|
|
153
|
+
console.log(args.name ? `Marketplace updated: ${args.name}` : "All marketplaces updated.");
|
|
154
|
+
const restored = await check_restored_hooks();
|
|
155
|
+
if (restored.length > 0) {
|
|
156
|
+
console.log(`\nWarning: ${restored.length} disabled hook(s) were restored by the update.`);
|
|
157
|
+
const redisable_result = await redisable_restored_hooks(restored);
|
|
158
|
+
console.log(`Re-disabled ${redisable_result.success} hook(s).${redisable_result.failed > 0 ? ` Failed: ${redisable_result.failed}` : ""}`);
|
|
159
|
+
}
|
|
160
|
+
} else error(result.error || "Unknown error");
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
//#endregion
|
|
166
|
+
export { marketplace_default as default };
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=marketplace-DcKk5dc1.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/cli/output.ts
|
|
2
|
+
function output(data, json) {
|
|
3
|
+
if (json) console.log(JSON.stringify(data, null, 2));
|
|
4
|
+
else if (typeof data === "string") console.log(data);
|
|
5
|
+
else if (Array.isArray(data)) for (const item of data) console.log(item);
|
|
6
|
+
else console.log(data);
|
|
7
|
+
}
|
|
8
|
+
function error(message) {
|
|
9
|
+
console.error(`error: ${message}`);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { output as n, error as t };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=output-BchYq0mR.js.map
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
+
import { access, mkdir } from "node:fs/promises";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
import { homedir } from "node:os";
|
|
6
|
+
//#region src/utils/paths.ts
|
|
7
|
+
var paths_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
ensure_directory_exists: () => ensure_directory_exists,
|
|
9
|
+
get_backup_filename: () => get_backup_filename,
|
|
10
|
+
get_backups_dir: () => get_backups_dir,
|
|
11
|
+
get_base_dir: () => get_base_dir,
|
|
12
|
+
get_claude_config_path: () => get_claude_config_path,
|
|
13
|
+
get_claude_settings_path: () => get_claude_settings_path,
|
|
14
|
+
get_current_project_path: () => get_current_project_path,
|
|
15
|
+
get_dev_overrides_path: () => get_dev_overrides_path,
|
|
16
|
+
get_disabled_hooks_path: () => get_disabled_hooks_path,
|
|
17
|
+
get_installed_plugins_path: () => get_installed_plugins_path,
|
|
18
|
+
get_known_marketplaces_path: () => get_known_marketplaces_path,
|
|
19
|
+
get_marketplace_manifest_path: () => get_marketplace_manifest_path,
|
|
20
|
+
get_marketplaces_dir: () => get_marketplaces_dir,
|
|
21
|
+
get_mcpick_dir: () => get_mcpick_dir,
|
|
22
|
+
get_plugin_backup_filename: () => get_plugin_backup_filename,
|
|
23
|
+
get_plugin_cache_dir: () => get_plugin_cache_dir,
|
|
24
|
+
get_plugins_dir: () => get_plugins_dir,
|
|
25
|
+
get_profile_path: () => get_profile_path,
|
|
26
|
+
get_profiles_dir: () => get_profiles_dir,
|
|
27
|
+
get_project_mcp_json_path: () => get_project_mcp_json_path,
|
|
28
|
+
get_server_registry_path: () => get_server_registry_path
|
|
29
|
+
});
|
|
30
|
+
function get_base_dir() {
|
|
31
|
+
const configDir = process.env.CLAUDE_CONFIG_DIR;
|
|
32
|
+
if (configDir && configDir.length > 0 && existsSync(configDir)) return {
|
|
33
|
+
baseDir: configDir,
|
|
34
|
+
parentDir: dirname(configDir),
|
|
35
|
+
coLocatedConfig: true
|
|
36
|
+
};
|
|
37
|
+
const defaultDir = join(homedir(), ".claude");
|
|
38
|
+
return {
|
|
39
|
+
baseDir: defaultDir,
|
|
40
|
+
parentDir: dirname(defaultDir),
|
|
41
|
+
coLocatedConfig: false
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function get_claude_config_path() {
|
|
45
|
+
const { baseDir, parentDir, coLocatedConfig } = get_base_dir();
|
|
46
|
+
if (coLocatedConfig) return join(baseDir, ".claude.json");
|
|
47
|
+
return join(parentDir, ".claude.json");
|
|
48
|
+
}
|
|
49
|
+
function get_claude_settings_path() {
|
|
50
|
+
return join(get_base_dir().baseDir, "settings.json");
|
|
51
|
+
}
|
|
52
|
+
function get_mcpick_dir() {
|
|
53
|
+
return join(get_base_dir().baseDir, "mcpick");
|
|
54
|
+
}
|
|
55
|
+
function get_dev_overrides_path() {
|
|
56
|
+
return join(get_mcpick_dir(), "dev-overrides.json");
|
|
57
|
+
}
|
|
58
|
+
function get_server_registry_path() {
|
|
59
|
+
return join(get_mcpick_dir(), "servers.json");
|
|
60
|
+
}
|
|
61
|
+
function get_backups_dir() {
|
|
62
|
+
return join(get_mcpick_dir(), "backups");
|
|
63
|
+
}
|
|
64
|
+
function get_profiles_dir() {
|
|
65
|
+
return join(get_mcpick_dir(), "profiles");
|
|
66
|
+
}
|
|
67
|
+
function get_profile_path(name) {
|
|
68
|
+
const filename = name.endsWith(".json") ? name : `${name}.json`;
|
|
69
|
+
return join(get_profiles_dir(), filename);
|
|
70
|
+
}
|
|
71
|
+
function format_backup_timestamp() {
|
|
72
|
+
const now = /* @__PURE__ */ new Date();
|
|
73
|
+
return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}-${String(now.getHours()).padStart(2, "0")}${String(now.getMinutes()).padStart(2, "0")}${String(now.getSeconds()).padStart(2, "0")}`;
|
|
74
|
+
}
|
|
75
|
+
function get_backup_filename() {
|
|
76
|
+
return `mcp-servers-${format_backup_timestamp()}.json`;
|
|
77
|
+
}
|
|
78
|
+
function get_plugin_backup_filename() {
|
|
79
|
+
return `plugins-${format_backup_timestamp()}.json`;
|
|
80
|
+
}
|
|
81
|
+
async function ensure_directory_exists(dir_path) {
|
|
82
|
+
try {
|
|
83
|
+
await access(dir_path);
|
|
84
|
+
} catch {
|
|
85
|
+
await mkdir(dir_path, { recursive: true });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get the current working directory (project path)
|
|
90
|
+
*/
|
|
91
|
+
function get_current_project_path() {
|
|
92
|
+
return process.cwd();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the path to .mcp.json in the current project directory (project scope)
|
|
96
|
+
*/
|
|
97
|
+
function get_project_mcp_json_path() {
|
|
98
|
+
return join(get_current_project_path(), ".mcp.json");
|
|
99
|
+
}
|
|
100
|
+
function get_plugins_dir() {
|
|
101
|
+
return join(get_base_dir().baseDir, "plugins");
|
|
102
|
+
}
|
|
103
|
+
function get_installed_plugins_path() {
|
|
104
|
+
return join(get_plugins_dir(), "installed_plugins.json");
|
|
105
|
+
}
|
|
106
|
+
function get_known_marketplaces_path() {
|
|
107
|
+
return join(get_plugins_dir(), "known_marketplaces.json");
|
|
108
|
+
}
|
|
109
|
+
function get_plugin_cache_dir() {
|
|
110
|
+
return join(get_plugins_dir(), "cache");
|
|
111
|
+
}
|
|
112
|
+
function get_marketplaces_dir() {
|
|
113
|
+
return join(get_plugins_dir(), "marketplaces");
|
|
114
|
+
}
|
|
115
|
+
function get_disabled_hooks_path() {
|
|
116
|
+
return join(get_mcpick_dir(), "disabled-hooks.json");
|
|
117
|
+
}
|
|
118
|
+
function get_marketplace_manifest_path(name) {
|
|
119
|
+
return join(get_marketplaces_dir(), name, ".claude-plugin", "marketplace.json");
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
export { get_profiles_dir as _, get_claude_settings_path as a, paths_exports as b, get_disabled_hooks_path as c, get_marketplace_manifest_path as d, get_marketplaces_dir as f, get_profile_path as g, get_plugin_cache_dir as h, get_claude_config_path as i, get_installed_plugins_path as l, get_plugin_backup_filename as m, get_backup_filename as n, get_current_project_path as o, get_mcpick_dir as p, get_backups_dir as r, get_dev_overrides_path as s, ensure_directory_exists as t, get_known_marketplaces_path as u, get_project_mcp_json_path as v, get_server_registry_path as y };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=paths-BPISiJi4.js.map
|