diff --git a/src/hooks/claude-code-hooks/index.ts b/src/hooks/claude-code-hooks/index.ts index acfc3ee..63482dc 100644 --- a/src/hooks/claude-code-hooks/index.ts +++ b/src/hooks/claude-code-hooks/index.ts @@ -138,14 +138,18 @@ export function createClaudeCodeHooksHook(ctx: PluginInput, config: PluginConfig return } - const detectedKeywords = detectKeywordsWithType(removeCodeBlocks(prompt), input.agent) - const keywordMessages = detectedKeywords.map((k) => k.message) + const keywordMessages: string[] = [] + if (!config.keywordDetectorDisabled) { + const detectedKeywords = detectKeywordsWithType(removeCodeBlocks(prompt), input.agent) + keywordMessages.push(...detectedKeywords.map((k) => k.message)) - if (keywordMessages.length > 0) { - log("[claude-code-hooks] Detected keywords", { - sessionID: input.sessionID, - types: detectedKeywords.map((k) => k.type), - }) + if (keywordMessages.length > 0) { + log("[claude-code-hooks] Detected keywords", { + sessionID: input.sessionID, + keywordCount: keywordMessages.length, + types: detectedKeywords.map((k) => k.type), + }) + } } const allMessages = [...keywordMessages, ...result.messages] diff --git a/src/hooks/claude-code-hooks/types.ts b/src/hooks/claude-code-hooks/types.ts index 33533e3..5d287f6 100644 --- a/src/hooks/claude-code-hooks/types.ts +++ b/src/hooks/claude-code-hooks/types.ts @@ -200,4 +200,5 @@ export interface ClaudeCodeMessage { export interface PluginConfig { disabledHooks?: boolean | ClaudeHookEvent[] + keywordDetectorDisabled?: boolean } diff --git a/src/index.ts b/src/index.ts index 226d6b6..267f36b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -122,6 +122,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { const thinkMode = isHookEnabled("think-mode") ? createThinkModeHook() : null; const claudeCodeHooks = createClaudeCodeHooksHook(ctx, { disabledHooks: (pluginConfig.claude_code?.hooks ?? true) ? undefined : true, + keywordDetectorDisabled: !isHookEnabled("keyword-detector"), }); const anthropicContextWindowLimitRecovery = isHookEnabled( "anthropic-context-window-limit-recovery"