@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,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"}
@@ -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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"}