Files
oh-my-opencode/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts
T
YeonGyu-Kim d3a3f0c3a6 refactor(claude-code-hooks): extract handlers and session state
Split hook into per-concern modules:
- handlers/ directory for individual hook handlers
- session-hook-state.ts: session-level hook state management
2026-02-08 16:22:17 +09:00

23 lines
1.0 KiB
TypeScript

import type { PluginInput } from "@opencode-ai/plugin"
import type { PluginConfig } from "./types"
import type { ContextCollector } from "../../features/context-injector"
import { createChatMessageHandler } from "./handlers/chat-message-handler"
import { createPreCompactHandler } from "./handlers/pre-compact-handler"
import { createSessionEventHandler } from "./handlers/session-event-handler"
import { createToolExecuteAfterHandler } from "./handlers/tool-execute-after-handler"
import { createToolExecuteBeforeHandler } from "./handlers/tool-execute-before-handler"
export function createClaudeCodeHooksHook(
ctx: PluginInput,
config: PluginConfig = {},
contextCollector?: ContextCollector
) {
return {
"experimental.session.compacting": createPreCompactHandler(ctx, config),
"chat.message": createChatMessageHandler(ctx, config, contextCollector),
"tool.execute.before": createToolExecuteBeforeHandler(ctx, config),
"tool.execute.after": createToolExecuteAfterHandler(ctx, config),
event: createSessionEventHandler(ctx, config),
}
}