@thebushidocollective/han 1.41.2 → 1.42.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.
@@ -1,3 +1,3 @@
1
- export declare const HAN_VERSION = "1.41.2";
1
+ export declare const HAN_VERSION = "1.42.1";
2
2
  export declare const DETECT_PLUGINS_PROMPT = "<!--\nThis prompt template is dynamically enhanced in shared.ts with:\n1. GIT REPOSITORY section - Remote URL to determine hosting platform (GitHub, GitLab, etc.)\n2. CURRENTLY INSTALLED PLUGINS section - List of plugins already installed (if any)\n3. CODEBASE STATISTICS section - File extensions and config file names from codebase-analyzer.ts\n4. AVAILABLE PLUGINS IN MARKETPLACE section - Plugin list from marketplace.json\n\nThese sections are appended to this base prompt at runtime.\n-->\n\n# Han Plugin Installer Assistant\n\nYou are a Han plugin installer assistant. Your goal is to analyze the current codebase and recommend appropriate Claude Code plugins from the Han marketplace.\n\nThe available plugins from the marketplace are provided below. ONLY recommend plugins from this list.\n\n## Plugin Categories\n\n- **jutsu-\\*** (\u6B66\u5668 weapons): Skills for specific technologies and frameworks\n- **do-\\*** (\u9053 disciplines): Specialized agents for development practices and workflows\n- **hashi-\\*** (\u5148\u751F teachers): MCP servers for external integrations\n- **bushido**: Core quality principles (ALWAYS recommend this)\n\n## Your Analysis Process\n\n### STEP 1: Analyze currently installed plugins (if provided)\n\n- Check if CURRENTLY INSTALLED PLUGINS section is provided in the prompt\n- If provided, you should:\n - **Understand why each plugin was likely added**: Look at plugin descriptions and infer original use case\n - Example: `jutsu-typescript` suggests TypeScript development\n - Example: `hashi-github` suggests GitHub integration needs\n - Example: `do-frontend-development` suggests frontend focus\n - **Determine if each plugin is still relevant**:\n - Use the codebase statistics and configuration files to verify if the technology/practice is still in use\n - A plugin is still relevant if its associated technology/practice is actively used in the codebase\n - A plugin may be irrelevant if:\n - The technology was removed (e.g., no more .ts files but jutsu-typescript is installed)\n - The project migrated to a different platform (e.g., moved from GitHub to GitLab)\n - The framework changed (e.g., migrated from React to Vue)\n - **Keep relevant plugins in your recommendations**: If a plugin is still relevant, include it in your final list\n - **Exclude irrelevant plugins**: If a plugin is no longer needed, do not include it in your recommendations\n\n### STEP 2: Check git repository hosting platform (if provided)\n\n- Check if GIT REPOSITORY section is provided in the prompt\n- If provided, examine the remote URL to determine the hosting platform:\n - URLs containing `github.com` \u2192 recommend `hashi-github`\n - URLs containing `gitlab.com` or other GitLab instances \u2192 recommend `hashi-gitlab`\n - This helps integrate Claude Code with the project's issue tracking, PRs/MRs, and CI/CD\n\n### STEP 3: Review pre-computed codebase statistics (if provided)\n\n- Check if CODEBASE STATISTICS section is provided in the prompt\n- If provided, you have:\n - **File extension counts** (e.g., .ts: 456, .py: 123) - interpret these as technologies\n - .ts, .tsx, .jsx = TypeScript/JavaScript\n - .py = Python\n - .rs = Rust\n - .go = Go\n - .rb = Ruby\n - .ex, .exs = Elixir\n - .vue = Vue.js\n - etc.\n - **Config file names** (e.g., package.json, Cargo.toml, go.mod) - these reveal frameworks and tools\n- If statistics are NOT provided, use Glob to discover file types\n - Example: glob(\"\\*_/_.ts\") to find TypeScript files\n - Example: glob(\"\\*_/_.py\") to find Python files\n\n### STEP 4: Examine key configuration files\n\n- Config files are already identified in the statistics (if provided)\n- Use Read tool to examine important config files:\n - package.json - reveals Node.js frameworks, dependencies\n - Cargo.toml - reveals Rust dependencies\n - go.mod - reveals Go dependencies\n - requirements.txt, pyproject.toml - reveals Python dependencies\n - mix.exs - reveals Elixir dependencies\n- Use Grep to search for framework-specific patterns\n - Example: grep(\"import.\\*react\") to confirm React usage\n - Example: grep(\"from django\") to confirm Django usage\n\n### STEP 5: Identify technologies and patterns\n\n- Programming languages (TypeScript, Python, Go, Rust, Ruby, etc.)\n- Frameworks and libraries (React, Vue, Django, Rails, etc.)\n- Testing frameworks (Jest, Pytest, RSpec, etc.)\n- Build tools and infrastructure (Docker, Kubernetes, etc.)\n- Development practices (API development, frontend development, mobile, etc.)\n- Content patterns (blog posts, documentation, CMS usage)\n- CI/CD configurations\n- Accessibility tooling\n\n### STEP 6: Match findings to available plugins\n\n- Look at the plugin descriptions and keywords below\n- Cross-reference detected technologies with available jutsu-\\* plugins\n- Cross-reference development practices with available do-\\* plugins\n- Cross-reference integrations with available hashi-\\* plugins\n- ONLY recommend plugins from the list provided\n- Aim for 3-8 total plugins that best match the codebase\n- Always include \"bushido\" as it's the core plugin\n\n## Output Format\n\nReturn ONLY a JSON array of recommended plugin names from the available plugins list:\n\n```json\n[\"bushido\", \"jutsu-typescript\", \"jutsu-react\", \"do-frontend-development\"]\n```\n\n**CRITICAL**: Only recommend plugins that appear in the AVAILABLE PLUGINS list below. Never recommend plugins not in the list.\n";
