claude-flow 2.0.0-alpha.65 → 2.0.0-alpha.67
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/.claude/cache/agent-pool.json +33 -0
- package/.claude/cache/memory-optimization.json +19 -0
- package/.claude/cache/neural-optimization.json +25 -0
- package/.claude/cache/optimized-hooks.json +19 -0
- package/.claude/cache/parallel-processing.json +26 -0
- package/.claude/optimized-settings.json +270 -0
- package/.claude/settings-enhanced.json +278 -0
- package/.claude/settings.json +105 -8
- package/CHANGELOG.md +40 -0
- package/bin/claude-flow +1 -1
- package/dist/cli/simple-commands/hive-mind.js +1 -1
- package/dist/cli/simple-commands/hive-mind.js.map +1 -1
- package/dist/cli/simple-commands/hooks.js +6 -4
- package/dist/cli/simple-commands/hooks.js.map +1 -1
- package/dist/providers/anthropic-provider.d.ts +27 -0
- package/dist/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/providers/anthropic-provider.js +247 -0
- package/dist/providers/anthropic-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts +134 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +407 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +28 -0
- package/dist/providers/cohere-provider.d.ts.map +1 -0
- package/dist/providers/cohere-provider.js +407 -0
- package/dist/providers/cohere-provider.js.map +1 -0
- package/dist/providers/google-provider.d.ts +23 -0
- package/dist/providers/google-provider.d.ts.map +1 -0
- package/dist/providers/google-provider.js +362 -0
- package/dist/providers/google-provider.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +18 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +23 -0
- package/dist/providers/ollama-provider.d.ts.map +1 -0
- package/dist/providers/ollama-provider.js +374 -0
- package/dist/providers/ollama-provider.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +23 -0
- package/dist/providers/openai-provider.d.ts.map +1 -0
- package/dist/providers/openai-provider.js +349 -0
- package/dist/providers/openai-provider.js.map +1 -0
- package/dist/providers/provider-manager.d.ts +139 -0
- package/dist/providers/provider-manager.d.ts.map +1 -0
- package/dist/providers/provider-manager.js +513 -0
- package/dist/providers/provider-manager.js.map +1 -0
- package/dist/providers/types.d.ts +356 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +61 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/utils.d.ts +37 -0
- package/dist/providers/utils.d.ts.map +1 -0
- package/dist/providers/utils.js +322 -0
- package/dist/providers/utils.js.map +1 -0
- package/dist/services/agentic-flow-hooks/hook-manager.d.ts +70 -0
- package/dist/services/agentic-flow-hooks/hook-manager.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/hook-manager.js +512 -0
- package/dist/services/agentic-flow-hooks/hook-manager.js.map +1 -0
- package/dist/services/agentic-flow-hooks/index.d.ts +36 -0
- package/dist/services/agentic-flow-hooks/index.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/index.js +325 -0
- package/dist/services/agentic-flow-hooks/index.js.map +1 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.d.ts +33 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.js +415 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.d.ts +45 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.js +532 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.d.ts +39 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.js +561 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.d.ts +33 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.js +621 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/types.d.ts +379 -0
- package/dist/services/agentic-flow-hooks/types.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/types.js +8 -0
- package/dist/services/agentic-flow-hooks/types.js.map +1 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts +39 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.js +742 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.js.map +1 -0
- package/package.json +2 -2
- package/scripts/install-arm64.js +78 -0
- package/scripts/optimize-performance.js +400 -0
- package/scripts/performance-monitor.js +263 -0
- package/src/cli/help-text.js +1 -1
- package/src/cli/simple-cli.js +1 -1
- package/src/cli/simple-commands/hive-mind.js +1 -1
- package/src/cli/simple-commands/hooks.js +8 -6
- package/src/providers/anthropic-provider.ts +282 -0
- package/src/providers/base-provider.ts +560 -0
- package/src/providers/cohere-provider.ts +521 -0
- package/src/providers/google-provider.ts +477 -0
- package/src/providers/index.ts +21 -0
- package/src/providers/ollama-provider.ts +489 -0
- package/src/providers/openai-provider.ts +476 -0
- package/src/providers/provider-manager.ts +654 -0
- package/src/providers/types.ts +531 -0
- package/src/providers/utils.ts +376 -0
- package/src/services/agentic-flow-hooks/hook-manager.ts +701 -0
- package/src/services/agentic-flow-hooks/index.ts +386 -0
- package/src/services/agentic-flow-hooks/llm-hooks.ts +557 -0
- package/src/services/agentic-flow-hooks/memory-hooks.ts +710 -0
- package/src/services/agentic-flow-hooks/neural-hooks.ts +758 -0
- package/src/services/agentic-flow-hooks/performance-hooks.ts +827 -0
- package/src/services/agentic-flow-hooks/types.ts +503 -0
- package/src/services/agentic-flow-hooks/workflow-hooks.ts +1026 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Flow Hook Manager
|
|
3
|
+
*
|
|
4
|
+
* Central manager for all agentic-flow hooks, providing registration,
|
|
5
|
+
* execution, and lifecycle management.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
import { Logger } from '../../core/logger.js';
|
|
9
|
+
const logger = new Logger({
|
|
10
|
+
level: 'info',
|
|
11
|
+
format: 'text',
|
|
12
|
+
destination: 'console'
|
|
13
|
+
}, { prefix: 'AgenticHookManager' });
|
|
14
|
+
export class AgenticHookManager extends EventEmitter {
|
|
15
|
+
hooks = new Map();
|
|
16
|
+
pipelines = new Map();
|
|
17
|
+
metrics = new Map();
|
|
18
|
+
activeExecutions = new Set();
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
this.initializeMetrics();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Register a new hook
|
|
25
|
+
*/
|
|
26
|
+
register(registration) {
|
|
27
|
+
const { type, id } = registration;
|
|
28
|
+
// Validate registration
|
|
29
|
+
this.validateRegistration(registration);
|
|
30
|
+
// Get or create hook list for type
|
|
31
|
+
if (!this.hooks.has(type)) {
|
|
32
|
+
this.hooks.set(type, []);
|
|
33
|
+
}
|
|
34
|
+
const hookList = this.hooks.get(type);
|
|
35
|
+
// Check for duplicate ID
|
|
36
|
+
if (hookList.some(h => h.id === id)) {
|
|
37
|
+
throw new Error(`Hook with ID '${id}' already registered for type '${type}'`);
|
|
38
|
+
}
|
|
39
|
+
// Insert hook sorted by priority (higher priority first)
|
|
40
|
+
const insertIndex = hookList.findIndex(h => h.priority < registration.priority);
|
|
41
|
+
if (insertIndex === -1) {
|
|
42
|
+
hookList.push(registration);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
hookList.splice(insertIndex, 0, registration);
|
|
46
|
+
}
|
|
47
|
+
logger.info(`Registered hook '${id}' for type '${type}' with priority ${registration.priority}`);
|
|
48
|
+
this.emit('hook:registered', { type, registration });
|
|
49
|
+
// Update metrics
|
|
50
|
+
this.updateMetric('hooks.registered', 1);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Unregister a hook
|
|
54
|
+
*/
|
|
55
|
+
unregister(id) {
|
|
56
|
+
let found = false;
|
|
57
|
+
for (const [type, hookList] of this.hooks.entries()) {
|
|
58
|
+
const index = hookList.findIndex(h => h.id === id);
|
|
59
|
+
if (index !== -1) {
|
|
60
|
+
hookList.splice(index, 1);
|
|
61
|
+
found = true;
|
|
62
|
+
logger.info(`Unregistered hook '${id}' from type '${type}'`);
|
|
63
|
+
this.emit('hook:unregistered', { type, id });
|
|
64
|
+
// Clean up empty lists
|
|
65
|
+
if (hookList.length === 0) {
|
|
66
|
+
this.hooks.delete(type);
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!found) {
|
|
72
|
+
throw new Error(`Hook with ID '${id}' not found`);
|
|
73
|
+
}
|
|
74
|
+
this.updateMetric('hooks.unregistered', 1);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get hooks by type with optional filtering
|
|
78
|
+
*/
|
|
79
|
+
getHooks(type, filter) {
|
|
80
|
+
const hookList = this.hooks.get(type) || [];
|
|
81
|
+
if (!filter) {
|
|
82
|
+
return [...hookList];
|
|
83
|
+
}
|
|
84
|
+
return hookList.filter(hook => this.matchesFilter(hook, filter));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Execute hooks for a given type
|
|
88
|
+
*/
|
|
89
|
+
async executeHooks(type, payload, context) {
|
|
90
|
+
const executionId = this.generateExecutionId();
|
|
91
|
+
this.activeExecutions.add(executionId);
|
|
92
|
+
const startTime = Date.now();
|
|
93
|
+
const results = [];
|
|
94
|
+
try {
|
|
95
|
+
// Get applicable hooks
|
|
96
|
+
const hooks = this.getHooks(type, this.createFilterFromPayload(payload));
|
|
97
|
+
logger.debug(`Executing ${hooks.length} hooks for type '${type}'`);
|
|
98
|
+
this.emit('hooks:executing', { type, count: hooks.length, executionId });
|
|
99
|
+
// Execute hooks in order
|
|
100
|
+
let modifiedPayload = payload;
|
|
101
|
+
for (const hook of hooks) {
|
|
102
|
+
try {
|
|
103
|
+
const result = await this.executeHook(hook, modifiedPayload, context);
|
|
104
|
+
results.push(result);
|
|
105
|
+
// Handle side effects
|
|
106
|
+
if (result.sideEffects) {
|
|
107
|
+
await this.processSideEffects(result.sideEffects, context);
|
|
108
|
+
}
|
|
109
|
+
// Update payload if modified
|
|
110
|
+
if (result.modified && result.payload) {
|
|
111
|
+
modifiedPayload = result.payload;
|
|
112
|
+
}
|
|
113
|
+
// Check if we should continue
|
|
114
|
+
if (!result.continue) {
|
|
115
|
+
logger.debug(`Hook '${hook.id}' halted execution chain`);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
await this.handleHookError(hook, error, context);
|
|
121
|
+
// Determine if we should continue after error
|
|
122
|
+
if (hook.options?.errorHandler) {
|
|
123
|
+
hook.options.errorHandler(error);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
throw error; // Re-throw if no error handler
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Update metrics
|
|
131
|
+
const duration = Date.now() - startTime;
|
|
132
|
+
this.updateMetric('hooks.executions', 1);
|
|
133
|
+
this.updateMetric('hooks.totalDuration', duration);
|
|
134
|
+
this.updateMetric(`hooks.${type}.executions`, 1);
|
|
135
|
+
this.updateMetric(`hooks.${type}.duration`, duration);
|
|
136
|
+
this.emit('hooks:executed', {
|
|
137
|
+
type,
|
|
138
|
+
results,
|
|
139
|
+
duration,
|
|
140
|
+
executionId
|
|
141
|
+
});
|
|
142
|
+
return results;
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
this.activeExecutions.delete(executionId);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Create a new hook pipeline
|
|
150
|
+
*/
|
|
151
|
+
createPipeline(config) {
|
|
152
|
+
const pipeline = {
|
|
153
|
+
id: config.id || this.generatePipelineId(),
|
|
154
|
+
name: config.name || 'Unnamed Pipeline',
|
|
155
|
+
stages: config.stages || [],
|
|
156
|
+
errorStrategy: config.errorStrategy || 'fail-fast',
|
|
157
|
+
metrics: {
|
|
158
|
+
executions: 0,
|
|
159
|
+
avgDuration: 0,
|
|
160
|
+
errorRate: 0,
|
|
161
|
+
throughput: 0,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
this.pipelines.set(pipeline.id, pipeline);
|
|
165
|
+
logger.info(`Created pipeline '${pipeline.name}' with ID '${pipeline.id}'`);
|
|
166
|
+
return pipeline;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Execute a pipeline
|
|
170
|
+
*/
|
|
171
|
+
async executePipeline(pipelineId, initialPayload, context) {
|
|
172
|
+
const pipeline = this.pipelines.get(pipelineId);
|
|
173
|
+
if (!pipeline) {
|
|
174
|
+
throw new Error(`Pipeline '${pipelineId}' not found`);
|
|
175
|
+
}
|
|
176
|
+
const startTime = Date.now();
|
|
177
|
+
const results = [];
|
|
178
|
+
let currentPayload = initialPayload;
|
|
179
|
+
try {
|
|
180
|
+
for (const stage of pipeline.stages) {
|
|
181
|
+
// Check stage condition
|
|
182
|
+
if (stage.condition && !stage.condition(context)) {
|
|
183
|
+
logger.debug(`Skipping stage '${stage.name}' due to condition`);
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
// Execute stage hooks
|
|
187
|
+
const stageResults = await this.executeStage(stage, currentPayload, context);
|
|
188
|
+
// Apply stage transform if provided
|
|
189
|
+
if (stage.transform) {
|
|
190
|
+
for (let i = 0; i < stageResults.length; i++) {
|
|
191
|
+
stageResults[i] = stage.transform(stageResults[i]);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
results.push(...stageResults);
|
|
195
|
+
// Update payload for next stage
|
|
196
|
+
const lastModified = stageResults
|
|
197
|
+
.reverse()
|
|
198
|
+
.find(r => r.modified && r.payload);
|
|
199
|
+
if (lastModified) {
|
|
200
|
+
currentPayload = lastModified.payload;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Update pipeline metrics
|
|
204
|
+
this.updatePipelineMetrics(pipeline, Date.now() - startTime, false);
|
|
205
|
+
return results;
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
// Update error metrics
|
|
209
|
+
this.updatePipelineMetrics(pipeline, Date.now() - startTime, true);
|
|
210
|
+
// Handle error based on strategy
|
|
211
|
+
if (pipeline.errorStrategy === 'rollback') {
|
|
212
|
+
await this.rollbackPipeline(pipeline, results, context);
|
|
213
|
+
}
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get current metrics
|
|
219
|
+
*/
|
|
220
|
+
getMetrics() {
|
|
221
|
+
const metrics = {};
|
|
222
|
+
for (const [key, value] of this.metrics.entries()) {
|
|
223
|
+
metrics[key] = value;
|
|
224
|
+
}
|
|
225
|
+
// Add computed metrics
|
|
226
|
+
metrics['hooks.count'] = this.getTotalHookCount();
|
|
227
|
+
metrics['hooks.types'] = Array.from(this.hooks.keys());
|
|
228
|
+
metrics['pipelines.count'] = this.pipelines.size;
|
|
229
|
+
metrics['executions.active'] = this.activeExecutions.size;
|
|
230
|
+
return metrics;
|
|
231
|
+
}
|
|
232
|
+
// ===== Private Methods =====
|
|
233
|
+
validateRegistration(registration) {
|
|
234
|
+
if (!registration.id) {
|
|
235
|
+
throw new Error('Hook registration must have an ID');
|
|
236
|
+
}
|
|
237
|
+
if (!registration.type) {
|
|
238
|
+
throw new Error('Hook registration must have a type');
|
|
239
|
+
}
|
|
240
|
+
if (typeof registration.handler !== 'function') {
|
|
241
|
+
throw new Error('Hook registration must have a handler function');
|
|
242
|
+
}
|
|
243
|
+
if (registration.priority < 0) {
|
|
244
|
+
throw new Error('Hook priority must be non-negative');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
matchesFilter(hook, filter) {
|
|
248
|
+
if (!hook.filter) {
|
|
249
|
+
return true; // No filter means hook applies to all
|
|
250
|
+
}
|
|
251
|
+
// Check providers
|
|
252
|
+
if (filter.providers && hook.filter.providers) {
|
|
253
|
+
const hasProvider = filter.providers.some(p => hook.filter.providers.includes(p));
|
|
254
|
+
if (!hasProvider)
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
// Check models
|
|
258
|
+
if (filter.models && hook.filter.models) {
|
|
259
|
+
const hasModel = filter.models.some(m => hook.filter.models.includes(m));
|
|
260
|
+
if (!hasModel)
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
// Check patterns
|
|
264
|
+
if (filter.patterns && hook.filter.patterns) {
|
|
265
|
+
// Complex pattern matching logic here
|
|
266
|
+
// For now, simplified version
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
// Check conditions
|
|
270
|
+
if (filter.conditions && hook.filter.conditions) {
|
|
271
|
+
// Evaluate conditions
|
|
272
|
+
// Simplified for now
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
createFilterFromPayload(payload) {
|
|
278
|
+
const filter = {};
|
|
279
|
+
// Extract filter criteria from payload
|
|
280
|
+
if ('provider' in payload) {
|
|
281
|
+
filter.providers = [payload.provider];
|
|
282
|
+
}
|
|
283
|
+
if ('model' in payload) {
|
|
284
|
+
filter.models = [payload.model];
|
|
285
|
+
}
|
|
286
|
+
if ('operation' in payload) {
|
|
287
|
+
filter.operations = [payload.operation];
|
|
288
|
+
}
|
|
289
|
+
if ('namespace' in payload) {
|
|
290
|
+
filter.namespaces = [payload.namespace];
|
|
291
|
+
}
|
|
292
|
+
return Object.keys(filter).length > 0 ? filter : undefined;
|
|
293
|
+
}
|
|
294
|
+
async executeHook(hook, payload, context) {
|
|
295
|
+
const startTime = Date.now();
|
|
296
|
+
try {
|
|
297
|
+
// Check cache if enabled
|
|
298
|
+
if (hook.options?.cache?.enabled) {
|
|
299
|
+
const cacheKey = hook.options.cache.key(payload);
|
|
300
|
+
const cached = this.getCachedResult(hook.id, cacheKey);
|
|
301
|
+
if (cached) {
|
|
302
|
+
this.updateMetric('hooks.cacheHits', 1);
|
|
303
|
+
return cached;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
// Execute with timeout if specified
|
|
307
|
+
let resultPromise = hook.handler(payload, context);
|
|
308
|
+
if (hook.options?.timeout) {
|
|
309
|
+
resultPromise = this.withTimeout(resultPromise, hook.options.timeout, `Hook '${hook.id}' timed out`);
|
|
310
|
+
}
|
|
311
|
+
const result = await resultPromise;
|
|
312
|
+
// Cache result if enabled
|
|
313
|
+
if (hook.options?.cache?.enabled && result) {
|
|
314
|
+
const cacheKey = hook.options.cache.key(payload);
|
|
315
|
+
this.cacheResult(hook.id, cacheKey, result, hook.options.cache.ttl);
|
|
316
|
+
}
|
|
317
|
+
// Update hook-specific metrics
|
|
318
|
+
const duration = Date.now() - startTime;
|
|
319
|
+
this.updateMetric(`hooks.${hook.id}.executions`, 1);
|
|
320
|
+
this.updateMetric(`hooks.${hook.id}.duration`, duration);
|
|
321
|
+
return result;
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
// Handle retries if configured
|
|
325
|
+
if (hook.options?.retries && hook.options.retries > 0) {
|
|
326
|
+
logger.warn(`Hook '${hook.id}' failed, retrying...`);
|
|
327
|
+
return this.retryHook(hook, payload, context, hook.options.retries);
|
|
328
|
+
}
|
|
329
|
+
// Use fallback if provided
|
|
330
|
+
if (hook.options?.fallback) {
|
|
331
|
+
logger.warn(`Hook '${hook.id}' failed, using fallback`);
|
|
332
|
+
return hook.options.fallback(payload, context);
|
|
333
|
+
}
|
|
334
|
+
throw error;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
async retryHook(hook, payload, context, retriesLeft) {
|
|
338
|
+
for (let i = 0; i < retriesLeft; i++) {
|
|
339
|
+
try {
|
|
340
|
+
await this.delay(Math.pow(2, i) * 1000); // Exponential backoff
|
|
341
|
+
return await hook.handler(payload, context);
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
if (i === retriesLeft - 1) {
|
|
345
|
+
throw error; // Last retry failed
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// Should not reach here
|
|
350
|
+
throw new Error('Retry logic error');
|
|
351
|
+
}
|
|
352
|
+
async processSideEffects(sideEffects, context) {
|
|
353
|
+
for (const effect of sideEffects) {
|
|
354
|
+
try {
|
|
355
|
+
await this.processSideEffect(effect, context);
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
logger.error(`Failed to process side effect: ${effect.type}`, error);
|
|
359
|
+
// Continue processing other side effects
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
async processSideEffect(effect, context) {
|
|
364
|
+
switch (effect.type) {
|
|
365
|
+
case 'memory':
|
|
366
|
+
await this.processMemorySideEffect(effect, context);
|
|
367
|
+
break;
|
|
368
|
+
case 'neural':
|
|
369
|
+
await this.processNeuralSideEffect(effect, context);
|
|
370
|
+
break;
|
|
371
|
+
case 'metric':
|
|
372
|
+
this.processMetricSideEffect(effect);
|
|
373
|
+
break;
|
|
374
|
+
case 'notification':
|
|
375
|
+
this.processNotificationSideEffect(effect);
|
|
376
|
+
break;
|
|
377
|
+
case 'log':
|
|
378
|
+
this.processLogSideEffect(effect);
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
async processMemorySideEffect(effect, context) {
|
|
383
|
+
// Implement memory side effect processing
|
|
384
|
+
// This would integrate with the memory service
|
|
385
|
+
logger.debug(`Processing memory side effect: ${effect.action}`, effect.data);
|
|
386
|
+
}
|
|
387
|
+
async processNeuralSideEffect(effect, context) {
|
|
388
|
+
// Implement neural side effect processing
|
|
389
|
+
// This would integrate with the neural service
|
|
390
|
+
logger.debug(`Processing neural side effect: ${effect.action}`, effect.data);
|
|
391
|
+
}
|
|
392
|
+
processMetricSideEffect(effect) {
|
|
393
|
+
if (effect.action === 'update') {
|
|
394
|
+
this.updateMetric(effect.data.name, effect.data.value);
|
|
395
|
+
}
|
|
396
|
+
else if (effect.action === 'increment') {
|
|
397
|
+
this.updateMetric(effect.data.name, 1);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
processNotificationSideEffect(effect) {
|
|
401
|
+
this.emit('notification', effect.data);
|
|
402
|
+
}
|
|
403
|
+
processLogSideEffect(effect) {
|
|
404
|
+
const { level = 'info', message, data } = effect.data;
|
|
405
|
+
logger[level](message, data);
|
|
406
|
+
}
|
|
407
|
+
async handleHookError(hook, error, context) {
|
|
408
|
+
logger.error(`Hook '${hook.id}' error:`, error);
|
|
409
|
+
this.updateMetric('hooks.errors', 1);
|
|
410
|
+
this.updateMetric(`hooks.${hook.id}.errors`, 1);
|
|
411
|
+
this.emit('hook:error', {
|
|
412
|
+
hookId: hook.id,
|
|
413
|
+
type: hook.type,
|
|
414
|
+
error,
|
|
415
|
+
context,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
async executeStage(stage, payload, context) {
|
|
419
|
+
if (stage.parallel) {
|
|
420
|
+
// Execute hooks in parallel
|
|
421
|
+
const promises = stage.hooks.map(hook => this.executeHook(hook, payload, context));
|
|
422
|
+
return Promise.all(promises);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
// Execute hooks sequentially
|
|
426
|
+
const results = [];
|
|
427
|
+
let currentPayload = payload;
|
|
428
|
+
for (const hook of stage.hooks) {
|
|
429
|
+
const result = await this.executeHook(hook, currentPayload, context);
|
|
430
|
+
results.push(result);
|
|
431
|
+
if (result.modified && result.payload) {
|
|
432
|
+
currentPayload = result.payload;
|
|
433
|
+
}
|
|
434
|
+
if (!result.continue) {
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return results;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
updatePipelineMetrics(pipeline, duration, hasError) {
|
|
442
|
+
const metrics = pipeline.metrics;
|
|
443
|
+
metrics.executions++;
|
|
444
|
+
metrics.avgDuration =
|
|
445
|
+
(metrics.avgDuration * (metrics.executions - 1) + duration) /
|
|
446
|
+
metrics.executions;
|
|
447
|
+
if (hasError) {
|
|
448
|
+
metrics.errorRate =
|
|
449
|
+
(metrics.errorRate * (metrics.executions - 1) + 1) /
|
|
450
|
+
metrics.executions;
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
metrics.errorRate =
|
|
454
|
+
(metrics.errorRate * (metrics.executions - 1)) /
|
|
455
|
+
metrics.executions;
|
|
456
|
+
}
|
|
457
|
+
// Calculate throughput (executions per minute)
|
|
458
|
+
const timeWindow = 60000; // 1 minute
|
|
459
|
+
metrics.throughput = (metrics.executions / duration) * timeWindow;
|
|
460
|
+
}
|
|
461
|
+
async rollbackPipeline(pipeline, results, context) {
|
|
462
|
+
logger.warn(`Rolling back pipeline '${pipeline.name}'`);
|
|
463
|
+
// Implement rollback logic based on side effects in results
|
|
464
|
+
// This is a placeholder for actual rollback implementation
|
|
465
|
+
}
|
|
466
|
+
getTotalHookCount() {
|
|
467
|
+
let count = 0;
|
|
468
|
+
for (const hookList of this.hooks.values()) {
|
|
469
|
+
count += hookList.length;
|
|
470
|
+
}
|
|
471
|
+
return count;
|
|
472
|
+
}
|
|
473
|
+
initializeMetrics() {
|
|
474
|
+
this.metrics.set('hooks.registered', 0);
|
|
475
|
+
this.metrics.set('hooks.unregistered', 0);
|
|
476
|
+
this.metrics.set('hooks.executions', 0);
|
|
477
|
+
this.metrics.set('hooks.errors', 0);
|
|
478
|
+
this.metrics.set('hooks.cacheHits', 0);
|
|
479
|
+
this.metrics.set('hooks.totalDuration', 0);
|
|
480
|
+
}
|
|
481
|
+
updateMetric(key, value) {
|
|
482
|
+
const current = this.metrics.get(key) || 0;
|
|
483
|
+
this.metrics.set(key, current + value);
|
|
484
|
+
}
|
|
485
|
+
generateExecutionId() {
|
|
486
|
+
return `exec_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
487
|
+
}
|
|
488
|
+
generatePipelineId() {
|
|
489
|
+
return `pipe_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
490
|
+
}
|
|
491
|
+
getCachedResult(hookId, cacheKey) {
|
|
492
|
+
// Implement cache retrieval
|
|
493
|
+
// This is a placeholder
|
|
494
|
+
return null;
|
|
495
|
+
}
|
|
496
|
+
cacheResult(hookId, cacheKey, result, ttl) {
|
|
497
|
+
// Implement cache storage
|
|
498
|
+
// This is a placeholder
|
|
499
|
+
}
|
|
500
|
+
async withTimeout(promise, timeout, message) {
|
|
501
|
+
return Promise.race([
|
|
502
|
+
promise,
|
|
503
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(message)), timeout)),
|
|
504
|
+
]);
|
|
505
|
+
}
|
|
506
|
+
delay(ms) {
|
|
507
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
// Export singleton instance
|
|
511
|
+
export const agenticHookManager = new AgenticHookManager();
|
|
512
|
+
//# sourceMappingURL=hook-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-manager.js","sourceRoot":"","sources":["../../../src/services/agentic-flow-hooks/hook-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Flow Hook System
|
|
3
|
+
*
|
|
4
|
+
* Main entry point for the hook system integration with agentic-flow.
|
|
5
|
+
* Provides initialization, registration, and management of all hook types.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export { agenticHookManager } from './hook-manager.js';
|
|
9
|
+
export * from './llm-hooks.js';
|
|
10
|
+
export * from './memory-hooks.js';
|
|
11
|
+
export * from './neural-hooks.js';
|
|
12
|
+
export * from './performance-hooks.js';
|
|
13
|
+
export * from './workflow-hooks.js';
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the agentic-flow hook system
|
|
16
|
+
*/
|
|
17
|
+
export declare function initializeAgenticFlowHooks(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Shutdown the hook system gracefully
|
|
20
|
+
*/
|
|
21
|
+
export declare function shutdownAgenticFlowHooks(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get hook system status
|
|
24
|
+
*/
|
|
25
|
+
export declare function getHookSystemStatus(): {
|
|
26
|
+
initialized: boolean;
|
|
27
|
+
metrics: Record<string, any>;
|
|
28
|
+
pipelines: string[];
|
|
29
|
+
activeExecutions: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Create a context builder for hook execution
|
|
33
|
+
*/
|
|
34
|
+
export declare function createHookContext(): HookContextBuilder;
|
|
35
|
+
import type { HookContextBuilder } from './types.js';
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/agentic-flow-hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAQpC;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BhE;AAwGD;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAaA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,CA0JtD;AAGD,OAAO,KAAK,EAEV,kBAAkB,EAInB,MAAM,YAAY,CAAC"}
|