* Lightweight existence check for hooks on a given event. Mirrors the sources * assembled by getHooksConfig() but stops at the first hit without building * the full merged config. * * Intentionally over-approximates: returns true if any matcher exists for the * event, even if managed-only filte
( hookEvent: HookEvent, appState: AppState | undefined, sessionId: string, )
| 1662 | * See hasInstructionsLoadedHook / hasWorktreeCreateHook for the same pattern. |
| 1663 | */ |
| 1664 | function hasHookForEvent( |
| 1665 | hookEvent: HookEvent, |
| 1666 | appState: AppState | undefined, |
| 1667 | sessionId: string, |
| 1668 | ): boolean { |
| 1669 | const snap = getHooksConfigFromSnapshot()?.[hookEvent] |
| 1670 | if (snap && snap.length > 0) return true |
| 1671 | const reg = getRegisteredHooks()?.[hookEvent] |
| 1672 | if (reg && reg.length > 0) return true |
| 1673 | if (appState?.sessionHooks.get(sessionId)?.hooks[hookEvent]) return true |
| 1674 | return false |
| 1675 | } |
| 1676 | |
| 1677 | /** |
| 1678 | * Get hook commands that match the given query |
no test coverage detected