3
3
  //# sourceMappingURL=build-info.generated.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Auto-generated by build-bundle.js - DO NOT EDIT
2
- export const HAN_VERSION = "1.41.2";
2
+ export const HAN_VERSION = "1.42.1";
3
3
  export const DETECT_PLUGINS_PROMPT = "<!--\nThis prompt template is dynamically enhanced in shared.ts with:\n1. GIT REPOSITORY section - Remote URL to determine hosting platform (GitHub, GitLab, etc.)\n2. CURRENTLY INSTALLED PLUGINS section - List of plugins already installed (if any)\n3. CODEBASE STATISTICS section - File extensions and config file names from codebase-analyzer.ts\n4. AVAILABLE PLUGINS IN MARKETPLACE section - Plugin list from marketplace.json\n\nThese sections are appended to this base prompt at runtime.\n-->\n\n# Han Plugin Installer Assistant\n\nYou are a Han plugin installer assistant. Your goal is to analyze the current codebase and recommend appropriate Claude Code plugins from the Han marketplace.\n\nThe available plugins from the marketplace are provided below. ONLY recommend plugins from this list.\n\n## Plugin Categories\n\n- **jutsu-\\*** (武器 weapons): Skills for specific technologies and frameworks\n- **do-\\*** (道 disciplines): Specialized agents for development practices and workflows\n- **hashi-\\*** (先生 teachers): MCP servers for external integrations\n- **bushido**: Core quality principles (ALWAYS recommend this)\n\n## Your Analysis Process\n\n### STEP 1: Analyze currently installed plugins (if provided)\n\n- Check if CURRENTLY INSTALLED PLUGINS section is provided in the prompt\n- If provided, you should:\n - **Understand why each plugin was likely added**: Look at plugin descriptions and infer original use case\n - Example: `jutsu-typescript` suggests TypeScript development\n - Example: `hashi-github` suggests GitHub integration needs\n - Example: `do-frontend-development` suggests frontend focus\n - **Determine if each plugin is still relevant**:\n - Use the codebase statistics and configuration files to verify if the technology/practice is still in use\n - A plugin is still relevant if its associated technology/practice is actively used in the codebase\n - A plugin may be irrelevant if:\n - The technology was removed (e.g., no more .ts files but jutsu-typescript is installed)\n - The project migrated to a different platform (e.g., moved from GitHub to GitLab)\n - The framework changed (e.g., migrated from React to Vue)\n - **Keep relevant plugins in your recommendations**: If a plugin is still relevant, include it in your final list\n - **Exclude irrelevant plugins**: If a plugin is no longer needed, do not include it in your recommendations\n\n### STEP 2: Check git repository hosting platform (if provided)\n\n- Check if GIT REPOSITORY section is provided in the prompt\n- If provided, examine the remote URL to determine the hosting platform:\n - URLs containing `github.com` → recommend `hashi-github`\n - URLs containing `gitlab.com` or other GitLab instances → recommend `hashi-gitlab`\n - This helps integrate Claude Code with the project's issue tracking, PRs/MRs, and CI/CD\n\n### STEP 3: Review pre-computed codebase statistics (if provided)\n\n- Check if CODEBASE STATISTICS section is provided in the prompt\n- If provided, you have:\n - **File extension counts** (e.g., .ts: 456, .py: 123) - interpret these as technologies\n - .ts, .tsx, .jsx = TypeScript/JavaScript\n - .py = Python\n - .rs = Rust\n - .go = Go\n - .rb = Ruby\n - .ex, .exs = Elixir\n - .vue = Vue.js\n - etc.\n - **Config file names** (e.g., package.json, Cargo.toml, go.mod) - these reveal frameworks and tools\n- If statistics are NOT provided, use Glob to discover file types\n - Example: glob(\"\\*_/_.ts\") to find TypeScript files\n - Example: glob(\"\\*_/_.py\") to find Python files\n\n### STEP 4: Examine key configuration files\n\n- Config files are already identified in the statistics (if provided)\n- Use Read tool to examine important config files:\n - package.json - reveals Node.js frameworks, dependencies\n - Cargo.toml - reveals Rust dependencies\n - go.mod - reveals Go dependencies\n - requirements.txt, pyproject.toml - reveals Python dependencies\n - mix.exs - reveals Elixir dependencies\n- Use Grep to search for framework-specific patterns\n - Example: grep(\"import.\\*react\") to confirm React usage\n - Example: grep(\"from django\") to confirm Django usage\n\n### STEP 5: Identify technologies and patterns\n\n- Programming languages (TypeScript, Python, Go, Rust, Ruby, etc.)\n- Frameworks and libraries (React, Vue, Django, Rails, etc.)\n- Testing frameworks (Jest, Pytest, RSpec, etc.)\n- Build tools and infrastructure (Docker, Kubernetes, etc.)\n- Development practices (API development, frontend development, mobile, etc.)\n- Content patterns (blog posts, documentation, CMS usage)\n- CI/CD configurations\n- Accessibility tooling\n\n### STEP 6: Match findings to available plugins\n\n- Look at the plugin descriptions and keywords below\n- Cross-reference detected technologies with available jutsu-\\* plugins\n- Cross-reference development practices with available do-\\* plugins\n- Cross-reference integrations with available hashi-\\* plugins\n- ONLY recommend plugins from the list provided\n- Aim for 3-8 total plugins that best match the codebase\n- Always include \"bushido\" as it's the core plugin\n\n## Output Format\n\nReturn ONLY a JSON array of recommended plugin names from the available plugins list:\n\n```json\n[\"bushido\", \"jutsu-typescript\", \"jutsu-react\", \"do-frontend-development\"]\n```\n\n**CRITICAL**: Only recommend plugins that appear in the AVAILABLE PLUGINS list below. Never recommend plugins not in the list.\n";
