85 lines
4.2 KiB
JavaScript
85 lines
4.2 KiB
JavaScript
/**
|
|
* @claude-flow/hooks - V3 Hooks System
|
|
*
|
|
* Event-driven lifecycle hooks with ReasoningBank learning integration.
|
|
*
|
|
* Features:
|
|
* - Hook registration and execution
|
|
* - Background daemons for metrics and learning
|
|
* - Statusline integration
|
|
* - MCP tool definitions
|
|
* - V2 compatibility layer
|
|
*
|
|
* @packageDocumentation
|
|
*/
|
|
// Types
|
|
export * from './types.js';
|
|
// ReasoningBank - Vector-based pattern learning
|
|
export { ReasoningBank, reasoningBank, } from './reasoningbank/index.js';
|
|
// Guidance Provider - Claude-visible output generation
|
|
export { GuidanceProvider, guidanceProvider, } from './reasoningbank/guidance-provider.js';
|
|
// Registry
|
|
export { HookRegistry, defaultRegistry, registerHook, unregisterHook, } from './registry/index.js';
|
|
// Executor
|
|
export { HookExecutor, defaultExecutor, executeHooks, } from './executor/index.js';
|
|
// Daemons
|
|
export { DaemonManager, MetricsDaemon, SwarmMonitorDaemon, HooksLearningDaemon, defaultDaemonManager, } from './daemons/index.js';
|
|
// Statusline
|
|
export { StatuslineGenerator, createShellStatusline, parseStatuslineData, defaultStatuslineGenerator, } from './statusline/index.js';
|
|
// MCP Tools
|
|
export { hooksMCPTools, getHooksTool, preEditTool, postEditTool, routeTaskTool, metricsTool, preCommandTool, postCommandTool, daemonStatusTool, statuslineTool, } from './mcp/index.js';
|
|
// Official Claude Code Hooks Bridge
|
|
export { OfficialHooksBridge, V3_TO_OFFICIAL_HOOK_MAP, V3_TOOL_MATCHERS, processOfficialHookInput, outputOfficialHookResult, executeWithBridge, } from './bridge/official-hooks-bridge.js';
|
|
// Swarm Communication
|
|
export { SwarmCommunication, swarmComm, } from './swarm/index.js';
|
|
// Workers - Cross-platform background workers
|
|
export { WorkerManager, WorkerPriority, AlertSeverity, WORKER_CONFIGS, DEFAULT_THRESHOLDS, createWorkerManager, workerManager,
|
|
// Worker factories
|
|
createPerformanceWorker, createHealthWorker, createSwarmWorker, createGitWorker, createLearningWorker, createADRWorker, createDDDWorker, createSecurityWorker, createPatternsWorker, createCacheWorker, } from './workers/index.js';
|
|
// Workers - MCP Tools
|
|
export { workerMCPTools, createWorkerToolHandler, workerRunTool, workerStatusTool, workerAlertsTool, workerHistoryTool, workerStatuslineTool, workerRunAllTool, workerStartTool, workerStopTool, } from './workers/mcp-tools.js';
|
|
// Workers - Session Integration
|
|
export { onSessionStart, onSessionEnd, formatSessionStartOutput, generateShellHook, getGlobalManager, setGlobalManager, initializeGlobalManager, } from './workers/session-hook.js';
|
|
// Version
|
|
export const VERSION = '3.0.0-alpha.1';
|
|
/**
|
|
* Initialize hooks system with default configuration
|
|
*/
|
|
export async function initializeHooks(options) {
|
|
const { HookRegistry } = await import('./registry/index.js');
|
|
const { HookExecutor } = await import('./executor/index.js');
|
|
const { StatuslineGenerator } = await import('./statusline/index.js');
|
|
const { DaemonManager, MetricsDaemon, SwarmMonitorDaemon, HooksLearningDaemon } = await import('./daemons/index.js');
|
|
const registry = new HookRegistry();
|
|
const executor = new HookExecutor(registry);
|
|
const statusline = new StatuslineGenerator();
|
|
// Start daemons if enabled
|
|
if (options?.enableDaemons !== false) {
|
|
const daemonManager = new DaemonManager();
|
|
const metricsDaemon = new MetricsDaemon(daemonManager);
|
|
const swarmDaemon = new SwarmMonitorDaemon(daemonManager);
|
|
const learningDaemon = new HooksLearningDaemon(daemonManager);
|
|
await Promise.all([
|
|
metricsDaemon.start(),
|
|
swarmDaemon.start(),
|
|
learningDaemon.start(),
|
|
]);
|
|
}
|
|
return { registry, executor, statusline };
|
|
}
|
|
/**
|
|
* Quick hooks execution helper
|
|
*/
|
|
export async function runHook(event, context) {
|
|
const { executeHooks } = await import('./executor/index.js');
|
|
return executeHooks(event, context);
|
|
}
|
|
/**
|
|
* Register a new hook with simplified API
|
|
*/
|
|
export function addHook(event, handler, options) {
|
|
const { registerHook: register } = require('./registry/index.js');
|
|
const { HookPriority } = require('./types.js');
|
|
return register(event, handler, options?.priority ?? HookPriority.Normal, { name: options?.name });
|
|
}
|
|
//# sourceMappingURL=index.js.map
|