@thebushidocollective/han 1.13.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -70,6 +70,82 @@ Search for plugins in the Han marketplace.
70
70
  han plugin search [query]
71
71
  ```
72
72
 
73
+ ### han hook test
74
+
75
+ Validate hook configurations for all installed plugins.
76
+
77
+ ```bash
78
+ # Validate hook structure and syntax only
79
+ han hook test
80
+
81
+ # Validate AND execute hooks to verify they run successfully
82
+ han hook test --execute
83
+ ```
84
+
85
+ **Options:**
86
+
87
+ - `--execute` - Execute hooks to verify they run successfully (in addition to validation)
88
+
89
+ This command:
90
+
91
+ - Tests all hooks in currently installed plugins (both project and local scopes)
92
+ - Validates hook JSON structure and syntax
93
+ - Checks for valid hook event types (SessionStart, Stop, UserPromptSubmit, etc.)
94
+ - Ensures hook commands using `han hook run` have proper `--` separator
95
+ - With `--execute`: Runs each hook command to verify it executes successfully
96
+ - Displays clear pass/fail/skip status for each plugin
97
+ - Exits with error code if any hooks fail validation or execution
98
+
99
+ **Example output (validation only):**
100
+
101
+ ```
102
+ 🔍 Validating hooks for installed plugins...
103
+
104
+ Results:
105
+ ========
106
+
107
+ ✅ Passed:
108
+ buki-markdownlint: Valid hooks configuration (Stop, SubagentStop)
109
+ bushido: Valid hooks configuration (SessionStart, UserPromptSubmit)
110
+
111
+ ⊘ Skipped (no hooks):
112
+ buki-typescript: No hooks.json found
113
+
114
+ ❌ Failed:
115
+ my-plugin: Unknown event type 'InvalidEvent'
116
+
117
+ Summary:
118
+ Total: 4
119
+ Passed: 2
120
+ Failed: 1
121
+ Skipped: 1
122
+ ```
123
+
124
+ **Example output (with --execute):**
125
+
126
+ ```
127
+ 🔍 Testing and executing hooks for installed plugins...
128
+
129
+ Results:
130
+ ========
131
+
132
+ ✅ Passed:
133
+ buki-markdownlint: Valid hooks configuration (Stop, SubagentStop) (executed successfully)
134
+ bushido: Valid hooks configuration (SessionStart, UserPromptSubmit) (executed successfully)
135
+
136
+ ⊘ Skipped (no hooks):
137
+ buki-typescript: No hooks.json found
138
+
139
+ ❌ Failed:
140
+ my-plugin: Hook type 'Stop' failed execution: Command not found
141
+
142
+ Summary:
143
+ Total: 4
144
+ Passed: 2
145
+ Failed: 1
146
+ Skipped: 1
147
+ ```
148
+
73
149
  ### han uninstall
74
150
 
75
151
  Remove all Han plugins and marketplace configuration.
@@ -0,0 +1,27 @@
1
+ import type React from "react";
2
+ interface HookResult {
3
+ plugin: string;
4
+ command: string;
5
+ success: boolean;
6
+ output: string[];
7
+ isPrompt?: boolean;
8
+ timedOut?: boolean;
9
+ }
10
+ interface HookStructureItem {
11
+ plugin: string;
12
+ command: string;
13
+ pluginDir: string;
14
+ type: "command" | "prompt";
15
+ timeout?: number;
16
+ }
17
+ interface HookTestUIProps {
18
+ hookTypes: string[];
19
+ hookStructure: Map<string, HookStructureItem[]>;
20
+ hookResults: Map<string, HookResult[]>;
21
+ currentType: string | null;
22
+ isComplete: boolean;
23
+ verbose: boolean;
24
+ }
25
+ export declare const HookTestUI: React.FC<HookTestUIProps>;
26
+ export {};
27
+ //# sourceMappingURL=hook-test-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-test-ui.d.ts","sourceRoot":"","sources":["../../lib/hook-test-ui.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,UAAU,UAAU;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,iBAAiB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAChD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwUhD,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import Spinner from "ink-spinner";
4
+ export const HookTestUI = ({ hookTypes, hookStructure, hookResults, currentType, isComplete, verbose, }) => {
5
+ // Group hooks by plugin for each hook type
6
+ const getPluginHooks = (hookType) => {
7
+ const hooks = hookStructure.get(hookType) || [];
8
+ const pluginMap = new Map();
9
+ for (const hook of hooks) {
10
+ if (!pluginMap.has(hook.plugin)) {
11
+ pluginMap.set(hook.plugin, []);
12
+ }
13
+ pluginMap.get(hook.plugin)?.push(hook);
14
+ }
15
+ return pluginMap;
16
+ };
17
+ // Get results for a specific plugin within a hook type
18
+ const getPluginResults = (hookType, plugin) => {
19
+ const results = hookResults.get(hookType) || [];
20
+ const pluginResults = results.filter((r) => r.plugin === plugin);
21
+ const passed = pluginResults.filter((r) => r.success).length;
22
+ const total = pluginResults.length;
23
+ return { passed, total, allComplete: total > 0, results: pluginResults };
24
+ };
25
+ // Determine status for each hook type
26
+ const getHookTypeStatus = (hookType) => {
27
+ if (hookResults.has(hookType)) {
28
+ return "completed";
29
+ }
30
+ if (hookType === currentType) {
31
+ return "running";
32
+ }
33
+ return "pending";
34
+ };
35
+ return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "\uD83D\uDD0D Testing and executing hooks for installed plugins" }) }), _jsx(Box, { flexDirection: "column", children: hookTypes.map((hookType, hookTypeIndex) => {
36
+ const status = getHookTypeStatus(hookType);
37
+ const pluginHooks = getPluginHooks(hookType);
38
+ const results = hookResults.get(hookType) || [];
39
+ const totalPassed = results.filter((r) => r.success).length;
40
+ const totalCount = results.length;
41
+ const totalHooks = hookStructure.get(hookType)?.length || 0;
42
+ const isLast = hookTypeIndex === hookTypes.length - 1;
43
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: isLast ? "└─ " : "├─ " }), status === "completed" && (_jsxs(Text, { color: "green", bold: true, children: ["\u2713", " "] })), status === "running" && (_jsxs(Text, { color: "yellow", children: [_jsx(Spinner, { type: "dots" }), " "] })), status === "pending" && _jsx(Text, { dimColor: true, children: "\u25CB " }), _jsx(Text, { bold: status === "running", color: status === "running" ? "yellow" : undefined, dimColor: status === "pending", children: hookType }), status === "completed" && (_jsxs(Text, { color: "green", children: [" ", "(", totalPassed, "/", totalCount, ")"] })), status === "running" && (_jsxs(Text, { dimColor: true, children: [" ", "(", totalPassed, "/", totalHooks, ")"] })), status === "pending" && (_jsxs(Text, { dimColor: true, children: [" (0/", totalHooks, ")"] }))] }), Array.from(pluginHooks.entries()).map(([plugin, hooks], pluginIndex) => {
44
+ const { passed, total, allComplete, results } = getPluginResults(hookType, plugin);
45
+ const isLastPlugin = pluginIndex === pluginHooks.size - 1;
46
+ const pluginStatus = status === "pending"
47
+ ? "pending"
48
+ : allComplete
49
+ ? "completed"
50
+ : status === "running"
51
+ ? "running"
52
+ : "pending";
53
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [isLast ? " " : "│ ", isLastPlugin ? "└─" : "├─", " "] }), pluginStatus === "completed" && (_jsx(Text, { color: "green", children: "\u2713 " })), pluginStatus === "running" && (_jsxs(Text, { color: "yellow", children: [_jsx(Spinner, { type: "dots" }), " "] })), pluginStatus === "pending" && _jsx(Text, { dimColor: true, children: "\u25CB " }), _jsx(Text, { dimColor: pluginStatus === "pending", color: pluginStatus === "running" ? "yellow" : undefined, children: plugin }), pluginStatus === "completed" && (_jsxs(Text, { color: "green", children: [" ", "(", passed, "/", total, ")"] })), pluginStatus === "running" && (_jsxs(Text, { dimColor: true, children: [" ", "(", passed, "/", hooks.length, ")"] })), pluginStatus === "pending" && (_jsxs(Text, { dimColor: true, children: [" (0/", hooks.length, ")"] }))] }), hooks.map((hook, cmdIndex) => {
54
+ const isLastCmd = cmdIndex === hooks.length - 1;
55
+ const result = results.find((r) => r.command === hook.command);
56
+ const cmdStatus = result
57
+ ? result.success
58
+ ? "completed"
59
+ : "failed"
60
+ : pluginStatus === "pending"
61
+ ? "pending"
62
+ : "running";
63
+ return (_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [isLast ? " " : "│ ", isLastPlugin ? " " : "│ ", isLastCmd ? "└─" : "├─", " "] }), cmdStatus === "completed" && (_jsx(Text, { color: "green", children: "\u2713 " })), cmdStatus === "failed" && (_jsx(Text, { color: "red", children: "\u2717 " })), cmdStatus === "running" && (_jsxs(Text, { color: "yellow", children: [_jsx(Spinner, { type: "dots" }), " "] })), cmdStatus === "pending" && (_jsx(Text, { dimColor: true, children: "\u25CB " })), _jsxs(Text, { dimColor: cmdStatus === "pending", color: cmdStatus === "running" ? "yellow" : undefined, children: [hook.type === "prompt" && "[prompt] ", hook.command] }), result?.timedOut && (_jsx(Text, { color: "red", children: " (timeout)" }))] }, `${hookType}-${plugin}-${cmdIndex}-${hook.command.slice(0, 20)}`));
64
+ })] }, `${hookType}-${plugin}`));
65
+ })] }, hookType));
66
+ }) }), isComplete && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { dimColor: true, children: "=".repeat(60) }) }), _jsx(Box, { children: Array.from(hookResults.values()).some((results) => results.some((r) => !r.success)) ? (_jsx(Text, { bold: true, color: "red", children: "\u274C Some hooks failed execution" })) : (_jsx(Text, { bold: true, color: "green", children: "\u2705 All hooks executed successfully" })) }), Array.from(hookResults.entries()).map(([hookType, results]) => {
67
+ const failedResults = results.filter((r) => !r.success);
68
+ if (failedResults.length === 0)
69
+ return null;
70
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { bold: true, color: "red", children: ["Failed hooks in ", hookType, ":"] }), failedResults.map((result, idx) => (_jsxs(Box, { flexDirection: "column", marginLeft: 2, marginTop: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "red", children: "\u2717 " }), _jsxs(Text, { bold: true, children: [result.plugin, ": ", result.command] }), result.timedOut && _jsx(Text, { color: "red", children: " (timeout)" })] }), result.output.length > 0 && (_jsx(Box, { flexDirection: "column", marginLeft: 2, marginTop: 1, children: result.output.map((line, i) => (_jsx(Text, { children: line }, `failed-${hookType}-${result.plugin}-${idx}-line-${i}`))) }))] }, `failed-${hookType}-${result.plugin}-${idx}`)))] }, `failed-${hookType}`));
71
+ })] })), verbose && isComplete && (_jsx(Box, { flexDirection: "column", marginTop: 1, children: Array.from(hookResults.entries()).map(([hookType, results]) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: [hookType, ":"] }), results.map((result, idx) => (_jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [_jsxs(Box, { children: [result.success ? (_jsx(Text, { color: "green", children: "\u2713 " })) : (_jsx(Text, { color: "red", children: "\u2717 " })), _jsx(Text, { children: result.plugin })] }), result.output.length > 0 && (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: result.output.map((line, i) => (_jsx(Text, { dimColor: true, children: line }, `${hookType}-${result.plugin}-${idx}-line-${i}`))) }))] }, `${hookType}-${result.plugin}-${idx}`)))] }, hookType))) }))] }));
72
+ };
73
+ //# sourceMappingURL=hook-test-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-test-ui.js","sourceRoot":"","sources":["../../lib/hook-test-ui.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AA6BlC,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EACrD,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,GACP,EAAE,EAAE;IACJ,2CAA2C;IAC3C,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC1E,CAAC,CAAC;IAEF,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC9C,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC;QACpB,CAAC;QACD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAEtC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,+EAEhB,GACF,EAGN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE;oBAC1C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAChD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;oBAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;oBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;oBAC5D,MAAM,MAAM,GAAG,aAAa,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBAEtD,OAAO,CACN,MAAC,GAAG,IAAgB,aAAa,EAAC,QAAQ,aAEzC,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,QAAQ,kBAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,EAC7C,MAAM,KAAK,WAAW,IAAI,CAC1B,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,6BACrB,GAAG,IACC,CACP,EACA,MAAM,KAAK,SAAS,IAAI,CACxB,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACnB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,EAAC,GAAG,IACrB,CACP,EACA,MAAM,KAAK,SAAS,IAAI,KAAC,IAAI,IAAC,QAAQ,8BAAU,EACjD,KAAC,IAAI,IACJ,IAAI,EAAE,MAAM,KAAK,SAAS,EAC1B,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAClD,QAAQ,EAAE,MAAM,KAAK,SAAS,YAE7B,QAAQ,GACH,EACN,MAAM,KAAK,WAAW,IAAI,CAC1B,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aACjB,GAAG,OACF,WAAW,OAAG,UAAU,SACpB,CACP,EACA,MAAM,KAAK,SAAS,IAAI,CACxB,MAAC,IAAI,IAAC,QAAQ,mBACZ,GAAG,OACF,WAAW,OAAG,UAAU,SACpB,CACP,EACA,MAAM,KAAK,SAAS,IAAI,CACxB,MAAC,IAAI,IAAC,QAAQ,2BAAM,UAAU,SAAS,CACvC,IACI,EAGL,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACrC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE;gCAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAC5C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gCACpC,MAAM,YAAY,GAAG,WAAW,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;gCAC1D,MAAM,YAAY,GACjB,MAAM,KAAK,SAAS;oCACnB,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,WAAW;wCACZ,CAAC,CAAC,WAAW;wCACb,CAAC,CAAC,MAAM,KAAK,SAAS;4CACrB,CAAC,CAAC,SAAS;4CACX,CAAC,CAAC,SAAS,CAAC;gCAEhB,OAAO,CACN,MAAC,GAAG,IAA+B,aAAa,EAAC,QAAQ,aAExD,MAAC,GAAG,eACH,MAAC,IAAI,IAAC,QAAQ,mBACZ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAC1B,EACN,YAAY,KAAK,WAAW,IAAI,CAChC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAU,CAC7B,EACA,YAAY,KAAK,SAAS,IAAI,CAC9B,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACnB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,EAAC,GAAG,IACrB,CACP,EACA,YAAY,KAAK,SAAS,IAAI,KAAC,IAAI,IAAC,QAAQ,8BAAU,EACvD,KAAC,IAAI,IACJ,QAAQ,EAAE,YAAY,KAAK,SAAS,EACpC,KAAK,EACJ,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,YAGjD,MAAM,GACD,EACN,YAAY,KAAK,WAAW,IAAI,CAChC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aACjB,GAAG,OACF,MAAM,OAAG,KAAK,SACV,CACP,EACA,YAAY,KAAK,SAAS,IAAI,CAC9B,MAAC,IAAI,IAAC,QAAQ,mBACZ,GAAG,OACF,MAAM,OAAG,KAAK,CAAC,MAAM,SACjB,CACP,EACA,YAAY,KAAK,SAAS,IAAI,CAC9B,MAAC,IAAI,IAAC,QAAQ,2BAAM,KAAK,CAAC,MAAM,SAAS,CACzC,IACI,EAGL,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;4CAC7B,MAAM,SAAS,GAAG,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;4CAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CACjC,CAAC;4CACF,MAAM,SAAS,GAAG,MAAM;gDACvB,CAAC,CAAC,MAAM,CAAC,OAAO;oDACf,CAAC,CAAC,WAAW;oDACb,CAAC,CAAC,QAAQ;gDACX,CAAC,CAAC,YAAY,KAAK,SAAS;oDAC3B,CAAC,CAAC,SAAS;oDACX,CAAC,CAAC,SAAS,CAAC;4CAEd,OAAO,CACN,MAAC,GAAG,eAGH,MAAC,IAAI,IAAC,QAAQ,mBACZ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1B,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IACvB,EACN,SAAS,KAAK,WAAW,IAAI,CAC7B,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAU,CAC7B,EACA,SAAS,KAAK,QAAQ,IAAI,CAC1B,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,CAC3B,EACA,SAAS,KAAK,SAAS,IAAI,CAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACnB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,EAAC,GAAG,IACrB,CACP,EACA,SAAS,KAAK,SAAS,IAAI,CAC3B,KAAC,IAAI,IAAC,QAAQ,8BAAU,CACxB,EACD,MAAC,IAAI,IACJ,QAAQ,EAAE,SAAS,KAAK,SAAS,EACjC,KAAK,EACJ,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,aAG9C,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,EACrC,IAAI,CAAC,OAAO,IACP,EACN,MAAM,EAAE,QAAQ,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,2BAAkB,CACnC,KAhCI,GAAG,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAiChE,CACN,CAAC;wCACH,CAAC,CAAC,KA5FO,GAAG,QAAQ,IAAI,MAAM,EAAE,CA6F3B,CACN,CAAC;4BACH,CAAC,CACD,KAvJQ,QAAQ,CAwJZ,CACN,CAAC;gBACH,CAAC,CAAC,GACG,EAGL,UAAU,IAAI,CACd,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACxC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,GACjC,EACN,KAAC,GAAG,cACF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAC/B,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,KAAK,mDAEf,CACP,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,uDAEjB,CACP,GACI,EAGL,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;wBAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;4BAAE,OAAO,IAAI,CAAC;wBAE5C,OAAO,CACN,MAAC,GAAG,IAEH,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,CAAC,aAEZ,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,KAAK,iCACJ,QAAQ,SACnB,EACN,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,MAAC,GAAG,IAEH,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,EACb,SAAS,EAAE,CAAC,aAEZ,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,EAC3B,MAAC,IAAI,IAAC,IAAI,mBACR,MAAM,CAAC,MAAM,QAAI,MAAM,CAAC,OAAO,IAC1B,EACN,MAAM,CAAC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,2BAAkB,IAClD,EACL,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,YACrD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,cAGH,IAAI,IAFA,UAAU,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAGrD,CACP,CAAC,GACG,CACN,KAtBI,UAAU,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAuB5C,CACN,CAAC,KAjCG,UAAU,QAAQ,EAAE,CAkCpB,CACN,CAAC;oBACH,CAAC,CAAC,IACG,CACN,EAGA,OAAO,IAAI,UAAU,IAAI,CACzB,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACtC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAC/D,MAAC,GAAG,IAAgB,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzD,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,aACrB,QAAQ,SACH,EACN,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC7B,MAAC,GAAG,IAEH,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,aAEb,MAAC,GAAG,eACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACjB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAU,CAC7B,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,CAC3B,EACD,KAAC,IAAI,cAAE,MAAM,CAAC,MAAM,GAAQ,IACvB,EACL,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACvC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,IAEJ,QAAQ,kBAEP,IAAI,IAHA,GAAG,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAI9C,CACP,CAAC,GACG,CACN,KAvBI,GAAG,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAwBrC,CACN,CAAC,KA/BO,QAAQ,CAgCZ,CACN,CAAC,GACG,CACN,IACI,CACN,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Test all hooks in installed plugins
3
+ */
4
+ export declare function testHooks(options?: {
5
+ execute?: boolean;
6
+ verbose?: boolean;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=hook-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-test.d.ts","sourceRoot":"","sources":["../../lib/hook-test.ts"],"names":[],"mappings":"AAkTA;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DhB"}
@@ -0,0 +1,410 @@
1
+ import { spawn } from "node:child_process";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { render } from "ink";
5
+ import React from "react";
6
+ import { HookTestUI } from "./hook-test-ui.js";
7
+ import { getInstalledPlugins } from "./shared.js";
8
+ // Valid hook event types according to Claude Code spec
9
+ const VALID_HOOK_TYPES = [
10
+ "Notification",
11
+ "PostToolUse",
12
+ "PreCompact",
13
+ "PreToolUse",
14
+ "SessionEnd",
15
+ "SessionStart",
16
+ "Stop",
17
+ "SubagentStop",
18
+ "UserPromptSubmit",
19
+ ];
20
+ /**
21
+ * Execute a single hook command and collect output
22
+ */
23
+ async function executeHookCommand(hook, hookType, marketplaceRoot, verbose) {
24
+ // Handle prompt type hooks - instant pass
25
+ if (hook.type === "prompt") {
26
+ return {
27
+ plugin: hook.plugin,
28
+ command: hook.command,
29
+ success: true,
30
+ output: [],
31
+ isPrompt: true,
32
+ };
33
+ }
34
+ return new Promise((resolve) => {
35
+ const child = spawn(hook.command, {
36
+ shell: true,
37
+ env: {
38
+ ...process.env,
39
+ CLAUDE_PLUGIN_ROOT: hook.pluginDir,
40
+ CLAUDE_PROJECT_DIR: marketplaceRoot,
41
+ },
42
+ });
43
+ const output = [];
44
+ let timedOut = false;
45
+ let timeoutHandle = null;
46
+ // Set up timeout if specified
47
+ if (hook.timeout) {
48
+ timeoutHandle = setTimeout(() => {
49
+ timedOut = true;
50
+ child.kill();
51
+ }, hook.timeout);
52
+ }
53
+ child.stdout?.on("data", (data) => {
54
+ const text = data.toString();
55
+ const lines = text.split("\n").filter((l) => l.trim());
56
+ for (const line of lines) {
57
+ const formatted = `[${hook.plugin}/${hookType}] ${line}`;
58
+ output.push(formatted);
59
+ if (verbose) {
60
+ process.stdout.write(` ${formatted}\n`);
61
+ }
62
+ }
63
+ });
64
+ child.stderr?.on("data", (data) => {
65
+ const text = data.toString();
66
+ const lines = text.split("\n").filter((l) => l.trim());
67
+ for (const line of lines) {
68
+ const formatted = `[${hook.plugin}/${hookType}] ${line}`;
69
+ output.push(formatted);
70
+ if (verbose) {
71
+ process.stderr.write(` ${formatted}\n`);
72
+ }
73
+ }
74
+ });
75
+ child.on("close", (code) => {
76
+ if (timeoutHandle) {
77
+ clearTimeout(timeoutHandle);
78
+ }
79
+ const success = code === 0 && !timedOut;
80
+ resolve({
81
+ plugin: hook.plugin,
82
+ command: hook.command,
83
+ success,
84
+ output,
85
+ timedOut,
86
+ });
87
+ });
88
+ child.on("error", (error) => {
89
+ if (timeoutHandle) {
90
+ clearTimeout(timeoutHandle);
91
+ }
92
+ resolve({
93
+ plugin: hook.plugin,
94
+ command: hook.command,
95
+ success: false,
96
+ output: [error.message],
97
+ });
98
+ });
99
+ });
100
+ }
101
+ /**
102
+ * Get the marketplace root directory
103
+ */
104
+ function getMarketplaceRoot() {
105
+ const projectRoot = process.env.CLAUDE_PROJECT_DIR || process.cwd();
106
+ if (existsSync(join(projectRoot, "buki")) &&
107
+ existsSync(join(projectRoot, "do")) &&
108
+ existsSync(join(projectRoot, "bushido"))) {
109
+ return projectRoot;
110
+ }
111
+ return null;
112
+ }
113
+ /**
114
+ * Get plugin directory based on plugin name
115
+ */
116
+ function getPluginDir(plugin, marketplaceRoot) {
117
+ if (plugin.startsWith("buki-")) {
118
+ return join(marketplaceRoot, "buki", plugin);
119
+ }
120
+ if (plugin.startsWith("do-")) {
121
+ return join(marketplaceRoot, "do", plugin);
122
+ }
123
+ if (plugin.startsWith("sensei-")) {
124
+ return join(marketplaceRoot, "sensei", plugin);
125
+ }
126
+ if (plugin === "bushido") {
127
+ return join(marketplaceRoot, "bushido");
128
+ }
129
+ return null;
130
+ }
131
+ /**
132
+ * Collect and aggregate all hooks by type across all plugins
133
+ */
134
+ function collectHooks(allPlugins, marketplaceRoot) {
135
+ const hooksByType = {};
136
+ const validationResults = [];
137
+ for (const plugin of allPlugins) {
138
+ const pluginDir = getPluginDir(plugin, marketplaceRoot);
139
+ if (!pluginDir) {
140
+ validationResults.push({
141
+ plugin,
142
+ errors: ["Unknown plugin type"],
143
+ });
144
+ continue;
145
+ }
146
+ const hooksPath = join(pluginDir, "hooks", "hooks.json");
147
+ if (!existsSync(hooksPath)) {
148
+ continue; // Skip plugins without hooks
149
+ }
150
+ try {
151
+ const hooksContent = readFileSync(hooksPath, "utf8");
152
+ const hooksConfig = JSON.parse(hooksContent);
153
+ if (!hooksConfig.hooks || typeof hooksConfig.hooks !== "object") {
154
+ validationResults.push({
155
+ plugin,
156
+ errors: ["Invalid hooks.json structure: missing 'hooks' object"],
157
+ });
158
+ continue;
159
+ }
160
+ const errors = [];
161
+ // Collect hooks by type
162
+ for (const hookType of Object.keys(hooksConfig.hooks)) {
163
+ // Validate hook type
164
+ if (!VALID_HOOK_TYPES.includes(hookType)) {
165
+ errors.push(`Unknown event type '${hookType}'`);
166
+ continue;
167
+ }
168
+ const hookConfig = hooksConfig.hooks[hookType];
169
+ if (!Array.isArray(hookConfig)) {
170
+ errors.push(`Hook type '${hookType}' must be an array`);
171
+ continue;
172
+ }
173
+ // Extract hook commands
174
+ for (const hook of hookConfig) {
175
+ if (!hook.hooks || !Array.isArray(hook.hooks)) {
176
+ errors.push(`Hook type '${hookType}' missing 'hooks' array in configuration`);
177
+ continue;
178
+ }
179
+ for (const individualHook of hook.hooks) {
180
+ const hookTypeValue = individualHook.type;
181
+ // Handle command type hooks
182
+ if (hookTypeValue === "command") {
183
+ if (!individualHook.command ||
184
+ typeof individualHook.command !== "string") {
185
+ errors.push(`Hook type '${hookType}' has command hook with missing or invalid command`);
186
+ }
187
+ else {
188
+ // Validate -- separator for han hook run
189
+ if (individualHook.command.includes("han hook run") &&
190
+ !individualHook.command.includes(" -- ")) {
191
+ errors.push(`Hook command uses 'han hook run' but missing '--' separator`);
192
+ }
193
+ // Add to hooks by type
194
+ if (!hooksByType[hookType]) {
195
+ hooksByType[hookType] = [];
196
+ }
197
+ hooksByType[hookType].push({
198
+ plugin,
199
+ command: individualHook.command,
200
+ pluginDir,
201
+ type: "command",
202
+ timeout: individualHook.timeout,
203
+ });
204
+ }
205
+ }
206
+ else if (hookTypeValue === "prompt") {
207
+ // Handle prompt type hooks
208
+ if (!hooksByType[hookType]) {
209
+ hooksByType[hookType] = [];
210
+ }
211
+ hooksByType[hookType].push({
212
+ plugin,
213
+ command: individualHook.prompt || "",
214
+ pluginDir,
215
+ type: "prompt",
216
+ });
217
+ }
218
+ }
219
+ }
220
+ }
221
+ if (errors.length > 0) {
222
+ validationResults.push({ plugin, errors });
223
+ }
224
+ }
225
+ catch (error) {
226
+ validationResults.push({
227
+ plugin,
228
+ errors: [
229
+ `Failed to parse hooks.json: ${error instanceof Error ? error.message : String(error)}`,
230
+ ],
231
+ });
232
+ }
233
+ }
234
+ return { hooksByType, validationResults };
235
+ }
236
+ /**
237
+ * Test all hooks in installed plugins
238
+ */
239
+ export async function testHooks(options) {
240
+ const executeHooks = options?.execute ?? false;
241
+ const verbose = options?.verbose ?? false;
242
+ if (!executeHooks) {
243
+ // Validation-only mode (keep existing console output)
244
+ await testHooksValidationOnly();
245
+ return;
246
+ }
247
+ const marketplaceRoot = getMarketplaceRoot();
248
+ if (!marketplaceRoot) {
249
+ console.error("Error: Could not find marketplace root directory");
250
+ console.error("This usually means the Han marketplace is not installed yet.");
251
+ console.error('Run "han plugin install" first to set up the marketplace.');
252
+ process.exit(1);
253
+ }
254
+ const projectPlugins = getInstalledPlugins("project");
255
+ const localPlugins = getInstalledPlugins("local");
256
+ const allPlugins = Array.from(new Set([...projectPlugins, ...localPlugins]));
257
+ if (allPlugins.length === 0) {
258
+ console.log("No plugins installed");
259
+ process.exit(0);
260
+ }
261
+ // Collect all hooks grouped by type
262
+ const { hooksByType, validationResults } = collectHooks(allPlugins, marketplaceRoot);
263
+ // Display validation results
264
+ if (validationResults.length > 0) {
265
+ console.log("\n❌ Validation Errors:\n");
266
+ for (const result of validationResults) {
267
+ console.error(` ${result.plugin}:`);
268
+ for (const error of result.errors) {
269
+ console.error(` - ${error}`);
270
+ }
271
+ }
272
+ console.log();
273
+ process.exit(1);
274
+ }
275
+ // Display what hooks were found
276
+ const hookTypesFound = Object.keys(hooksByType).sort();
277
+ if (hookTypesFound.length === 0) {
278
+ console.log("No hooks configured in any installed plugins");
279
+ process.exit(0);
280
+ }
281
+ // Execute hooks and render with Ink
282
+ await executeHooksWithUI(hookTypesFound, hooksByType, marketplaceRoot, verbose);
283
+ }
284
+ /**
285
+ * Execute hooks with Ink UI
286
+ */
287
+ async function executeHooksWithUI(hookTypesFound, hooksByType, marketplaceRoot, verbose) {
288
+ return new Promise((_resolve) => {
289
+ // Build hook structure first (hooksByType already contains HookCommand with type and timeout)
290
+ const hookStructure = new Map();
291
+ for (const hookType of hookTypesFound) {
292
+ hookStructure.set(hookType, hooksByType[hookType]);
293
+ }
294
+ const hookResults = new Map();
295
+ let currentType = null;
296
+ let isComplete = false;
297
+ let hadFailures = false;
298
+ const { rerender, unmount } = render(React.createElement(HookTestUI, {
299
+ hookTypes: hookTypesFound,
300
+ hookStructure,
301
+ hookResults,
302
+ currentType,
303
+ isComplete,
304
+ verbose,
305
+ }));
306
+ // Execute hooks sequentially by type
307
+ (async () => {
308
+ for (const hookType of hookTypesFound) {
309
+ const hooks = hooksByType[hookType];
310
+ currentType = hookType;
311
+ // Update UI to show current hook type
312
+ rerender(React.createElement(HookTestUI, {
313
+ hookTypes: hookTypesFound,
314
+ hookStructure,
315
+ hookResults,
316
+ currentType,
317
+ isComplete,
318
+ verbose,
319
+ }));
320
+ // Run all hooks of this type in parallel
321
+ const results = await Promise.all(hooks.map((hook) => executeHookCommand(hook, hookType, marketplaceRoot, verbose)));
322
+ // Store results
323
+ hookResults.set(hookType, results);
324
+ // Check for failures
325
+ if (results.some((r) => !r.success)) {
326
+ hadFailures = true;
327
+ }
328
+ // Update UI with results
329
+ rerender(React.createElement(HookTestUI, {
330
+ hookTypes: hookTypesFound,
331
+ hookStructure,
332
+ hookResults,
333
+ currentType,
334
+ isComplete,
335
+ verbose,
336
+ }));
337
+ }
338
+ // Mark as complete
339
+ isComplete = true;
340
+ currentType = null;
341
+ // Final render
342
+ rerender(React.createElement(HookTestUI, {
343
+ hookTypes: hookTypesFound,
344
+ hookStructure,
345
+ hookResults,
346
+ currentType,
347
+ isComplete,
348
+ verbose,
349
+ }));
350
+ // Wait a bit for final render, then unmount
351
+ setTimeout(() => {
352
+ unmount();
353
+ process.exit(hadFailures ? 1 : 0);
354
+ }, 100);
355
+ })();
356
+ });
357
+ }
358
+ /**
359
+ * Validation-only mode (no execution)
360
+ */
361
+ async function testHooksValidationOnly() {
362
+ console.log("🔍 Validating hooks for installed plugins...\n");
363
+ const marketplaceRoot = getMarketplaceRoot();
364
+ if (!marketplaceRoot) {
365
+ console.error("Error: Could not find marketplace root directory");
366
+ console.error("This usually means the Han marketplace is not installed yet.");
367
+ console.error('Run "han plugin install" first to set up the marketplace.');
368
+ process.exit(1);
369
+ }
370
+ const projectPlugins = getInstalledPlugins("project");
371
+ const localPlugins = getInstalledPlugins("local");
372
+ const allPlugins = Array.from(new Set([...projectPlugins, ...localPlugins]));
373
+ if (allPlugins.length === 0) {
374
+ console.log("No plugins installed");
375
+ process.exit(0);
376
+ }
377
+ // Collect all hooks grouped by type
378
+ const { hooksByType, validationResults } = collectHooks(allPlugins, marketplaceRoot);
379
+ // Display validation results
380
+ if (validationResults.length > 0) {
381
+ console.log("\n❌ Validation Errors:\n");
382
+ for (const result of validationResults) {
383
+ console.error(` ${result.plugin}:`);
384
+ for (const error of result.errors) {
385
+ console.error(` - ${error}`);
386
+ }
387
+ }
388
+ console.log();
389
+ process.exit(1);
390
+ }
391
+ // Display what hooks were found
392
+ const hookTypesFound = Object.keys(hooksByType);
393
+ if (hookTypesFound.length === 0) {
394
+ console.log("No hooks configured in any installed plugins");
395
+ process.exit(0);
396
+ }
397
+ console.log("\nFound hooks:");
398
+ for (const hookType of hookTypesFound.sort()) {
399
+ const count = hooksByType[hookType].length;
400
+ const plugins = [
401
+ ...new Set(hooksByType[hookType].map((h) => h.plugin)),
402
+ ].join(", ");
403
+ console.log(` ${hookType}: ${count} hook(s) from ${plugins}`);
404
+ }
405
+ console.log();
406
+ console.log("✅ All hooks validated successfully");
407
+ console.log("\nTip: Run with --execute to test hook execution\n");
408
+ process.exit(0);
409
+ }
410
+ //# sourceMappingURL=hook-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-test.js","sourceRoot":"","sources":["../../lib/hook-test.ts"],"names":[],"mappings":"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"}
package/dist/lib/main.js CHANGED
@@ -122,6 +122,23 @@ hookCommand
122
122
  command: commandArgs.join(" "),
123
123
  });
124
124
  });
125
+ // Hook test subcommand
126
+ hookCommand
127
+ .command("test")
128
+ .description("Validate hook configurations for all installed plugins")
129
+ .option("--execute", "Execute hooks to verify they run successfully")
130
+ .option("--verbose", "Show detailed output for all hooks")
131
+ .action(async (options) => {
132
+ try {
133
+ const { testHooks } = await import("./hook-test.js");
134
+ await testHooks({ execute: options.execute, verbose: options.verbose });
135
+ process.exit(0);
136
+ }
137
+ catch (error) {
138
+ console.error("Error during hook testing:", error instanceof Error ? error.message : error);
139
+ process.exit(1);
140
+ }
141
+ });
125
142
  // ============================================
126
143
  // Backwards compatibility aliases
127
144
  // ============================================
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../lib/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../lib/main.ts"],"names":[],"mappings":"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"}
@@ -340,5 +340,17 @@ test("han plugin uninstall handles non-existent plugin gracefully", () => {
340
340
  teardown();
341
341
  }
342
342
  });
343
+ // Test: han hook test shows help
344
+ test("han hook test shows help", () => {
345
+ try {
346
+ const output = execSync(`node ${binPath} hook test --help`, {
347
+ encoding: "utf8",
348
+ });
349
+ strictEqual(output.includes("Validate hook configurations"), true, "Expected help output to mention hook validation");
350
+ }
351
+ catch (error) {
352
+ throw new Error(`Expected help to show, got error: ${error}`);
353
+ }
354
+ });
343
355
  console.log("\nAll tests passed! ✓");
344
356
  //# sourceMappingURL=han.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"han.test.js","sourceRoot":"","sources":["../../test/han.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"han.test.js","sourceRoot":"","sources":["../../test/han.test.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.13.1",
3
+ "version": "1.14.0",
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",