mcpick 0.0.21 → 0.0.23

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +30 -5
  2. package/README.md +150 -127
  3. package/dist/add-LJQa2my2.js +164 -0
  4. package/dist/add-json-TEdYweZ5.js +95 -0
  5. package/dist/{backup-DSDhHI5f.js → backup-kyS5IVIr.js} +4 -4
  6. package/dist/{cache-D6kd7qE8.js → cache-DTfzTsEE.js} +3 -3
  7. package/dist/cli-By-0nYNQ.js +112 -0
  8. package/dist/clients-qMozizys.js +30 -0
  9. package/dist/{clone-DYKPEsar.js → clone-BVhYjRGO.js} +5 -6
  10. package/dist/{config-DijVdEFn.js → config-DzMmTJYL.js} +2 -2
  11. package/dist/{dev-DRJRNp7y.js → dev-Cst8WkQ-.js} +5 -5
  12. package/dist/disable-BaOs9lrm.js +83 -0
  13. package/dist/enable--3mjSmTq.js +84 -0
  14. package/dist/{get-Bb1eOOIZ.js → get-CjhNWyRj.js} +3 -3
  15. package/dist/{hooks-Bmn7pUZa.js → hooks-DFmxgD0t.js} +3 -4
  16. package/dist/index.js +1929 -297
  17. package/dist/list-D5CkCXpP.js +100 -0
  18. package/dist/{marketplace-DcKk5dc1.js → marketplace-C3EGyIG0.js} +4 -5
  19. package/dist/output-HtT5HCof.js +17 -0
  20. package/dist/{plugin-cache-Bby9Dxm9.js → plugin-cache-BSgB42wa.js} +34 -15
  21. package/dist/{plugins-Dc7DN6R_.js → plugins-Dn2mPFKm.js} +4 -5
  22. package/dist/{profile-CX97sMGp.js → profile-Dq3ORPil.js} +4 -5
  23. package/dist/redact-wBMtzbno.js +88 -0
  24. package/dist/{reload-CYDhkCVZ.js → reload-257iU7Z7.js} +2 -2
  25. package/dist/remove-26XFzkPd.js +87 -0
  26. package/dist/{reset-project-choices-BfRSNN3m.js → reset-project-choices-D2F04LfC.js} +3 -3
  27. package/dist/{restore-DdMfUljI.js → restore-BYYsoNqF.js} +4 -5
  28. package/dist/rollback-CPdaME91.js +55 -0
  29. package/dist/skills-DfWk9mpk.js +216 -0
  30. package/package.json +22 -8
  31. package/.github/copilot-instructions.md +0 -32
  32. package/.github/workflows/ci.yml +0 -26
  33. package/.vscode/settings.json +0 -5
  34. package/dist/add-BDyaBew0.js +0 -113
  35. package/dist/add-json-BjgzdeG-.js +0 -58
  36. package/dist/atomic-write-BqEykHp9.js +0 -26
  37. package/dist/claude-cli-DnmBJrjg.js +0 -445
  38. package/dist/cli-CsFfnWBo.js +0 -84
  39. package/dist/disable-xJXZfUR_.js +0 -39
  40. package/dist/enable-RrpcN6la.js +0 -40
  41. package/dist/hook-state-Di8lUsPr.js +0 -171
  42. package/dist/list-B8YeDWt6.js +0 -64
  43. package/dist/output-BchYq0mR.js +0 -15
  44. package/dist/profile-DkY_lBEm.js +0 -70
  45. package/dist/redact-O35tjnRD.js +0 -26
  46. package/dist/registry-CfUKT7_C.js +0 -92
  47. package/dist/remove-D1owHLhG.js +0 -31
  48. package/dist/settings-DEcWtzLE.js +0 -201
