@claude-flow/hooks 3.0.0-alpha.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.
Files changed (72) hide show
  1. package/README.md +440 -0
  2. package/bin/hooks-daemon.js +199 -0
  3. package/bin/statusline.js +77 -0
  4. package/dist/bridge/official-hooks-bridge.d.ts +99 -0
  5. package/dist/bridge/official-hooks-bridge.d.ts.map +1 -0
  6. package/dist/bridge/official-hooks-bridge.js +280 -0
  7. package/dist/bridge/official-hooks-bridge.js.map +1 -0
  8. package/dist/cli/guidance-cli.d.ts +17 -0
  9. package/dist/cli/guidance-cli.d.ts.map +1 -0
  10. package/dist/cli/guidance-cli.js +486 -0
  11. package/dist/cli/guidance-cli.js.map +1 -0
  12. package/dist/daemons/index.d.ts +204 -0
  13. package/dist/daemons/index.d.ts.map +1 -0
  14. package/dist/daemons/index.js +443 -0
  15. package/dist/daemons/index.js.map +1 -0
  16. package/dist/executor/index.d.ts +80 -0
  17. package/dist/executor/index.d.ts.map +1 -0
  18. package/dist/executor/index.js +273 -0
  19. package/dist/executor/index.js.map +1 -0
  20. package/dist/index.d.ts +51 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +85 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/llm/index.d.ts +11 -0
  25. package/dist/llm/index.d.ts.map +1 -0
  26. package/dist/llm/index.js +11 -0
  27. package/dist/llm/index.js.map +1 -0
  28. package/dist/llm/llm-hooks.d.ts +93 -0
  29. package/dist/llm/llm-hooks.d.ts.map +1 -0
  30. package/dist/llm/llm-hooks.js +382 -0
  31. package/dist/llm/llm-hooks.js.map +1 -0
  32. package/dist/mcp/index.d.ts +61 -0
  33. package/dist/mcp/index.d.ts.map +1 -0
  34. package/dist/mcp/index.js +501 -0
  35. package/dist/mcp/index.js.map +1 -0
  36. package/dist/reasoningbank/guidance-provider.d.ts +78 -0
  37. package/dist/reasoningbank/guidance-provider.d.ts.map +1 -0
  38. package/dist/reasoningbank/guidance-provider.js +350 -0
  39. package/dist/reasoningbank/guidance-provider.js.map +1 -0
  40. package/dist/reasoningbank/index.d.ts +212 -0
  41. package/dist/reasoningbank/index.d.ts.map +1 -0
  42. package/dist/reasoningbank/index.js +785 -0
  43. package/dist/reasoningbank/index.js.map +1 -0
  44. package/dist/registry/index.d.ts +85 -0
  45. package/dist/registry/index.d.ts.map +1 -0
  46. package/dist/registry/index.js +212 -0
  47. package/dist/registry/index.js.map +1 -0
  48. package/dist/statusline/index.d.ts +128 -0
  49. package/dist/statusline/index.d.ts.map +1 -0
  50. package/dist/statusline/index.js +493 -0
  51. package/dist/statusline/index.js.map +1 -0
  52. package/dist/swarm/index.d.ts +271 -0
  53. package/dist/swarm/index.d.ts.map +1 -0
  54. package/dist/swarm/index.js +638 -0
  55. package/dist/swarm/index.js.map +1 -0
  56. package/dist/types.d.ts +525 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +56 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/workers/index.d.ts +232 -0
  61. package/dist/workers/index.d.ts.map +1 -0
  62. package/dist/workers/index.js +1521 -0
  63. package/dist/workers/index.js.map +1 -0
  64. package/dist/workers/mcp-tools.d.ts +37 -0
  65. package/dist/workers/mcp-tools.d.ts.map +1 -0
  66. package/dist/workers/mcp-tools.js +414 -0
  67. package/dist/workers/mcp-tools.js.map +1 -0
  68. package/dist/workers/session-hook.d.ts +42 -0
  69. package/dist/workers/session-hook.d.ts.map +1 -0
  70. package/dist/workers/session-hook.js +172 -0
  71. package/dist/workers/session-hook.js.map +1 -0
  72. package/package.json +101 -0
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Official Claude Code Hooks Bridge
3
+ *
4
+ * Maps V3 internal hook events to official Claude Code hook events.
5
+ * This bridge enables seamless integration between claude-flow's
6
+ * internal hook system and the official Claude Code plugin API.
7
+ *
8
+ * @module v3/hooks/bridge/official-hooks-bridge
9
+ */
10
+ import { HookEvent, type HookHandler, type HookContext, type HookResult } from '../types.js';
11
+ /**
12
+ * Official Claude Code hook event types
13
+ * Based on https://code.claude.com/docs/en/hooks
14
+ */
15
+ export type OfficialHookEvent = 'PreToolUse' | 'PostToolUse' | 'UserPromptSubmit' | 'PermissionRequest' | 'Notification' | 'Stop' | 'SubagentStop' | 'PreCompact' | 'SessionStart';
16
+ /**
17
+ * Official hook input structure (received via stdin)
18
+ */
19
+ export interface OfficialHookInput {
20
+ session_id: string;
21
+ transcript_path: string;
22
+ cwd: string;
23
+ permission_mode: string;
24
+ hook_event_name: OfficialHookEvent;
25
+ tool_name?: string;
26
+ tool_input?: Record<string, unknown>;
27
+ tool_output?: unknown;
28
+ tool_success?: boolean;
29
+ tool_exit_code?: number;
30
+ prompt?: string;
31
+ notification_message?: string;
32
+ notification_level?: 'info' | 'warning' | 'error';
33
+ }
34
+ /**
35
+ * Official hook output structure (returned via stdout)
36
+ */
37
+ export interface OfficialHookOutput {
38
+ /** Decision for permission/flow control */
39
+ decision?: 'allow' | 'deny' | 'block' | 'ask' | 'approve' | 'stop' | 'continue';
40
+ /** Reason for the decision */
41
+ reason?: string;
42
+ /** Whether to continue processing (false stops Claude) */
43
+ continue?: boolean;
44
+ /** Modified tool input (for PreToolUse) */
45
+ updatedInput?: Record<string, unknown>;
46
+ /** Suppress the tool call result display */
47
+ suppressOutput?: boolean;
48
+ }
49
+ /**
50
+ * Mapping from V3 HookEvent to Official hook events
51
+ */
52
+ export declare const V3_TO_OFFICIAL_HOOK_MAP: Record<HookEvent, OfficialHookEvent | null>;
53
+ /**
54
+ * Tool matchers for V3 events that map to PreToolUse/PostToolUse
55
+ */
56
+ export declare const V3_TOOL_MATCHERS: Partial<Record<HookEvent, string>>;
57
+ /**
58
+ * Bridge class for converting between V3 and official hooks
59
+ */
60
+ export declare class OfficialHooksBridge {
61
+ /**
62
+ * Convert official hook input to V3 HookContext
63
+ */
64
+ static toV3Context(input: OfficialHookInput): HookContext;
65
+ /**
66
+ * Convert V3 HookResult to official hook output
67
+ */
68
+ static toOfficialOutput(result: HookResult, event: OfficialHookEvent): OfficialHookOutput;
69
+ /**
70
+ * Convert official hook event to V3 HookEvent
71
+ */
72
+ static officialToV3Event(officialEvent: OfficialHookEvent, toolName?: string): HookEvent;
73
+ /**
74
+ * Get tool matcher for a V3 event
75
+ */
76
+ static getToolMatcher(event: HookEvent): string | null;
77
+ /**
78
+ * Check if V3 event maps to an official hook
79
+ */
80
+ static hasOfficialMapping(event: HookEvent): boolean;
81
+ /**
82
+ * Create a CLI command for a V3 hook handler
83
+ */
84
+ static createCLICommand(event: HookEvent, handler: string): string;
85
+ }
86
+ /**
87
+ * Process stdin from official Claude Code hook system
88
+ */
89
+ export declare function processOfficialHookInput(): Promise<OfficialHookInput | null>;
90
+ /**
91
+ * Output result to official Claude Code hook system
92
+ */
93
+ export declare function outputOfficialHookResult(output: OfficialHookOutput): void;
94
+ /**
95
+ * Execute a V3 handler and bridge to official output
96
+ */
97
+ export declare function executeWithBridge(input: OfficialHookInput, handler: HookHandler): Promise<OfficialHookOutput>;
98
+ export default OfficialHooksBridge;
99
+ //# sourceMappingURL=official-hooks-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-hooks-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/official-hooks-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Official Claude Code Hooks Bridge
3
+ *
4
+ * Maps V3 internal hook events to official Claude Code hook events.
5
+ * This bridge enables seamless integration between claude-flow's
6
+ * internal hook system and the official Claude Code plugin API.
7
+ *
8
+ * @module v3/hooks/bridge/official-hooks-bridge
9
+ */
10
+ import { HookEvent } from '../types.js';
11
+ /**
12
+ * Mapping from V3 HookEvent to Official hook events
13
+ */
14
+ export const V3_TO_OFFICIAL_HOOK_MAP = {
15
+ // Direct mappings
16
+ [HookEvent.PreToolUse]: 'PreToolUse',
17
+ [HookEvent.PostToolUse]: 'PostToolUse',
18
+ [HookEvent.SessionStart]: 'SessionStart',
19
+ // File operations map to tool hooks with matchers
20
+ [HookEvent.PreEdit]: 'PreToolUse', // matcher: Edit|Write|MultiEdit
21
+ [HookEvent.PostEdit]: 'PostToolUse', // matcher: Edit|Write|MultiEdit
22
+ [HookEvent.PreRead]: 'PreToolUse', // matcher: Read
23
+ [HookEvent.PostRead]: 'PostToolUse', // matcher: Read
24
+ // Command operations map to tool hooks
25
+ [HookEvent.PreCommand]: 'PreToolUse', // matcher: Bash
26
+ [HookEvent.PostCommand]: 'PostToolUse', // matcher: Bash
27
+ // Task operations
28
+ [HookEvent.PreTask]: 'UserPromptSubmit',
29
+ [HookEvent.PostTask]: 'PostToolUse', // matcher: Task
30
+ [HookEvent.TaskProgress]: null, // Internal only
31
+ // Session operations
32
+ [HookEvent.SessionEnd]: 'Stop',
33
+ [HookEvent.SessionRestore]: 'SessionStart',
34
+ // Agent operations
35
+ [HookEvent.AgentSpawn]: 'PostToolUse', // matcher: Task
36
+ [HookEvent.AgentTerminate]: 'SubagentStop',
37
+ // Routing (internal)
38
+ [HookEvent.PreRoute]: 'UserPromptSubmit',
39
+ [HookEvent.PostRoute]: null, // Internal only
40
+ // Learning (internal)
41
+ [HookEvent.PatternLearned]: null, // Internal only
42
+ [HookEvent.PatternConsolidated]: null, // Internal only
43
+ };
44
+ /**
45
+ * Tool matchers for V3 events that map to PreToolUse/PostToolUse
46
+ */
47
+ export const V3_TOOL_MATCHERS = {
48
+ [HookEvent.PreEdit]: '^(Write|Edit|MultiEdit)$',
49
+ [HookEvent.PostEdit]: '^(Write|Edit|MultiEdit)$',
50
+ [HookEvent.PreRead]: '^Read$',
51
+ [HookEvent.PostRead]: '^Read$',
52
+ [HookEvent.PreCommand]: '^Bash$',
53
+ [HookEvent.PostCommand]: '^Bash$',
54
+ [HookEvent.PreTask]: '^Task$',
55
+ [HookEvent.PostTask]: '^Task$',
56
+ [HookEvent.AgentSpawn]: '^Task$',
57
+ };
58
+ /**
59
+ * Bridge class for converting between V3 and official hooks
60
+ */
61
+ export class OfficialHooksBridge {
62
+ /**
63
+ * Convert official hook input to V3 HookContext
64
+ */
65
+ static toV3Context(input) {
66
+ const event = this.officialToV3Event(input.hook_event_name, input.tool_name);
67
+ const context = {
68
+ event,
69
+ timestamp: new Date(),
70
+ metadata: {
71
+ session_id: input.session_id,
72
+ transcript_path: input.transcript_path,
73
+ cwd: input.cwd,
74
+ permission_mode: input.permission_mode,
75
+ },
76
+ };
77
+ // Add tool information
78
+ if (input.tool_name) {
79
+ context.tool = {
80
+ name: input.tool_name,
81
+ parameters: input.tool_input ?? {},
82
+ };
83
+ }
84
+ // Add file information for file operations
85
+ if (input.tool_name && ['Write', 'Edit', 'MultiEdit', 'Read'].includes(input.tool_name)) {
86
+ context.file = {
87
+ path: input.tool_input?.file_path ?? '',
88
+ operation: input.tool_name === 'Read' ? 'read' : 'modify',
89
+ };
90
+ }
91
+ // Add command information for Bash
92
+ if (input.tool_name === 'Bash') {
93
+ context.command = {
94
+ raw: input.tool_input?.command ?? '',
95
+ workingDirectory: input.cwd,
96
+ exitCode: input.tool_exit_code,
97
+ output: typeof input.tool_output === 'string' ? input.tool_output : undefined,
98
+ };
99
+ }
100
+ // Add task information for Task tool
101
+ if (input.tool_name === 'Task') {
102
+ context.task = {
103
+ id: `task-${Date.now()}`,
104
+ description: input.tool_input?.prompt ?? '',
105
+ agent: input.tool_input?.subagent_type,
106
+ };
107
+ }
108
+ // Add session information
109
+ context.session = {
110
+ id: input.session_id,
111
+ startedAt: new Date(),
112
+ };
113
+ // Add prompt for UserPromptSubmit
114
+ if (input.prompt) {
115
+ context.routing = {
116
+ task: input.prompt,
117
+ };
118
+ }
119
+ return context;
120
+ }
121
+ /**
122
+ * Convert V3 HookResult to official hook output
123
+ */
124
+ static toOfficialOutput(result, event) {
125
+ const output = {};
126
+ // Map abort to decision
127
+ if (result.abort) {
128
+ output.decision = event === 'PermissionRequest' ? 'deny' : 'block';
129
+ output.continue = false;
130
+ }
131
+ else if (result.success) {
132
+ output.decision = event === 'PermissionRequest' ? 'allow' : 'continue';
133
+ output.continue = true;
134
+ }
135
+ // Add reason
136
+ if (result.error) {
137
+ output.reason = result.error;
138
+ }
139
+ else if (result.message) {
140
+ output.reason = result.message;
141
+ }
142
+ // Pass through updated input if present
143
+ if (result.data?.updatedInput) {
144
+ output.updatedInput = result.data.updatedInput;
145
+ }
146
+ return output;
147
+ }
148
+ /**
149
+ * Convert official hook event to V3 HookEvent
150
+ */
151
+ static officialToV3Event(officialEvent, toolName) {
152
+ // Handle tool-specific mappings
153
+ if (officialEvent === 'PreToolUse' && toolName) {
154
+ if (['Write', 'Edit', 'MultiEdit'].includes(toolName)) {
155
+ return HookEvent.PreEdit;
156
+ }
157
+ if (toolName === 'Read') {
158
+ return HookEvent.PreRead;
159
+ }
160
+ if (toolName === 'Bash') {
161
+ return HookEvent.PreCommand;
162
+ }
163
+ if (toolName === 'Task') {
164
+ return HookEvent.PreTask;
165
+ }
166
+ return HookEvent.PreToolUse;
167
+ }
168
+ if (officialEvent === 'PostToolUse' && toolName) {
169
+ if (['Write', 'Edit', 'MultiEdit'].includes(toolName)) {
170
+ return HookEvent.PostEdit;
171
+ }
172
+ if (toolName === 'Read') {
173
+ return HookEvent.PostRead;
174
+ }
175
+ if (toolName === 'Bash') {
176
+ return HookEvent.PostCommand;
177
+ }
178
+ if (toolName === 'Task') {
179
+ return HookEvent.PostTask;
180
+ }
181
+ return HookEvent.PostToolUse;
182
+ }
183
+ // Direct mappings
184
+ const mapping = {
185
+ PreToolUse: HookEvent.PreToolUse,
186
+ PostToolUse: HookEvent.PostToolUse,
187
+ UserPromptSubmit: HookEvent.PreTask,
188
+ PermissionRequest: HookEvent.PreToolUse,
189
+ Notification: HookEvent.PostTask, // Closest match
190
+ Stop: HookEvent.SessionEnd,
191
+ SubagentStop: HookEvent.AgentTerminate,
192
+ PreCompact: HookEvent.SessionEnd, // Closest match
193
+ SessionStart: HookEvent.SessionStart,
194
+ };
195
+ return mapping[officialEvent] ?? HookEvent.PreToolUse;
196
+ }
197
+ /**
198
+ * Get tool matcher for a V3 event
199
+ */
200
+ static getToolMatcher(event) {
201
+ return V3_TOOL_MATCHERS[event] ?? null;
202
+ }
203
+ /**
204
+ * Check if V3 event maps to an official hook
205
+ */
206
+ static hasOfficialMapping(event) {
207
+ return V3_TO_OFFICIAL_HOOK_MAP[event] !== null;
208
+ }
209
+ /**
210
+ * Create a CLI command for a V3 hook handler
211
+ */
212
+ static createCLICommand(event, handler) {
213
+ const baseCommand = 'npx claude-flow@alpha hooks';
214
+ switch (event) {
215
+ case HookEvent.PreEdit:
216
+ return `${baseCommand} pre-edit --file "$TOOL_INPUT_file_path"`;
217
+ case HookEvent.PostEdit:
218
+ return `${baseCommand} post-edit --file "$TOOL_INPUT_file_path" --success "$TOOL_SUCCESS" --train-patterns`;
219
+ case HookEvent.PreCommand:
220
+ return `${baseCommand} pre-command --command "$TOOL_INPUT_command"`;
221
+ case HookEvent.PostCommand:
222
+ return `${baseCommand} post-command --command "$TOOL_INPUT_command" --success "$TOOL_SUCCESS"`;
223
+ case HookEvent.PreTask:
224
+ return `${baseCommand} pre-task --description "$PROMPT"`;
225
+ case HookEvent.PostTask:
226
+ return `${baseCommand} post-task --task-id "$TOOL_RESULT_agent_id" --analyze-performance`;
227
+ case HookEvent.SessionStart:
228
+ return `${baseCommand} session-start --session-id "$SESSION_ID" --load-context`;
229
+ case HookEvent.SessionEnd:
230
+ return `${baseCommand} session-end --session-id "$SESSION_ID" --export-metrics`;
231
+ default:
232
+ return `${baseCommand} ${handler}`;
233
+ }
234
+ }
235
+ }
236
+ /**
237
+ * Process stdin from official Claude Code hook system
238
+ */
239
+ export async function processOfficialHookInput() {
240
+ return new Promise((resolve) => {
241
+ let data = '';
242
+ process.stdin.setEncoding('utf8');
243
+ process.stdin.on('readable', () => {
244
+ let chunk;
245
+ while ((chunk = process.stdin.read()) !== null) {
246
+ data += chunk;
247
+ }
248
+ });
249
+ process.stdin.on('end', () => {
250
+ try {
251
+ resolve(JSON.parse(data));
252
+ }
253
+ catch {
254
+ resolve(null);
255
+ }
256
+ });
257
+ // Handle case where no stdin (testing)
258
+ setTimeout(() => {
259
+ if (!data) {
260
+ resolve(null);
261
+ }
262
+ }, 100);
263
+ });
264
+ }
265
+ /**
266
+ * Output result to official Claude Code hook system
267
+ */
268
+ export function outputOfficialHookResult(output) {
269
+ console.log(JSON.stringify(output));
270
+ }
271
+ /**
272
+ * Execute a V3 handler and bridge to official output
273
+ */
274
+ export async function executeWithBridge(input, handler) {
275
+ const context = OfficialHooksBridge.toV3Context(input);
276
+ const result = await handler(context);
277
+ return OfficialHooksBridge.toOfficialOutput(result, input.hook_event_name);
278
+ }
279
+ export default OfficialHooksBridge;
280
+ //# sourceMappingURL=official-hooks-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-hooks-bridge.js","sourceRoot":"","sources":["../../src/bridge/official-hooks-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * V3 Guidance CLI
4
+ *
5
+ * Command-line interface for hooks guidance system.
6
+ * Outputs plain text or JSON that Claude Code hooks can consume.
7
+ *
8
+ * Usage:
9
+ * npx @claude-flow/hooks session-context
10
+ * npx @claude-flow/hooks user-prompt "Fix authentication bug"
11
+ * npx @claude-flow/hooks pre-edit "/path/to/file.ts"
12
+ * npx @claude-flow/hooks route "Implement caching layer"
13
+ *
14
+ * @module @claude-flow/hooks/cli/guidance-cli
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=guidance-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidance-cli.d.ts","sourceRoot":"","sources":["../../src/cli/guidance-cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}