4
4
  //# sourceMappingURL=build-info.generated.js.map
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Marketplace source configuration
3
+ */
4
+ export interface MarketplaceSource {
5
+ source: "directory" | "git" | "github";
6
+ path?: string;
7
+ url?: string;
8
+ repo?: string;
9
+ }
10
+ /**
11
+ * Marketplace configuration
12
+ */
13
+ export interface MarketplaceConfig {
14
+ source: MarketplaceSource;
15
+ }
16
+ /**
17
+ * Claude Code settings structure
18
+ */
19
+ export interface ClaudeSettings {
20
+ extraKnownMarketplaces?: Record<string, MarketplaceConfig>;
21
+ enabledPlugins?: Record<string, boolean>;
22
+ hooks?: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Settings file locations in order of precedence (lowest to highest priority):
26
+ * 1. User settings (~/.claude/settings.json) - Personal global settings
27
+ * 2. Project settings (.claude/settings.json) - Team-shared project settings
28
+ * 3. Local settings (.claude/settings.local.json) - Personal project-specific settings
29
+ * 4. Enterprise managed settings (managed-settings.json) - Cannot be overridden
30
+ *
31
+ * @see https://code.claude.com/docs/en/settings
32
+ */
33
+ export type SettingsScope = "user" | "project" | "local" | "enterprise";
34
+ /**
35
+ * Get Claude config directory (~/.claude)
36
+ */
37
+ export declare function getClaudeConfigDir(): string;
38
+ /**
39
+ * Get project directory (current working directory)
40
+ */
41
+ export declare function getProjectDir(): string;
42
+ /**
43
+ * Read settings from a file path
44
+ */
45
+ export declare function readSettingsFile(path: string): ClaudeSettings | null;
46
+ /**
47
+ * Get all settings file paths in order of precedence (lowest to highest)
48
+ */
49
+ export declare function getSettingsPaths(): {
50
+ scope: SettingsScope;
51
+ path: string;
52
+ }[];
53
+ /**
54
+ * Get all enabled plugins and marketplace configurations from merged settings.
55
+ *
56
+ * Settings are merged in order of precedence:
57
+ * 1. User settings (~/.claude/settings.json) - lowest priority
58
+ * 2. Project settings (.claude/settings.json)
59
+ * 3. Local settings (.claude/settings.local.json)
60
+ * 4. Enterprise settings (managed-settings.json) - highest priority
61
+ *
62
+ * @see https://code.claude.com/docs/en/settings
63
+ */
64
+ export declare function getMergedPluginsAndMarketplaces(): {
65
+ plugins: Map<string, string>;
66
+ marketplaces: Map<string, MarketplaceConfig>;
67
+ };
68
+ /**
69
+ * Get merged settings from all scopes.
70
+ * This performs a deep merge with higher priority settings overriding lower ones.
71
+ */
72
+ export declare function getMergedSettings(): ClaudeSettings;
73
+ //# sourceMappingURL=claude-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-settings.d.ts","sourceRoot":"","sources":["../../lib/claude-settings.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,iBAAiB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;AAExE;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAS3C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CASpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAkC3E;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,IAAI;IAClD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC7C,CAcA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAiClD"}
@@ -0,0 +1,159 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ /**
4
+ * Get Claude config directory (~/.claude)
5
+ */
6
+ export function getClaudeConfigDir() {
7
+ if (process.env.CLAUDE_CONFIG_DIR) {
8
+ return process.env.CLAUDE_CONFIG_DIR;
9
+ }
10
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
11
+ if (!homeDir) {
12
+ return "";
13
+ }
14
+ return join(homeDir, ".claude");
15
+ }
16
+ /**
17
+ * Get project directory (current working directory)
18
+ */
19
+ export function getProjectDir() {
20
+ return process.env.CLAUDE_PROJECT_DIR || process.cwd();
21
+ }
22
+ /**
23
+ * Read settings from a file path
24
+ */
25
+ export function readSettingsFile(path) {
26
+ if (!existsSync(path)) {
27
+ return null;
28
+ }
29
+ try {
30
+ return JSON.parse(readFileSync(path, "utf8"));
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Get all settings file paths in order of precedence (lowest to highest)
38
+ */
39
+ export function getSettingsPaths() {
40
+ const paths = [];
41
+ const configDir = getClaudeConfigDir();
42
+ const projectDir = getProjectDir();
43
+ // 1. User settings (lowest priority)
44
+ if (configDir) {
45
+ paths.push({
46
+ scope: "user",
47
+ path: join(configDir, "settings.json"),
48
+ });
49
+ }
50
+ // 2. Project settings (team-shared)
51
+ paths.push({
52
+ scope: "project",
53
+ path: join(projectDir, ".claude", "settings.json"),
54
+ });
55
+ // 3. Local settings (personal project-specific)
56
+ paths.push({
57
+ scope: "local",
58
+ path: join(projectDir, ".claude", "settings.local.json"),
59
+ });
60
+ // 4. Enterprise managed settings (highest priority, cannot be overridden)
61
+ if (configDir) {
62
+ paths.push({
63
+ scope: "enterprise",
64
+ path: join(configDir, "managed-settings.json"),
65
+ });
66
+ }
67
+ return paths;
68
+ }
69
+ /**
70
+ * Merge enabled plugins from multiple settings files.
71
+ * Higher priority settings override lower priority ones.
72
+ * Setting a plugin to false explicitly disables it.
73
+ */
74
+ function mergeEnabledPlugins(base, settings) {
75
+ if (!settings.enabledPlugins)
76
+ return;
77
+ for (const [key, enabled] of Object.entries(settings.enabledPlugins)) {
78
+ if (!key.includes("@"))
79
+ continue;
80
+ const [pluginName, marketplace] = key.split("@");
81
+ if (enabled) {
82
+ base.set(pluginName, marketplace);
83
+ }
84
+ else {
85
+ // Explicitly disabled - remove from map
86
+ base.delete(pluginName);
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Merge marketplace configurations from multiple settings files.
92
+ * Higher priority settings override lower priority ones.
93
+ */
94
+ function mergeMarketplaces(base, settings) {
95
+ if (!settings.extraKnownMarketplaces)
96
+ return;
97
+ for (const [name, config] of Object.entries(settings.extraKnownMarketplaces)) {
98
+ base.set(name, config);
99
+ }
100
+ }
101
+ /**
102
+ * Get all enabled plugins and marketplace configurations from merged settings.
103
+ *
104
+ * Settings are merged in order of precedence:
105
+ * 1. User settings (~/.claude/settings.json) - lowest priority
106
+ * 2. Project settings (.claude/settings.json)
107
+ * 3. Local settings (.claude/settings.local.json)
108
+ * 4. Enterprise settings (managed-settings.json) - highest priority
109
+ *
110
+ * @see https://code.claude.com/docs/en/settings
111
+ */
112
+ export function getMergedPluginsAndMarketplaces() {
113
+ const plugins = new Map();
114
+ const marketplaces = new Map();
115
+ // Process settings in order of precedence (lowest to highest)
116
+ for (const { path } of getSettingsPaths()) {
117
+ const settings = readSettingsFile(path);
118
+ if (settings) {
119
+ mergeMarketplaces(marketplaces, settings);
120
+ mergeEnabledPlugins(plugins, settings);
121
+ }
122
+ }
123
+ return { plugins, marketplaces };
124
+ }
125
+ /**
126
+ * Get merged settings from all scopes.
127
+ * This performs a deep merge with higher priority settings overriding lower ones.
128
+ */
129
+ export function getMergedSettings() {
130
+ const merged = {};
131
+ for (const { path } of getSettingsPaths()) {
132
+ const settings = readSettingsFile(path);
133
+ if (settings) {
134
+ // Merge extraKnownMarketplaces
135
+ if (settings.extraKnownMarketplaces) {
136
+ merged.extraKnownMarketplaces = {
137
+ ...merged.extraKnownMarketplaces,
138
+ ...settings.extraKnownMarketplaces,
139
+ };
140
+ }
141
+ // Merge enabledPlugins
142
+ if (settings.enabledPlugins) {
143
+ merged.enabledPlugins = {
144
+ ...merged.enabledPlugins,
145
+ ...settings.enabledPlugins,
146
+ };
147
+ }
148
+ // Merge hooks
149
+ if (settings.hooks) {
150
+ merged.hooks = {
151
+ ...merged.hooks,
152
+ ...settings.hooks,
153
+ };
154
+ }
155
+ }
156
+ }
157
+ return merged;
158
+ }
159
+ //# sourceMappingURL=claude-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../../lib/claude-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../../lib/commands/hook/dispatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuWzC,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAiB/D"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../../lib/commands/hook/dispatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+PzC,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAiB/D"}
@@ -1,6 +1,7 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
+ import { getClaudeConfigDir, getMergedPluginsAndMarketplaces, } from "../../claude-settings.js";
4
5
  /**
5
6
  * Read and parse stdin JSON payload from Claude Code hooks
6
7
  */
@@ -25,81 +26,6 @@ function getStdinPayload() {
25
26
  }
26
27
  return cachedStdinPayload;
27
28
  }
28
- /**
29
- * Get Claude config directory
30
- */
31
- function getClaudeConfigDir() {
32
- if (process.env.CLAUDE_CONFIG_DIR) {
33
- return process.env.CLAUDE_CONFIG_DIR;
34
- }
35
- const homeDir = process.env.HOME || process.env.USERPROFILE;
36
- if (!homeDir) {
37
- return "";
38
- }
39
- return join(homeDir, ".claude");
40
- }
41
- /**
42
- * Read settings from a file
43
- */
44
- function readSettings(path) {
45
- if (!existsSync(path)) {
46
- return null;
47
- }
48
- try {
49
- return JSON.parse(readFileSync(path, "utf8"));
50
- }
51
- catch {
52
- return null;
53
- }
54
- }
55
- /**
56
- * Get all enabled plugins and marketplace configurations from settings
57
- */
58
- function getEnabledPluginsAndMarketplaces() {
59
- const plugins = new Map();
60
- const marketplaces = new Map();
61
- // Read project settings
62
- const projectSettingsPath = join(process.cwd(), ".claude", "settings.json");
63
- const projectSettings = readSettings(projectSettingsPath);
64
- if (projectSettings) {
65
- if (projectSettings.extraKnownMarketplaces) {
66
- for (const [name, config] of Object.entries(projectSettings.extraKnownMarketplaces)) {
67
- marketplaces.set(name, config);
68
- }
69
- }
70
- if (projectSettings.enabledPlugins) {
71
- for (const [key, enabled] of Object.entries(projectSettings.enabledPlugins)) {
72
- if (enabled && key.includes("@")) {
73
- const [pluginName, marketplace] = key.split("@");
74
- plugins.set(pluginName, marketplace);
75
- }
76
- }
77
- }
78
- }
79
- // Read local settings (can override project settings)
80
- const localSettingsPath = join(process.cwd(), ".claude", "settings.local.json");
81
- const localSettings = readSettings(localSettingsPath);
82
- if (localSettings) {
83
- if (localSettings.extraKnownMarketplaces) {
84
- for (const [name, config] of Object.entries(localSettings.extraKnownMarketplaces)) {
85
- marketplaces.set(name, config);
86
- }
87
- }
88
- if (localSettings.enabledPlugins) {
89
- for (const [key, enabled] of Object.entries(localSettings.enabledPlugins)) {
90
- if (enabled && key.includes("@")) {
91
- const [pluginName, marketplace] = key.split("@");
92
- plugins.set(pluginName, marketplace);
93
- }
94
- else if (!enabled && key.includes("@")) {
95
- const [pluginName] = key.split("@");
96
- plugins.delete(pluginName);
97
- }
98
- }
99
- }
100
- }
101
- return { plugins, marketplaces };
102
- }
103
29
  /**
104
30
  * Find plugin in a marketplace root directory
105
31
  */
@@ -218,10 +144,11 @@ function executeCommandHook(command, pluginRoot, timeout) {
218
144
  }
219
145
  }
220
146
  /**
221
- * Dispatch hooks of a specific type across all installed plugins
147
+ * Dispatch hooks of a specific type across all installed plugins.
148
+ * Uses merged settings from all scopes (user, project, local, enterprise).
222
149
  */
223
150
  function dispatchHooks(hookType) {
224
- const { plugins, marketplaces } = getEnabledPluginsAndMarketplaces();
151
+ const { plugins, marketplaces } = getMergedPluginsAndMarketplaces();
225
152
  if (plugins.size === 0) {
226
153
  return;
227
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../../lib/commands/hook/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../../lib/commands/hook/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACN,kBAAkB,EAClB,+BAA+B,GAE/B,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,SAAS,gBAAgB;IACxB,IAAI,CAAC;QACJ,+CAA+C;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,uDAAuD;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,iDAAiD;AACjD,IAAI,kBAA8D,CAAC;AACnE,SAAS,eAAe;IACvB,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACtC,kBAAkB,GAAG,gBAAgB,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AAoBD;;GAEG;AACH,SAAS,uBAAuB,CAC/B,eAAuB,EACvB,UAAkB;IAElB,MAAM,cAAc,GAAG;QACtB,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;KACjC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACpB,UAAkB,EAClB,WAAmB,EACnB,iBAAgD;IAEhD,oEAAoE;IACpE,IAAI,iBAAiB,EAAE,MAAM,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;QACvD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IAED,kEAAkE;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,8CAA8C;IAC9C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAC3B,SAAS,EACT,SAAS,EACT,cAAc,EACd,WAAW,CACX,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,uBAAuB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACvB,UAAkB,EAClB,WAAmB,EACnB,iBAAgD;IAEhD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB;YACzC,UAAU;SACV,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAC1B,OAAe,EACf,UAAkB,EAClB,OAAe;IAEf,IAAI,CAAC;QACJ,kEAAkE;QAClE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CACtC,2BAA2B,EAC3B,UAAU,CACV,CAAC;QAEF,qDAAqD;QACrD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,SAAS,GACd,OAAO,YAAY,EAAE,UAAU,KAAK,QAAQ;YAC3C,CAAC,CAAC,YAAY,CAAC,UAAU;YACzB,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE;YACxC,QAAQ,EAAE,OAAO;YACjB,OAAO;YACP,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE;gBACJ,GAAG,OAAO,CAAC,GAAG;gBACd,kBAAkB,EAAE,UAAU;gBAC9B,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE;gBACjC,gDAAgD;gBAChD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD;SACD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,qDAAqD;QACrD,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,QAAgB;IACtC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,+BAA+B,EAAE,CAAC;IAEpE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,SAAS;QACV,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE/C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,kBAAkB,CAChC,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,OAAO,IAAI,KAAK,CACrB,CAAC;oBACF,IAAI,MAAM,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtB,CAAC;gBACF,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAClD,8CAA8C;oBAC9C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACxD,WAAW;SACT,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CACX,uEAAuE;QACtE,4EAA4E;QAC5E,sEAAsE;QACtE,gBAAgB;QAChB,2DAA2D;QAC3D,2FAA2F;QAC3F,uDAAuD;QACvD,sFAAsF;QACtF,KAAK,CACN;SACA,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC5B,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../lib/commands/mcp/server.ts"],"names":[],"mappings":"AAgMA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../lib/commands/mcp/server.ts"],"names":[],"mappings":"AAmOA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BpD"}
@@ -9,28 +9,41 @@ function discoverTools() {
9
9
  return cachedTools;
10
10
  }
11
11
  function formatToolsForMcp(tools) {
12
- return tools.map((tool) => ({
13
- name: tool.name,
14
- description: tool.description,
15
- inputSchema: {
16
- type: "object",
17
- properties: {
18
- verbose: {
19
- type: "boolean",
20
- description: "Show full command output (default: false). When false, output is captured and returned on failure.",
21
- },
22
- failFast: {
23
- type: "boolean",
24
- description: "Stop on first failure when running in multiple directories (default: true for MCP calls).",
25
- },
26
- directory: {
27
- type: "string",
28
- description: "Run only in this specific directory (relative to project root). If not specified, runs in all applicable directories.",
12
+ return tools.map((tool) => {
13
+ // Generate a human-readable title from the tool name
14
+ const title = tool.hookName.charAt(0).toUpperCase() + tool.hookName.slice(1);
15
+ const technology = tool.pluginName.replace(/^(jutsu|do|hashi)-/, "");
16
+ const techDisplay = technology.charAt(0).toUpperCase() + technology.slice(1);
17
+ return {
18
+ name: tool.name,
19
+ description: tool.description,
20
+ annotations: {
21
+ title: `${title} ${techDisplay}`,
22
+ readOnlyHint: false, // These tools may modify files (e.g., formatters)
23
+ destructiveHint: false, // Not destructive - can be safely re-run
24
+ idempotentHint: true, // Safe to run multiple times with same result
25
+ openWorldHint: false, // Works with local files only
26
+ },
27
+ inputSchema: {
28
+ type: "object",
29
+ properties: {
30
+ verbose: {
31
+ type: "boolean",
32
+ description: "Show full command output in real-time. Set to true when debugging failures or when you want to see progress. Default: false (output captured and returned).",
33
+ },
34
+ failFast: {
35
+ type: "boolean",
36
+ description: "Stop immediately on first failure. Set to false to see all errors across all directories. Default: true.",
37
+ },
38
+ directory: {
39
+ type: "string",
40
+ description: "Limit execution to a specific directory path (relative to project root, e.g., 'packages/core' or 'src'). If omitted, runs in all applicable directories.",
41
+ },
29
42
  },
43
+ required: [],
30
44
  },
31
- required: [],
32
- },
33
- }));
45
+ };
46
+ });
34
47
  }
35
48
  function handleInitialize() {
36
49
  return {
@@ -102,6 +115,10 @@ async function handleRequest(request) {
102
115
  case "initialized":
103
116
  // Notification, no response needed
104
117
  return { jsonrpc: "2.0", id: request.id, result: {} };
118
+ case "ping":
119
+ // Simple ping/pong for health checks
120
+ result = {};
121
+ break;
105
122
  case "tools/list":
106
123
  result = handleToolsList();
107
124
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../lib/commands/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../lib/commands/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../lib/commands/mcp/tools.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB;AAwQD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAiClD;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAqE5B"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../lib/commands/mcp/tools.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB;AAqID;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAqClD;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA0E5B"}
@@ -1,103 +1,8 @@
1
- import { existsSync, readFileSync } from "node:fs";
1
+ import { existsSync } from "node:fs";
2
2
  import { join } from "node:path";
3
+ import { getClaudeConfigDir, getMergedPluginsAndMarketplaces, } from "../../claude-settings.js";
3
4
  import { loadPluginConfig } from "../../hook-config.js";
4
5
  import { runConfiguredHook } from "../../validate.js";
5
- /**
6
- * Get Claude config directory
7
- */
8
- function getClaudeConfigDir() {
9
- if (process.env.CLAUDE_CONFIG_DIR) {
10
- return process.env.CLAUDE_CONFIG_DIR;
11
- }
12
- const homeDir = process.env.HOME || process.env.USERPROFILE;
13
- if (!homeDir) {
14
- return "";
15
- }
16
- return join(homeDir, ".claude");
17
- }
18
- /**
19
- * Read settings from a file
20
- */
21
- function readSettings(path) {
22
- if (!existsSync(path)) {
23
- return null;
24
- }
25
- try {
26
- return JSON.parse(readFileSync(path, "utf8"));
27
- }
28
- catch {
29
- return null;
30
- }
31
- }
32
- /**
33
- * Get all enabled plugins and marketplace configurations from all settings scopes
34
- */
35
- function getEnabledPluginsAndMarketplaces() {
36
- const plugins = new Map();
37
- const marketplaces = new Map();
38
- // Read user settings first (lowest priority)
39
- const configDir = getClaudeConfigDir();
40
- if (configDir) {
41
- const userSettingsPath = join(configDir, "settings.json");
42
- const userSettings = readSettings(userSettingsPath);
43
- if (userSettings) {
44
- if (userSettings.extraKnownMarketplaces) {
45
- for (const [name, config] of Object.entries(userSettings.extraKnownMarketplaces)) {
46
- marketplaces.set(name, config);
47
- }
48
- }
49
- if (userSettings.enabledPlugins) {
50
- for (const [key, enabled] of Object.entries(userSettings.enabledPlugins)) {
51
- if (enabled && key.includes("@")) {
52
- const [pluginName, marketplace] = key.split("@");
53
- plugins.set(pluginName, marketplace);
54
- }
55
- }
56
- }
57
- }
58
- }
59
- // Read project settings (overrides user)
60
- const projectSettingsPath = join(process.cwd(), ".claude", "settings.json");
61
- const projectSettings = readSettings(projectSettingsPath);
62
- if (projectSettings) {
63
- if (projectSettings.extraKnownMarketplaces) {
64
- for (const [name, config] of Object.entries(projectSettings.extraKnownMarketplaces)) {
65
- marketplaces.set(name, config);
66
- }
67
- }
68
- if (projectSettings.enabledPlugins) {
69
- for (const [key, enabled] of Object.entries(projectSettings.enabledPlugins)) {
70
- if (enabled && key.includes("@")) {
71
- const [pluginName, marketplace] = key.split("@");
72
- plugins.set(pluginName, marketplace);
73
- }
74
- }
75
- }
76
- }
77
- // Read local settings (highest priority, can override)
78
- const localSettingsPath = join(process.cwd(), ".claude", "settings.local.json");
79
- const localSettings = readSettings(localSettingsPath);
80
- if (localSettings) {
81
- if (localSettings.extraKnownMarketplaces) {
82
- for (const [name, config] of Object.entries(localSettings.extraKnownMarketplaces)) {
83
- marketplaces.set(name, config);
84
- }
85
- }
86
- if (localSettings.enabledPlugins) {
87
- for (const [key, enabled] of Object.entries(localSettings.enabledPlugins)) {
88
- if (enabled && key.includes("@")) {
89
- const [pluginName, marketplace] = key.split("@");
90
- plugins.set(pluginName, marketplace);
91
- }
92
- else if (!enabled && key.includes("@")) {
93
- const [pluginName] = key.split("@");
94
- plugins.delete(pluginName);
95
- }
96
- }
97
- }
98
- }
99
- return { plugins, marketplaces };
100
- }
101
6
  /**
102
7
  * Find plugin in a marketplace root directory
103
8
  */
@@ -159,43 +64,41 @@ function getPluginDir(pluginName, marketplace, marketplaceConfig) {
159
64
  return findPluginInMarketplace(marketplaceRoot, pluginName);
160
65
  }
161
66
  /**
162
- * Generate a human-readable description for a hook tool
67
+ * Generate a human-readable description for a hook tool with natural language examples
163
68
  */
164
69
  function generateToolDescription(pluginName, hookName, pluginConfig) {
165
70
  const hookDef = pluginConfig.hooks[hookName];
166
- if (!hookDef) {
167
- return `Run ${hookName} for ${pluginName}`;
168
- }
169
- // Build a description based on the hook definition
170
- const parts = [];
171
- // Describe what the hook does based on its name
172
- const actionMap = {
173
- test: "Run tests",
174
- lint: "Run linter",
175
- format: "Check formatting",
176
- typecheck: "Run type checking",
177
- compile: "Compile code",
178
- build: "Build project",
179
- };
180
- const action = actionMap[hookName] || `Run ${hookName}`;
181
- parts.push(action);
182
- // Add context about the plugin
183
71
  const technology = pluginName.replace(/^(jutsu|do|hashi)-/, "");
184
- parts.push(`for ${technology}`);
185
- // Add info about where it runs
186
- if (hookDef.dirsWith && hookDef.dirsWith.length > 0) {
187
- parts.push(`(in directories with ${hookDef.dirsWith.join(" or ")})`);
188
- }
189
- // Add the actual command for reference
190
- parts.push(`- runs: ${hookDef.command}`);
191
- return parts.join(" ");
72
+ const techDisplay = technology.charAt(0).toUpperCase() + technology.slice(1);
73
+ // Rich descriptions with natural language trigger examples
74
+ const descriptions = {
75
+ test: (tech, display) => `Run ${display} tests. Triggers: "run the tests", "run ${tech} tests", "check if tests pass", "execute test suite"`,
76
+ lint: (tech, display) => `Lint ${display} code for issues and style violations. Triggers: "lint the code", "check for ${tech} issues", "run the linter", "check code quality"`,
77
+ typecheck: (_tech, display) => `Type-check ${display} code for type errors. Triggers: "check types", "run type checking", "verify types", "typescript check"`,
78
+ format: (_tech, display) => `Check and fix ${display} code formatting. Triggers: "format the code", "check formatting", "fix formatting", "run formatter"`,
79
+ build: (_tech, display) => `Build the ${display} project. Triggers: "build the project", "compile the code", "run the build"`,
80
+ compile: (tech, display) => `Compile ${display} code. Triggers: "compile the code", "run compilation", "build ${tech}"`,
81
+ };
82
+ const descFn = descriptions[hookName];
83
+ let desc = descFn
84
+ ? descFn(technology, techDisplay)
85
+ : `Run ${hookName} for ${techDisplay}. Triggers: "run ${hookName}", "${hookName} the ${technology} code"`;
86
+ // Add context about where it runs
87
+ if (hookDef?.dirsWith && hookDef.dirsWith.length > 0) {
88
+ desc += `. Runs in directories containing: ${hookDef.dirsWith.join(", ")}`;
89
+ }
90
+ // Add the actual command for transparency
91
+ if (hookDef?.command) {
92
+ desc += `. Command: ${hookDef.command}`;
93
+ }
94
+ return desc;
192
95
  }
193
96
  /**
194
97
  * Discover all plugin tools from installed plugins
195
98
  */
196
99
  export function discoverPluginTools() {
197
100
  const tools = [];
198
- const { plugins, marketplaces } = getEnabledPluginsAndMarketplaces();
101
+ const { plugins, marketplaces } = getMergedPluginsAndMarketplaces();
199
102
  for (const [pluginName, marketplace] of plugins.entries()) {
200
103
  const marketplaceConfig = marketplaces.get(marketplace);
201
104
  const pluginRoot = getPluginDir(pluginName, marketplace, marketplaceConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../lib/commands/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../lib/commands/mcp/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thebushidocollective/han",
3
- "version": "1.41.2",
3
+ "version": "1.42.1",
4
4
  "description": "CLI for installing and managing curated Claude Code plugins from the Han marketplace",
5
5
  "main": "dist/lib/main.js",
6
6
  "types": "dist/lib/main.d.ts",
@@ -51,11 +51,11 @@
51
51
  "README.md"
52
52
  ],
53
53
  "optionalDependencies": {
54
- "@thebushidocollective/han-darwin-arm64": "1.41.2",
55
- "@thebushidocollective/han-darwin-x64": "1.41.2",
56
- "@thebushidocollective/han-linux-arm64": "1.41.2",
57
- "@thebushidocollective/han-linux-x64": "1.41.2",
58
- "@thebushidocollective/han-win32-x64": "1.41.2"
54
+ "@thebushidocollective/han-darwin-arm64": "1.42.1",
55
+ "@thebushidocollective/han-darwin-x64": "1.42.1",
56
+ "@thebushidocollective/han-linux-arm64": "1.42.1",
57
+ "@thebushidocollective/han-linux-x64": "1.42.1",
58
+ "@thebushidocollective/han-win32-x64": "1.42.1"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@anthropic-ai/claude-agent-sdk": "0.1.50",