@@ -1,5 +1,5 @@
1
- import { a as list_linked_plugins, c as read_installed_plugins, d as refresh_all_marketplaces, f as scan_all_cache_keys, i as link_local_plugin, n as clear_plugin_caches, p as unlink_local_plugin, r as get_cached_plugins_info, t as clean_orphaned_versions } from "./plugin-cache-Bby9Dxm9.js";
2
- import { n as output, t as error } from "./output-BchYq0mR.js";
1
+ import { a as list_linked_plugins, c as read_installed_plugins, d as refresh_all_marketplaces, f as scan_all_cache_keys, i as link_local_plugin, n as clear_plugin_caches, p as unlink_local_plugin, r as get_cached_plugins_info, t as clean_orphaned_versions } from "./plugin-cache-BSgB42wa.js";
2
+ import { n as output, t as error } from "./output-HtT5HCof.js";
3
3
  import { defineCommand } from "citty";
4
4
  var cache_default = defineCommand({
5
5
  meta: {
@@ -223,4 +223,4 @@ var cache_default = defineCommand({
223
223
  //#endregion
224
224
  export { cache_default as default };
225
225
 
226
- //# sourceMappingURL=cache-D6kd7qE8.js.map
226
+ //# sourceMappingURL=cache-DTfzTsEE.js.map
@@ -0,0 +1,112 @@
1
+ import { defineCommand, renderUsage, runMain } from "citty";
2
+ //#region src/cli/index.ts
3
+ const main = defineCommand({
4
+ meta: {
5
+ name: "mcpick",
6
+ description: "Vendor-neutral MCP configuration manager with first-class Claude Code support"
7
+ },
8
+ subCommands: {
9
+ list: () => import("./list-D5CkCXpP.js").then((m) => m.default),
10
+ enable: () => import("./enable--3mjSmTq.js").then((m) => m.default),
11
+ disable: () => import("./disable-BaOs9lrm.js").then((m) => m.default),
12
+ clients: () => import("./clients-qMozizys.js").then((m) => m.default),
13
+ remove: () => import("./remove-26XFzkPd.js").then((m) => m.default),
14
+ add: () => import("./add-LJQa2my2.js").then((m) => m.default),
15
+ "add-json": () => import("./add-json-TEdYweZ5.js").then((m) => m.default),
16
+ clone: () => import("./clone-BVhYjRGO.js").then((m) => m.default),
17
+ get: () => import("./get-CjhNWyRj.js").then((m) => m.default),
18
+ "reset-project-choices": () => import("./reset-project-choices-D2F04LfC.js").then((m) => m.default),
19
+ backup: () => import("./backup-kyS5IVIr.js").then((m) => m.default),
20
+ restore: () => import("./restore-BYYsoNqF.js").then((m) => m.default),
21
+ profile: () => import("./profile-Dq3ORPil.js").then((m) => m.default),
22
+ skills: () => import("./skills-DfWk9mpk.js").then((m) => m.default),
23
+ plugins: () => import("./plugins-Dn2mPFKm.js").then((m) => m.default),
24
+ hooks: () => import("./hooks-DFmxgD0t.js").then((m) => m.default),
25
+ cache: () => import("./cache-DTfzTsEE.js").then((m) => m.default),
26
+ dev: () => import("./dev-Cst8WkQ-.js").then((m) => m.default),
27
+ marketplace: () => import("./marketplace-C3EGyIG0.js").then((m) => m.default),
28
+ reload: () => import("./reload-257iU7Z7.js").then((m) => m.default),
29
+ rollback: () => import("./rollback-CPdaME91.js").then((m) => m.default)
30
+ }
31
+ });
32
+ /**
33
+ * Custom help renderer that appends workflow guidance and examples
34
+ * after citty's standard help output. This is critical for LLM agents
35
+ * that rely on --help output to understand multi-step workflows.
36
+ */
37
+ async function show_usage_with_examples(cmd, parent) {
38
+ const base = await renderUsage(cmd, parent);
39
+ if ((await (typeof cmd.meta === "function" ? cmd.meta() : cmd.meta))?.name === "mcpick") console.log(base + "\n" + WORKFLOW_SECTION + "\n" + CONCEPTS_SECTION + "\n" + EXAMPLES_SECTION + "\n");
40
+ else console.log(base + "\n");
41
+ }
42
+ const WORKFLOW_SECTION = `
43
+ \x1b[4m\x1b[1mWORKFLOW\x1b[22m\x1b[24m MCPick has two vendor-neutral layers and one Claude Code-specific layer.
44
+
45
+ MCP servers: toggle configured servers per client with mcpick list/enable/disable/clients.
46
+ Skills: install portable SKILL.md packs through the external skills CLI via mcpick skills.
47
+ Claude Code plugins/hooks/marketplaces: client-specific commands under plugins/hooks/marketplace/cache.`;
48
+ const CONCEPTS_SECTION = `
49
+ \x1b[4m\x1b[1mCONCEPTS\x1b[22m\x1b[24m
50
+
51
+ Marketplace Claude Code-specific plugin catalog hosted on GitHub, GitLab, or locally
52
+ Plugin Claude Code bundle containing any mix of: skills, hooks, agents, MCP servers
53
+ Skill Portable SKILL.md instruction pack installed into one or more agent clients
54
+ MCP server A tool server providing external capabilities to an AI client
55
+ MCP client An application that loads MCP server config (Claude Code, Gemini CLI, VS Code, Cursor, OpenCode, Pi via pi-mcp-adapter, etc.)
56
+ Hook An event handler that runs on tool use, session start, etc.
57
+ Profile A saved snapshot of your MCP server and plugin configuration`;
58
+ const EXAMPLES_SECTION = `
59
+ \x1b[4m\x1b[1mEXAMPLES\x1b[22m\x1b[24m
60
+
61
+ Add a marketplace from GitHub (owner/repo):
62
+ mcpick marketplace add spences10/claude-code-toolkit
63
+
64
+ Add a marketplace from a full URL:
65
+ mcpick marketplace add https://github.com/spences10/claude-code-toolkit
66
+
67
+ Install a plugin from a marketplace:
68
+ mcpick plugins install my-plugin@claude-code-toolkit
69
+
70
+ List all installed plugins and their status:
71
+ mcpick plugins list
72
+
73
+ Toggle an MCP server on or off:
74
+ mcpick enable my-server
75
+ mcpick disable my-server
76
+
77
+ List all MCP servers for Claude Code:
78
+ mcpick list
79
+
80
+ List servers for another client:
81
+ mcpick list --client gemini-cli --scope project
82
+ mcpick list --client opencode --scope project
83
+ mcpick list --client pi --scope user
84
+
85
+ Show supported client config locations:
86
+ mcpick clients
87
+
88
+ List portable skills installed for Pi:
89
+ mcpick skills list --agent pi --json
90
+
91
+ See skills available from a repo without installing:
92
+ mcpick skills add spences10/skills --list
93
+
94
+ Install one portable skill for Pi:
95
+ mcpick skills add spences10/skills --agent pi --skill svelte-runes --yes
96
+
97
+ Install all portable skills for OpenCode globally:
98
+ mcpick skills add spences10/skills --agent opencode --skill '*' --global --yes
99
+
100
+ Update portable skills non-interactively:
101
+ mcpick skills update --global --yes
102
+
103
+ Remove a portable skill for Pi:
104
+ mcpick skills remove svelte-runes --agent pi --yes
105
+
106
+ Prefer --json for machine-readable output where supported. MCPick redacts known secret patterns before printing.
107
+ Run without arguments to launch the interactive TUI (not suitable for LLM agents).`;
108
+ const run = () => runMain(main, { showUsage: show_usage_with_examples });
109
+ //#endregion
110
+ export { run };
111
+
112
+ //# sourceMappingURL=cli-By-0nYNQ.js.map
@@ -0,0 +1,30 @@
1
+ import { N as list_client_locations } from "./index.js";
2
+ import { n as output } from "./output-HtT5HCof.js";
3
+ import { defineCommand } from "citty";
4
+ //#region src/cli/commands/clients.ts
5
+ var clients_default = defineCommand({
6
+ meta: {
7
+ name: "clients",
8
+ description: "List supported MCP clients and known config locations"
9
+ },
10
+ args: { json: {
11
+ type: "boolean",
12
+ description: "Output as JSON",
13
+ default: false
14
+ } },
15
+ async run({ args }) {
16
+ const locations = await list_client_locations();
17
+ if (args.json) {
18
+ output(locations, true);
19
+ return;
20
+ }
21
+ for (const location of locations) {
22
+ const status = location.exists ? "found" : "missing";
23
+ console.log(`${location.client}:${location.scope} ${status} ${location.path}`);
24
+ }
25
+ }
26
+ });
27
+ //#endregion
28
+ export { clients_default as default };
29
+
30
+ //# sourceMappingURL=clients-qMozizys.js.map
@@ -1,9 +1,8 @@
1
1
  import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
2
- import { t as add_server_to_registry } from "./registry-CfUKT7_C.js";
3
- import { t as add_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
4
- import { i as find_server_in_scope, r as detect_server_scope } from "./config-DijVdEFn.js";
5
- import { n as output, t as error } from "./output-BchYq0mR.js";
6
- import { t as redact_server } from "./redact-O35tjnRD.js";
2
+ import { i as find_server_in_scope, r as detect_server_scope } from "./config-DzMmTJYL.js";
3
+ import { n as redact_server } from "./redact-wBMtzbno.js";
4
+ import { d as add_mcp_via_cli, w as add_server_to_registry } from "./index.js";
5
+ import { n as output, t as error } from "./output-HtT5HCof.js";
7
6
  import { defineCommand } from "citty";
8
7
  //#region src/cli/commands/clone.ts
9
8
  var clone_default = defineCommand({
@@ -85,4 +84,4 @@ var clone_default = defineCommand({
85
84
  //#endregion
86
85
  export { clone_default as default };
87
86
 
88
- //# sourceMappingURL=clone-DYKPEsar.js.map
87
+ //# sourceMappingURL=clone-BVhYjRGO.js.map
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
2
2
  import { i as get_claude_config_path, o as get_current_project_path, v as get_project_mcp_json_path } from "./paths-BPISiJi4.js";
3
3
  import { t as validate_claude_config } from "./validation-xMlbgGCF.js";
4
- import { t as atomic_json_write } from "./atomic-write-BqEykHp9.js";
4
+ import { W as atomic_json_write } from "./index.js";
5
5
  import { access, readFile } from "node:fs/promises";
6
6
  //#region src/core/config.ts
7
7
  var config_exports = /* @__PURE__ */ __exportAll({
@@ -173,4 +173,4 @@ async function get_enabled_servers_for_scope(scope) {
173
173
  //#endregion
174
174
  export { get_enabled_servers as a, write_claude_config as c, find_server_in_scope as i, create_config_from_servers as n, get_enabled_servers_for_scope as o, detect_server_scope as r, read_claude_config as s, config_exports as t };
175
175
 
176
- //# sourceMappingURL=config-DijVdEFn.js.map
176
+ //# sourceMappingURL=config-DzMmTJYL.js.map
@@ -1,8 +1,8 @@
1
1
  import { i as get_claude_config_path, o as get_current_project_path, s as get_dev_overrides_path, v as get_project_mcp_json_path } from "./paths-BPISiJi4.js";
2
- import { t as atomic_json_write } from "./atomic-write-BqEykHp9.js";
3
- import { i as find_server_in_scope, r as detect_server_scope } from "./config-DijVdEFn.js";
4
- import { n as output, t as error } from "./output-BchYq0mR.js";
5
- import { n as redact_server_base } from "./redact-O35tjnRD.js";
2
+ import { i as find_server_in_scope, r as detect_server_scope } from "./config-DzMmTJYL.js";
3
+ import { r as redact_server_base } from "./redact-wBMtzbno.js";
4
+ import { W as atomic_json_write } from "./index.js";
5
+ import { n as output, t as error } from "./output-HtT5HCof.js";
6
6
  import { readFile } from "node:fs/promises";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/core/dev-override.ts
@@ -262,4 +262,4 @@ var dev_default = defineCommand({
262
262
  //#endregion
263
263
  export { dev_default as default };
264
264
 
265
- //# sourceMappingURL=dev-DRJRNp7y.js.map
265
+ //# sourceMappingURL=dev-Cst8WkQ-.js.map
@@ -0,0 +1,83 @@
1
+ import { F as resolve_client_location, I as set_client_server_enabled, M as get_client_adapter, T as get_all_available_servers, b as remove_mcp_via_cli } from "./index.js";
2
+ import { n as output, t as error } from "./output-HtT5HCof.js";
3
+ import { defineCommand } from "citty";
4
+ //#region src/cli/commands/disable.ts
5
+ var disable_default = defineCommand({
6
+ meta: {
7
+ name: "disable",
8
+ description: "Disable an MCP server"
9
+ },
10
+ args: {
11
+ server: {
12
+ type: "positional",
13
+ description: "Server name to disable",
14
+ required: true
15
+ },
16
+ client: {
17
+ type: "string",
18
+ description: "Client to edit: claude-code, gemini-cli, vscode, cursor, windsurf, opencode, or pi",
19
+ default: "claude-code"
20
+ },
21
+ scope: {
22
+ type: "string",
23
+ description: "Scope: local, project, or user (default: local for Claude Code)"
24
+ },
25
+ location: {
26
+ type: "string",
27
+ description: "Exact config path when a client has multiple matching locations"
28
+ },
29
+ json: {
30
+ type: "boolean",
31
+ description: "Output as JSON",
32
+ default: false
33
+ }
34
+ },
35
+ async run({ args }) {
36
+ if (args.client && args.client !== "claude-code") {
37
+ await disable_client_server(args.client, args.server, args.scope, args.location, args.json);
38
+ return;
39
+ }
40
+ const scope = args.scope || "local";
41
+ if (![
42
+ "local",
43
+ "project",
44
+ "user"
45
+ ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
46
+ await get_all_available_servers();
47
+ const result = await remove_mcp_via_cli(args.server, scope);
48
+ if (!result.success) error(result.error || "Failed to disable server");
49
+ if (args.json) output({
50
+ disabled: args.server,
51
+ client: "claude-code",
52
+ scope
53
+ }, true);
54
+ else console.log(`Disabled '${args.server}' (scope: ${scope})`);
55
+ }
56
+ });
57
+ async function disable_client_server(client, server, scope, location_path, json) {
58
+ const adapter = get_client_adapter(client);
59
+ if (!adapter) error(`Invalid client: ${client}. Use claude-code, gemini-cli, vscode, cursor, windsurf, opencode, or pi.`);
60
+ if (scope && ![
61
+ "local",
62
+ "project",
63
+ "user"
64
+ ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
65
+ try {
66
+ const location = resolve_client_location(adapter, scope, location_path);
67
+ const enabled_count = await set_client_server_enabled(adapter, location, server, false);
68
+ if (json) output({
69
+ disabled: server,
70
+ client: adapter.id,
71
+ scope: location.scope,
72
+ location: location.path,
73
+ enabledCount: enabled_count
74
+ }, true);
75
+ else console.log(`Disabled '${server}' (${adapter.id}:${location.scope})`);
76
+ } catch (err) {
77
+ error(err instanceof Error ? err.message : "Failed to disable server");
78
+ }
79
+ }
80
+ //#endregion
81
+ export { disable_default as default };
82
+
83
+ //# sourceMappingURL=disable-BaOs9lrm.js.map
@@ -0,0 +1,84 @@
1
+ import { F as resolve_client_location, I as set_client_server_enabled, M as get_client_adapter, T as get_all_available_servers, d as add_mcp_via_cli } from "./index.js";
2
+ import { n as output, t as error } from "./output-HtT5HCof.js";
3
+ import { defineCommand } from "citty";
4
+ //#region src/cli/commands/enable.ts
5
+ var enable_default = defineCommand({
6
+ meta: {
7
+ name: "enable",
8
+ description: "Enable an MCP server"
9
+ },
10
+ args: {
11
+ server: {
12
+ type: "positional",
13
+ description: "Server name to enable",
14
+ required: true
15
+ },
16
+ client: {
17
+ type: "string",
18
+ description: "Client to edit: claude-code, gemini-cli, vscode, cursor, windsurf, opencode, or pi",
19
+ default: "claude-code"
20
+ },
21
+ scope: {
22
+ type: "string",
23
+ description: "Scope: local, project, or user (default: local for Claude Code)"
24
+ },
25
+ location: {
26
+ type: "string",
27
+ description: "Exact config path when a client has multiple matching locations"
28
+ },
29
+ json: {
30
+ type: "boolean",
31
+ description: "Output as JSON",
32
+ default: false
33
+ }
34
+ },
35
+ async run({ args }) {
36
+ if (args.client && args.client !== "claude-code") {
37
+ await enable_client_server(args.client, args.server, args.scope, args.location, args.json);
38
+ return;
39
+ }
40
+ const scope = args.scope || "local";
41
+ if (![
42
+ "local",
43
+ "project",
44
+ "user"
45
+ ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
46
+ const server = (await get_all_available_servers()).find((s) => s.name === args.server);
47
+ if (!server) error(`Server '${args.server}' not found in registry. Run 'mcpick list' to see available servers.`);
48
+ const result = await add_mcp_via_cli(server, scope);
49
+ if (!result.success) error(result.error || "Failed to enable server");
50
+ if (args.json) output({
51
+ enabled: server.name,
52
+ client: "claude-code",
53
+ scope
54
+ }, true);
55
+ else console.log(`Enabled '${server.name}' (scope: ${scope})`);
56
+ }
57
+ });
58
+ async function enable_client_server(client, server, scope, location_path, json) {
59
+ const adapter = get_client_adapter(client);
60
+ if (!adapter) error(`Invalid client: ${client}. Use claude-code, gemini-cli, vscode, cursor, windsurf, opencode, or pi.`);
61
+ if (scope && ![
62
+ "local",
63
+ "project",
64
+ "user"
65
+ ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
66
+ try {
67
+ const location = resolve_client_location(adapter, scope, location_path);
68
+ const enabled_count = await set_client_server_enabled(adapter, location, server, true);
69
+ if (json) output({
70
+ enabled: server,
71
+ client: adapter.id,
72
+ scope: location.scope,
73
+ location: location.path,
74
+ enabledCount: enabled_count
75
+ }, true);
76
+ else console.log(`Enabled '${server}' (${adapter.id}:${location.scope})`);
77
+ } catch (err) {
78
+ error(err instanceof Error ? err.message : "Failed to enable server");
79
+ }
80
+ }
81
+ //#endregion
82
+ export { enable_default as default };
83
+
84
+ //# sourceMappingURL=enable--3mjSmTq.js.map
@@ -1,5 +1,5 @@
1
- import { d as mcp_get_via_cli } from "./claude-cli-DnmBJrjg.js";
2
- import { n as output, t as error } from "./output-BchYq0mR.js";
1
+ import { v as mcp_get_via_cli } from "./index.js";
2
+ import { n as output, t as error } from "./output-HtT5HCof.js";
3
3
  import { defineCommand } from "citty";
4
4
  //#region src/cli/commands/get.ts
5
5
  var get_default = defineCommand({
@@ -38,4 +38,4 @@ var get_default = defineCommand({
38
38
  //#endregion
39
39
  export { get_default as default };
40
40
 
41
- //# sourceMappingURL=get-Bb1eOOIZ.js.map
41
+ //# sourceMappingURL=get-CjhNWyRj.js.map
@@ -1,6 +1,5 @@
1
- import { o as remove_hook, r as get_all_hooks, t as add_hook } from "./settings-DEcWtzLE.js";
2
- import { a as redisable_restored_hooks, i as read_disabled_hooks, n as disable_plugin_hook, r as enable_plugin_hook, t as check_restored_hooks } from "./hook-state-Di8lUsPr.js";
3
- import { n as output, t as error } from "./output-BchYq0mR.js";
1
+ import { H as remove_hook, L as add_hook, c as enable_plugin_hook, l as read_disabled_hooks, o as check_restored_hooks, s as disable_plugin_hook, u as redisable_restored_hooks, z as get_all_hooks } from "./index.js";
2
+ import { n as output, t as error } from "./output-HtT5HCof.js";
4
3
  import { defineCommand } from "citty";
5
4
  var hooks_default = defineCommand({
6
5
  meta: {
@@ -277,4 +276,4 @@ var hooks_default = defineCommand({
277
276
  //#endregion
278
277
  export { hooks_default as default };
279
278
 
280
- //# sourceMappingURL=hooks-Bmn7pUZa.js.map
279
+ //# sourceMappingURL=hooks-DFmxgD0t.js.map