tasq/node_modules/@claude-flow/hooks/dist/index.js

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