@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.
- package/README.md +440 -0
- package/bin/hooks-daemon.js +199 -0
- package/bin/statusline.js +77 -0
- package/dist/bridge/official-hooks-bridge.d.ts +99 -0
- package/dist/bridge/official-hooks-bridge.d.ts.map +1 -0
- package/dist/bridge/official-hooks-bridge.js +280 -0
- package/dist/bridge/official-hooks-bridge.js.map +1 -0
- package/dist/cli/guidance-cli.d.ts +17 -0
- package/dist/cli/guidance-cli.d.ts.map +1 -0
- package/dist/cli/guidance-cli.js +486 -0
- package/dist/cli/guidance-cli.js.map +1 -0
- package/dist/daemons/index.d.ts +204 -0
- package/dist/daemons/index.d.ts.map +1 -0
- package/dist/daemons/index.js +443 -0
- package/dist/daemons/index.js.map +1 -0
- package/dist/executor/index.d.ts +80 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +273 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +11 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/llm-hooks.d.ts +93 -0
- package/dist/llm/llm-hooks.d.ts.map +1 -0
- package/dist/llm/llm-hooks.js +382 -0
- package/dist/llm/llm-hooks.js.map +1 -0
- package/dist/mcp/index.d.ts +61 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +501 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/reasoningbank/guidance-provider.d.ts +78 -0
- package/dist/reasoningbank/guidance-provider.d.ts.map +1 -0
- package/dist/reasoningbank/guidance-provider.js +350 -0
- package/dist/reasoningbank/guidance-provider.js.map +1 -0
- package/dist/reasoningbank/index.d.ts +212 -0
- package/dist/reasoningbank/index.d.ts.map +1 -0
- package/dist/reasoningbank/index.js +785 -0
- package/dist/reasoningbank/index.js.map +1 -0
- package/dist/registry/index.d.ts +85 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +212 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/statusline/index.d.ts +128 -0
- package/dist/statusline/index.d.ts.map +1 -0
- package/dist/statusline/index.js +493 -0
- package/dist/statusline/index.js.map +1 -0
- package/dist/swarm/index.d.ts +271 -0
- package/dist/swarm/index.d.ts.map +1 -0
- package/dist/swarm/index.js +638 -0
- package/dist/swarm/index.js.map +1 -0
- package/dist/types.d.ts +525 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +56 -0
- package/dist/types.js.map +1 -0
- package/dist/workers/index.d.ts +232 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/workers/index.js +1521 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/mcp-tools.d.ts +37 -0
- package/dist/workers/mcp-tools.d.ts.map +1 -0
- package/dist/workers/mcp-tools.js +414 -0
- package/dist/workers/mcp-tools.js.map +1 -0
- package/dist/workers/session-hook.d.ts +42 -0
- package/dist/workers/session-hook.d.ts.map +1 -0
- package/dist/workers/session-hook.js +172 -0
- package/dist/workers/session-hook.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Hook Executor
|
|
3
|
+
*
|
|
4
|
+
* Executes hooks in priority order with timeout handling,
|
|
5
|
+
* error recovery, and result aggregation.
|
|
6
|
+
*/
|
|
7
|
+
import type { HookEvent, HookContext, HookExecutionOptions, HookExecutionResult } from '../types.js';
|
|
8
|
+
import { HookRegistry } from '../registry/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Hook Executor - executes hooks for events
|
|
11
|
+
*/
|
|
12
|
+
export declare class HookExecutor {
|
|
13
|
+
private registry;
|
|
14
|
+
private eventEmitter?;
|
|
15
|
+
constructor(registry?: HookRegistry);
|
|
16
|
+
/**
|
|
17
|
+
* Set event emitter for hook execution events
|
|
18
|
+
*/
|
|
19
|
+
setEventEmitter(emitter: {
|
|
20
|
+
emit: (event: string, data: unknown) => void;
|
|
21
|
+
}): void;
|
|
22
|
+
/**
|
|
23
|
+
* Execute all hooks for an event
|
|
24
|
+
*/
|
|
25
|
+
execute<T = unknown>(event: HookEvent, context: Partial<HookContext<T>>, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Execute a single hook with timeout
|
|
28
|
+
*/
|
|
29
|
+
private executeWithTimeout;
|
|
30
|
+
/**
|
|
31
|
+
* Execute hooks for pre-tool-use event
|
|
32
|
+
*/
|
|
33
|
+
preToolUse(toolName: string, parameters: Record<string, unknown>, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Execute hooks for post-tool-use event
|
|
36
|
+
*/
|
|
37
|
+
postToolUse(toolName: string, parameters: Record<string, unknown>, duration: number, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Execute hooks for pre-edit event
|
|
40
|
+
*/
|
|
41
|
+
preEdit(filePath: string, operation: 'create' | 'modify' | 'delete', options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute hooks for post-edit event
|
|
44
|
+
*/
|
|
45
|
+
postEdit(filePath: string, operation: 'create' | 'modify' | 'delete', duration: number, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Execute hooks for pre-command event
|
|
48
|
+
*/
|
|
49
|
+
preCommand(command: string, workingDirectory?: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Execute hooks for post-command event
|
|
52
|
+
*/
|
|
53
|
+
postCommand(command: string, exitCode: number, output?: string, error?: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Execute hooks for session-start event
|
|
56
|
+
*/
|
|
57
|
+
sessionStart(sessionId: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
58
|
+
/**
|
|
59
|
+
* Execute hooks for session-end event
|
|
60
|
+
*/
|
|
61
|
+
sessionEnd(sessionId: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Execute hooks for agent-spawn event
|
|
64
|
+
*/
|
|
65
|
+
agentSpawn(agentId: string, agentType: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
66
|
+
/**
|
|
67
|
+
* Execute hooks for agent-terminate event
|
|
68
|
+
*/
|
|
69
|
+
agentTerminate(agentId: string, agentType: string, status: string, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Default global executor instance
|
|
73
|
+
*/
|
|
74
|
+
export declare const defaultExecutor: HookExecutor;
|
|
75
|
+
/**
|
|
76
|
+
* Convenience function to execute hooks on the default executor
|
|
77
|
+
*/
|
|
78
|
+
export declare function executeHooks<T = unknown>(event: HookEvent, context: Partial<HookContext<T>>, options?: HookExecutionOptions): Promise<HookExecutionResult>;
|
|
79
|
+
export { HookExecutor as default };
|
|
80
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Hook Executor
|
|
3
|
+
*
|
|
4
|
+
* Executes hooks in priority order with timeout handling,
|
|
5
|
+
* error recovery, and result aggregation.
|
|
6
|
+
*/
|
|
7
|
+
import { defaultRegistry } from '../registry/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Default execution options
|
|
10
|
+
*/
|
|
11
|
+
const DEFAULT_OPTIONS = {
|
|
12
|
+
continueOnError: false,
|
|
13
|
+
timeout: 5000,
|
|
14
|
+
emitEvents: true,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Hook Executor - executes hooks for events
|
|
18
|
+
*/
|
|
19
|
+
export class HookExecutor {
|
|
20
|
+
registry;
|
|
21
|
+
eventEmitter;
|
|
22
|
+
constructor(registry) {
|
|
23
|
+
this.registry = registry ?? defaultRegistry;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Set event emitter for hook execution events
|
|
27
|
+
*/
|
|
28
|
+
setEventEmitter(emitter) {
|
|
29
|
+
this.eventEmitter = emitter;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Execute all hooks for an event
|
|
33
|
+
*/
|
|
34
|
+
async execute(event, context, options) {
|
|
35
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
36
|
+
const startTime = Date.now();
|
|
37
|
+
// Build full context
|
|
38
|
+
const fullContext = {
|
|
39
|
+
event,
|
|
40
|
+
timestamp: new Date(),
|
|
41
|
+
...context,
|
|
42
|
+
};
|
|
43
|
+
// Get hooks for event
|
|
44
|
+
const hooks = this.registry.getForEvent(event, true);
|
|
45
|
+
if (hooks.length === 0) {
|
|
46
|
+
return {
|
|
47
|
+
success: true,
|
|
48
|
+
hooksExecuted: 0,
|
|
49
|
+
hooksFailed: 0,
|
|
50
|
+
executionTime: Date.now() - startTime,
|
|
51
|
+
results: [],
|
|
52
|
+
finalContext: fullContext,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Execute hooks in priority order
|
|
56
|
+
const results = [];
|
|
57
|
+
const warnings = [];
|
|
58
|
+
const messages = [];
|
|
59
|
+
let aborted = false;
|
|
60
|
+
let hooksFailed = 0;
|
|
61
|
+
for (const hook of hooks) {
|
|
62
|
+
if (aborted)
|
|
63
|
+
break;
|
|
64
|
+
const hookStart = Date.now();
|
|
65
|
+
let result;
|
|
66
|
+
try {
|
|
67
|
+
result = await this.executeWithTimeout(hook, fullContext, opts.timeout);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
result = {
|
|
71
|
+
success: false,
|
|
72
|
+
error: error instanceof Error ? error.message : String(error),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const hookDuration = Date.now() - hookStart;
|
|
76
|
+
results.push({
|
|
77
|
+
hookId: hook.id,
|
|
78
|
+
hookName: hook.name,
|
|
79
|
+
success: result.success,
|
|
80
|
+
duration: hookDuration,
|
|
81
|
+
error: result.error,
|
|
82
|
+
});
|
|
83
|
+
// Collect warnings and messages
|
|
84
|
+
if (result.warnings) {
|
|
85
|
+
warnings.push(...result.warnings);
|
|
86
|
+
}
|
|
87
|
+
if (result.message) {
|
|
88
|
+
messages.push(result.message);
|
|
89
|
+
}
|
|
90
|
+
// Update context with hook data
|
|
91
|
+
if (result.data) {
|
|
92
|
+
Object.assign(fullContext, { metadata: { ...fullContext.metadata, ...result.data } });
|
|
93
|
+
}
|
|
94
|
+
// Record stats
|
|
95
|
+
this.registry.recordExecution(result.success, hookDuration);
|
|
96
|
+
// Handle failure
|
|
97
|
+
if (!result.success) {
|
|
98
|
+
hooksFailed++;
|
|
99
|
+
if (opts.emitEvents && this.eventEmitter) {
|
|
100
|
+
this.eventEmitter.emit('hook:failed', {
|
|
101
|
+
hookId: hook.id,
|
|
102
|
+
hookName: hook.name,
|
|
103
|
+
event,
|
|
104
|
+
error: result.error,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (!opts.continueOnError) {
|
|
108
|
+
aborted = true;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Handle abort request
|
|
113
|
+
if (result.abort) {
|
|
114
|
+
aborted = true;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
// Emit success event
|
|
118
|
+
if (opts.emitEvents && this.eventEmitter && result.success) {
|
|
119
|
+
this.eventEmitter.emit('hook:executed', {
|
|
120
|
+
hookId: hook.id,
|
|
121
|
+
hookName: hook.name,
|
|
122
|
+
event,
|
|
123
|
+
duration: hookDuration,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const executionTime = Date.now() - startTime;
|
|
128
|
+
// Emit completion event
|
|
129
|
+
if (opts.emitEvents && this.eventEmitter) {
|
|
130
|
+
this.eventEmitter.emit('hooks:completed', {
|
|
131
|
+
event,
|
|
132
|
+
hooksExecuted: results.length,
|
|
133
|
+
hooksFailed,
|
|
134
|
+
executionTime,
|
|
135
|
+
aborted,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
success: hooksFailed === 0 && !aborted,
|
|
140
|
+
aborted,
|
|
141
|
+
hooksExecuted: results.length,
|
|
142
|
+
hooksFailed,
|
|
143
|
+
executionTime,
|
|
144
|
+
results,
|
|
145
|
+
finalContext: fullContext,
|
|
146
|
+
warnings: warnings.length > 0 ? warnings : undefined,
|
|
147
|
+
messages: messages.length > 0 ? messages : undefined,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Execute a single hook with timeout
|
|
152
|
+
*/
|
|
153
|
+
async executeWithTimeout(hook, context, timeout) {
|
|
154
|
+
return new Promise((resolve, reject) => {
|
|
155
|
+
const timer = setTimeout(() => {
|
|
156
|
+
reject(new Error(`Hook ${hook.id} timed out after ${timeout}ms`));
|
|
157
|
+
}, timeout);
|
|
158
|
+
Promise.resolve(hook.handler(context))
|
|
159
|
+
.then((result) => {
|
|
160
|
+
clearTimeout(timer);
|
|
161
|
+
resolve(result);
|
|
162
|
+
})
|
|
163
|
+
.catch((error) => {
|
|
164
|
+
clearTimeout(timer);
|
|
165
|
+
reject(error);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Execute hooks for pre-tool-use event
|
|
171
|
+
*/
|
|
172
|
+
async preToolUse(toolName, parameters, options) {
|
|
173
|
+
const { HookEvent } = await import('../types.js');
|
|
174
|
+
return this.execute(HookEvent.PreToolUse, {
|
|
175
|
+
tool: { name: toolName, parameters },
|
|
176
|
+
}, options);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Execute hooks for post-tool-use event
|
|
180
|
+
*/
|
|
181
|
+
async postToolUse(toolName, parameters, duration, options) {
|
|
182
|
+
const { HookEvent } = await import('../types.js');
|
|
183
|
+
return this.execute(HookEvent.PostToolUse, {
|
|
184
|
+
tool: { name: toolName, parameters },
|
|
185
|
+
duration,
|
|
186
|
+
}, options);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Execute hooks for pre-edit event
|
|
190
|
+
*/
|
|
191
|
+
async preEdit(filePath, operation, options) {
|
|
192
|
+
const { HookEvent } = await import('../types.js');
|
|
193
|
+
return this.execute(HookEvent.PreEdit, {
|
|
194
|
+
file: { path: filePath, operation },
|
|
195
|
+
}, options);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Execute hooks for post-edit event
|
|
199
|
+
*/
|
|
200
|
+
async postEdit(filePath, operation, duration, options) {
|
|
201
|
+
const { HookEvent } = await import('../types.js');
|
|
202
|
+
return this.execute(HookEvent.PostEdit, {
|
|
203
|
+
file: { path: filePath, operation },
|
|
204
|
+
duration,
|
|
205
|
+
}, options);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Execute hooks for pre-command event
|
|
209
|
+
*/
|
|
210
|
+
async preCommand(command, workingDirectory, options) {
|
|
211
|
+
const { HookEvent } = await import('../types.js');
|
|
212
|
+
return this.execute(HookEvent.PreCommand, {
|
|
213
|
+
command: { raw: command, workingDirectory },
|
|
214
|
+
}, options);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Execute hooks for post-command event
|
|
218
|
+
*/
|
|
219
|
+
async postCommand(command, exitCode, output, error, options) {
|
|
220
|
+
const { HookEvent } = await import('../types.js');
|
|
221
|
+
return this.execute(HookEvent.PostCommand, {
|
|
222
|
+
command: { raw: command, exitCode, output, error },
|
|
223
|
+
}, options);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Execute hooks for session-start event
|
|
227
|
+
*/
|
|
228
|
+
async sessionStart(sessionId, options) {
|
|
229
|
+
const { HookEvent } = await import('../types.js');
|
|
230
|
+
return this.execute(HookEvent.SessionStart, {
|
|
231
|
+
session: { id: sessionId, startedAt: new Date() },
|
|
232
|
+
}, options);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Execute hooks for session-end event
|
|
236
|
+
*/
|
|
237
|
+
async sessionEnd(sessionId, options) {
|
|
238
|
+
const { HookEvent } = await import('../types.js');
|
|
239
|
+
return this.execute(HookEvent.SessionEnd, {
|
|
240
|
+
session: { id: sessionId, startedAt: new Date() },
|
|
241
|
+
}, options);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Execute hooks for agent-spawn event
|
|
245
|
+
*/
|
|
246
|
+
async agentSpawn(agentId, agentType, options) {
|
|
247
|
+
const { HookEvent } = await import('../types.js');
|
|
248
|
+
return this.execute(HookEvent.AgentSpawn, {
|
|
249
|
+
agent: { id: agentId, type: agentType },
|
|
250
|
+
}, options);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Execute hooks for agent-terminate event
|
|
254
|
+
*/
|
|
255
|
+
async agentTerminate(agentId, agentType, status, options) {
|
|
256
|
+
const { HookEvent } = await import('../types.js');
|
|
257
|
+
return this.execute(HookEvent.AgentTerminate, {
|
|
258
|
+
agent: { id: agentId, type: agentType, status },
|
|
259
|
+
}, options);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Default global executor instance
|
|
264
|
+
*/
|
|
265
|
+
export const defaultExecutor = new HookExecutor();
|
|
266
|
+
/**
|
|
267
|
+
* Convenience function to execute hooks on the default executor
|
|
268
|
+
*/
|
|
269
|
+
export async function executeHooks(event, context, options) {
|
|
270
|
+
return defaultExecutor.execute(event, context, options);
|
|
271
|
+
}
|
|
272
|
+
export { HookExecutor as default };
|
|
273
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAgB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAErE;;GAEG;AACH,MAAM,eAAe,GAAmC;IACtD,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,QAAQ,CAAe;IACvB,YAAY,CAElB;IAEF,YAAY,QAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,eAAe,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAyD;QACvE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,KAAgB,EAChB,OAAgC,EAChC,OAA8B;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,qBAAqB;QACrB,MAAM,WAAW,GAAmB;YAClC,KAAK;YACL,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,OAAO;SACO,CAAC;QAEpB,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,WAAW;aAC1B,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO;gBAAE,MAAM;YAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,MAAkB,CAAC;YAEvB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACpC,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG;oBACP,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE5C,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,gCAAgC;YAChC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAE5D,iBAAiB;YACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,WAAW,EAAE,CAAC;gBAEd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE;wBACpC,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,KAAK;wBACL,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YAED,qBAAqB;YACrB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE;oBACtC,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,KAAK;oBACL,QAAQ,EAAE,YAAY;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE7C,wBAAwB;QACxB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACxC,KAAK;gBACL,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,WAAW;gBACX,aAAa;gBACb,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO;YACtC,OAAO;YACP,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,WAAW;YACX,aAAa;YACb,OAAO;YACP,YAAY,EAAE,WAAW;YACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACpD,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,IAAe,EACf,OAAoB,EACpB,OAAe;QAEf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,oBAAoB,OAAO,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBACnC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,UAAmC,EACnC,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,UAAU,EACpB;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;SACrC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,UAAmC,EACnC,QAAgB,EAChB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,WAAW,EACrB;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;YACpC,QAAQ;SACT,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,SAAyC,EACzC,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,OAAO,EACjB;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;SACpC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,SAAyC,EACzC,QAAgB,EAChB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,QAAQ,EAClB;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;YACnC,QAAQ;SACT,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAAe,EACf,gBAAyB,EACzB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,UAAU,EACpB;YACE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE;SAC5C,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,QAAgB,EAChB,MAAe,EACf,KAAc,EACd,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,WAAW,EACrB;YACE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;SACnD,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,YAAY,EACtB;YACE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;SAClD,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,UAAU,EACpB;YACE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;SAClD,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAAe,EACf,SAAiB,EACjB,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,UAAU,EACpB;YACE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACxC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,SAAiB,EACjB,MAAc,EACd,OAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,CAAC,cAAc,EACxB;YACE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;SAChD,EACD,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAgB,EAChB,OAAgC,EAChC,OAA8B;IAE9B,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/hooks - V3 Hooks System
|
|
3
|
+
*
|
|
4
|
+
* Event-driven lifecycle hooks with ReasoningBank learning integration.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Hook registration and execution
|
|
8
|
+
* - Background daemons for metrics and learning
|
|
9
|
+
* - Statusline integration
|
|
10
|
+
* - MCP tool definitions
|
|
11
|
+
* - V2 compatibility layer
|
|
12
|
+
*
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
export * from './types.js';
|
|
16
|
+
export { ReasoningBank, reasoningBank, type GuidancePattern, type GuidanceResult, type RoutingResult, type ReasoningBankConfig, type ReasoningBankMetrics, } from './reasoningbank/index.js';
|
|
17
|
+
export { GuidanceProvider, guidanceProvider, type ClaudeHookOutput, } from './reasoningbank/guidance-provider.js';
|
|
18
|
+
export { HookRegistry, defaultRegistry, registerHook, unregisterHook, } from './registry/index.js';
|
|
19
|
+
export { HookExecutor, defaultExecutor, executeHooks, } from './executor/index.js';
|
|
20
|
+
export { DaemonManager, MetricsDaemon, SwarmMonitorDaemon, HooksLearningDaemon, defaultDaemonManager, } from './daemons/index.js';
|
|
21
|
+
export { StatuslineGenerator, createShellStatusline, parseStatuslineData, defaultStatuslineGenerator, } from './statusline/index.js';
|
|
22
|
+
export { hooksMCPTools, getHooksTool, preEditTool, postEditTool, routeTaskTool, metricsTool, preCommandTool, postCommandTool, daemonStatusTool, statuslineTool, type MCPTool, } from './mcp/index.js';
|
|
23
|
+
export { OfficialHooksBridge, V3_TO_OFFICIAL_HOOK_MAP, V3_TOOL_MATCHERS, processOfficialHookInput, outputOfficialHookResult, executeWithBridge, type OfficialHookEvent, type OfficialHookInput, type OfficialHookOutput, } from './bridge/official-hooks-bridge.js';
|
|
24
|
+
export { SwarmCommunication, swarmComm, type SwarmMessage, type PatternBroadcast, type ConsensusRequest, type TaskHandoff, type SwarmAgentState, type SwarmConfig, } from './swarm/index.js';
|
|
25
|
+
export { WorkerManager, WorkerPriority, AlertSeverity, WORKER_CONFIGS, DEFAULT_THRESHOLDS, createWorkerManager, workerManager, createPerformanceWorker, createHealthWorker, createSwarmWorker, createGitWorker, createLearningWorker, createADRWorker, createDDDWorker, createSecurityWorker, createPatternsWorker, createCacheWorker, type WorkerConfig, type WorkerResult, type WorkerMetrics, type WorkerManagerStatus, type WorkerHandler, type WorkerAlert, type AlertThreshold, type PersistedWorkerState, type HistoricalMetric, type StatuslineData, } from './workers/index.js';
|
|
26
|
+
export { workerMCPTools, createWorkerToolHandler, workerRunTool, workerStatusTool, workerAlertsTool, workerHistoryTool, workerStatuslineTool, workerRunAllTool, workerStartTool, workerStopTool, type MCPToolDefinition, type MCPToolResult, } from './workers/mcp-tools.js';
|
|
27
|
+
export { onSessionStart, onSessionEnd, formatSessionStartOutput, generateShellHook, getGlobalManager, setGlobalManager, initializeGlobalManager, type SessionHookConfig, type SessionHookResult, } from './workers/session-hook.js';
|
|
28
|
+
export declare const VERSION = "3.0.0-alpha.1";
|
|
29
|
+
/**
|
|
30
|
+
* Initialize hooks system with default configuration
|
|
31
|
+
*/
|
|
32
|
+
export declare function initializeHooks(options?: {
|
|
33
|
+
enableDaemons?: boolean;
|
|
34
|
+
enableStatusline?: boolean;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
registry: import('./registry/index.js').HookRegistry;
|
|
37
|
+
executor: import('./executor/index.js').HookExecutor;
|
|
38
|
+
statusline: import('./statusline/index.js').StatuslineGenerator;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Quick hooks execution helper
|
|
42
|
+
*/
|
|
43
|
+
export declare function runHook(event: import('./types.js').HookEvent, context: Partial<import('./types.js').HookContext>): Promise<import('./types.js').HookExecutionResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Register a new hook with simplified API
|
|
46
|
+
*/
|
|
47
|
+
export declare function addHook(event: import('./types.js').HookEvent, handler: import('./types.js').HookHandler, options?: {
|
|
48
|
+
priority?: import('./types.js').HookPriority;
|
|
49
|
+
name?: string;
|
|
50
|
+
}): string;
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/hooks - V3 Hooks System
|
|
3
|
+
*
|
|
4
|
+
* Event-driven lifecycle hooks with ReasoningBank learning integration.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Hook registration and execution
|
|
8
|
+
* - Background daemons for metrics and learning
|
|
9
|
+
* - Statusline integration
|
|
10
|
+
* - MCP tool definitions
|
|
11
|
+
* - V2 compatibility layer
|
|
12
|
+
*
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
// Types
|
|
16
|
+
export * from './types.js';
|
|
17
|
+
// ReasoningBank - Vector-based pattern learning
|
|
18
|
+
export { ReasoningBank, reasoningBank, } from './reasoningbank/index.js';
|
|
19
|
+
// Guidance Provider - Claude-visible output generation
|
|
20
|
+
export { GuidanceProvider, guidanceProvider, } from './reasoningbank/guidance-provider.js';
|
|
21
|
+
// Registry
|
|
22
|
+
export { HookRegistry, defaultRegistry, registerHook, unregisterHook, } from './registry/index.js';
|
|
23
|
+
// Executor
|
|
24
|
+
export { HookExecutor, defaultExecutor, executeHooks, } from './executor/index.js';
|
|
25
|
+
// Daemons
|
|
26
|
+
export { DaemonManager, MetricsDaemon, SwarmMonitorDaemon, HooksLearningDaemon, defaultDaemonManager, } from './daemons/index.js';
|
|
27
|
+
// Statusline
|
|
28
|
+
export { StatuslineGenerator, createShellStatusline, parseStatuslineData, defaultStatuslineGenerator, } from './statusline/index.js';
|
|
29
|
+
// MCP Tools
|
|
30
|
+
export { hooksMCPTools, getHooksTool, preEditTool, postEditTool, routeTaskTool, metricsTool, preCommandTool, postCommandTool, daemonStatusTool, statuslineTool, } from './mcp/index.js';
|
|
31
|
+
// Official Claude Code Hooks Bridge
|
|
32
|
+
export { OfficialHooksBridge, V3_TO_OFFICIAL_HOOK_MAP, V3_TOOL_MATCHERS, processOfficialHookInput, outputOfficialHookResult, executeWithBridge, } from './bridge/official-hooks-bridge.js';
|
|
33
|
+
// Swarm Communication
|
|
34
|
+
export { SwarmCommunication, swarmComm, } from './swarm/index.js';
|
|
35
|
+
// Workers - Cross-platform background workers
|
|
36
|
+
export { WorkerManager, WorkerPriority, AlertSeverity, WORKER_CONFIGS, DEFAULT_THRESHOLDS, createWorkerManager, workerManager,
|
|
37
|
+
// Worker factories
|
|
38
|
+
createPerformanceWorker, createHealthWorker, createSwarmWorker, createGitWorker, createLearningWorker, createADRWorker, createDDDWorker, createSecurityWorker, createPatternsWorker, createCacheWorker, } from './workers/index.js';
|
|
39
|
+
// Workers - MCP Tools
|
|
40
|
+
export { workerMCPTools, createWorkerToolHandler, workerRunTool, workerStatusTool, workerAlertsTool, workerHistoryTool, workerStatuslineTool, workerRunAllTool, workerStartTool, workerStopTool, } from './workers/mcp-tools.js';
|
|
41
|
+
// Workers - Session Integration
|
|
42
|
+
export { onSessionStart, onSessionEnd, formatSessionStartOutput, generateShellHook, getGlobalManager, setGlobalManager, initializeGlobalManager, } from './workers/session-hook.js';
|
|
43
|
+
// Version
|
|
44
|
+
export const VERSION = '3.0.0-alpha.1';
|
|
45
|
+
/**
|
|
46
|
+
* Initialize hooks system with default configuration
|
|
47
|
+
*/
|
|
48
|
+
export async function initializeHooks(options) {
|
|
49
|
+
const { HookRegistry } = await import('./registry/index.js');
|
|
50
|
+
const { HookExecutor } = await import('./executor/index.js');
|
|
51
|
+
const { StatuslineGenerator } = await import('./statusline/index.js');
|
|
52
|
+
const { DaemonManager, MetricsDaemon, SwarmMonitorDaemon, HooksLearningDaemon } = await import('./daemons/index.js');
|
|
53
|
+
const registry = new HookRegistry();
|
|
54
|
+
const executor = new HookExecutor(registry);
|
|
55
|
+
const statusline = new StatuslineGenerator();
|
|
56
|
+
// Start daemons if enabled
|
|
57
|
+
if (options?.enableDaemons !== false) {
|
|
58
|
+
const daemonManager = new DaemonManager();
|
|
59
|
+
const metricsDaemon = new MetricsDaemon(daemonManager);
|
|
60
|
+
const swarmDaemon = new SwarmMonitorDaemon(daemonManager);
|
|
61
|
+
const learningDaemon = new HooksLearningDaemon(daemonManager);
|
|
62
|
+
await Promise.all([
|
|
63
|
+
metricsDaemon.start(),
|
|
64
|
+
swarmDaemon.start(),
|
|
65
|
+
learningDaemon.start(),
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
return { registry, executor, statusline };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Quick hooks execution helper
|
|
72
|
+
*/
|
|
73
|
+
export async function runHook(event, context) {
|
|
74
|
+
const { executeHooks } = await import('./executor/index.js');
|
|
75
|
+
return executeHooks(event, context);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Register a new hook with simplified API
|
|
79
|
+
*/
|
|
80
|
+
export function addHook(event, handler, options) {
|
|
81
|
+
const { registerHook: register } = require('./registry/index.js');
|
|
82
|
+
const { HookPriority } = require('./types.js');
|
|
83
|
+
return register(event, handler, options?.priority ?? HookPriority.Normal, { name: options?.name });
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 LLM Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Exports LLM-specific hooks for request caching,
|
|
5
|
+
* optimization, cost tracking, and pattern learning.
|
|
6
|
+
*
|
|
7
|
+
* @module @claude-flow/hooks/llm
|
|
8
|
+
*/
|
|
9
|
+
export * from './llm-hooks.js';
|
|
10
|
+
export { llmHooks as default } from './llm-hooks.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 LLM Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Exports LLM-specific hooks for request caching,
|
|
5
|
+
* optimization, cost tracking, and pattern learning.
|
|
6
|
+
*
|
|
7
|
+
* @module @claude-flow/hooks/llm
|
|
8
|
+
*/
|
|
9
|
+
export * from './llm-hooks.js';
|
|
10
|
+
export { llmHooks as default } from './llm-hooks.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 LLM Hooks System
|
|
3
|
+
*
|
|
4
|
+
* Provides pre/post operation hooks for all LLM calls with:
|
|
5
|
+
* - Request caching with memory persistence
|
|
6
|
+
* - Provider-specific optimizations
|
|
7
|
+
* - Cost tracking and optimization
|
|
8
|
+
* - Performance metrics
|
|
9
|
+
* - Pattern learning
|
|
10
|
+
*
|
|
11
|
+
* @module @claude-flow/hooks/llm/llm-hooks
|
|
12
|
+
*/
|
|
13
|
+
export interface LLMHookContext {
|
|
14
|
+
correlationId: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
agentId?: string;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface LLMHookPayload {
|
|
21
|
+
provider: string;
|
|
22
|
+
model: string;
|
|
23
|
+
operation: 'complete' | 'stream' | 'embed';
|
|
24
|
+
request: LLMRequestPayload;
|
|
25
|
+
response?: LLMResponsePayload;
|
|
26
|
+
metrics?: LLMMetrics;
|
|
27
|
+
}
|
|
28
|
+
export interface LLMRequestPayload {
|
|
29
|
+
messages: Array<{
|
|
30
|
+
role: string;
|
|
31
|
+
content: string;
|
|
32
|
+
}>;
|
|
33
|
+
temperature?: number;
|
|
34
|
+
maxTokens?: number;
|
|
35
|
+
[key: string]: unknown;
|
|
36
|
+
}
|
|
37
|
+
export interface LLMResponsePayload {
|
|
38
|
+
content: string;
|
|
39
|
+
usage?: {
|
|
40
|
+
promptTokens: number;
|
|
41
|
+
completionTokens: number;
|
|
42
|
+
totalTokens: number;
|
|
43
|
+
};
|
|
44
|
+
cost?: {
|
|
45
|
+
promptCost: number;
|
|
46
|
+
completionCost: number;
|
|
47
|
+
totalCost: number;
|
|
48
|
+
};
|
|
49
|
+
latency?: number;
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
}
|
|
52
|
+
export interface LLMMetrics {
|
|
53
|
+
requestStart: number;
|
|
54
|
+
responseEnd?: number;
|
|
55
|
+
latency?: number;
|
|
56
|
+
cacheHit?: boolean;
|
|
57
|
+
tokenEstimate?: number;
|
|
58
|
+
costEstimate?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface LLMHookResult {
|
|
61
|
+
continue: boolean;
|
|
62
|
+
modified: boolean;
|
|
63
|
+
payload?: LLMHookPayload;
|
|
64
|
+
sideEffects?: LLMSideEffect[];
|
|
65
|
+
cachedResponse?: LLMResponsePayload;
|
|
66
|
+
}
|
|
67
|
+
export interface LLMSideEffect {
|
|
68
|
+
type: 'memory' | 'metric' | 'log' | 'pattern';
|
|
69
|
+
action: string;
|
|
70
|
+
data: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
export declare function preLLMCallHook(payload: LLMHookPayload, context: LLMHookContext): Promise<LLMHookResult>;
|
|
73
|
+
export declare function postLLMCallHook(payload: LLMHookPayload, context: LLMHookContext): Promise<LLMHookResult>;
|
|
74
|
+
export declare function errorLLMCallHook(payload: LLMHookPayload, error: Error, context: LLMHookContext): Promise<LLMHookResult>;
|
|
75
|
+
export declare function clearLLMCache(): void;
|
|
76
|
+
export declare function getLLMCacheStats(): {
|
|
77
|
+
size: number;
|
|
78
|
+
totalHits: number;
|
|
79
|
+
entries: Array<{
|
|
80
|
+
key: string;
|
|
81
|
+
hits: number;
|
|
82
|
+
age: number;
|
|
83
|
+
}>;
|
|
84
|
+
};
|
|
85
|
+
export declare const llmHooks: {
|
|
86
|
+
preLLMCall: typeof preLLMCallHook;
|
|
87
|
+
postLLMCall: typeof postLLMCallHook;
|
|
88
|
+
errorLLMCall: typeof errorLLMCallHook;
|
|
89
|
+
clearCache: typeof clearLLMCache;
|
|
90
|
+
getCacheStats: typeof getLLMCacheStats;
|
|
91
|
+
};
|
|
92
|
+
export default llmHooks;
|
|
93
|
+
//# sourceMappingURL=llm-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-hooks.d.ts","sourceRoot":"","sources":["../../src/llm/llm-hooks.ts"],"names":[],"mappings":"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"}
|