UNPKG

claudekit

Version:

CLI tools for Claude Code development workflow

60 lines 2.07 kB
import type { ExecResult, PackageManager } from './utils.js'; export interface ClaudePayload { tool_name?: string; tool_input?: { file_path?: string; [key: string]: unknown; }; stop_hook_active?: boolean; transcript_path?: string; hook_event_name?: string; session_id?: string; cwd?: string; [key: string]: unknown; } export interface HookContext { filePath?: string | undefined; projectRoot: string; payload: ClaudePayload; packageManager: PackageManager; } export interface HookResult { exitCode: number; suppressOutput?: boolean; jsonResponse?: unknown; } export interface HookConfig { command?: string; timeout?: number; [key: string]: unknown; } export interface HookMetadata { id: string; displayName: string; description: string; category: 'validation' | 'testing' | 'git' | 'project-management' | 'utility'; triggerEvent: 'PostToolUse' | 'PreToolUse' | 'Stop' | 'SubagentStop' | 'SessionStart' | 'UserPromptSubmit' | ('Stop' | 'SubagentStop')[]; matcher?: string; dependencies?: string[]; } export declare abstract class BaseHook { abstract name: string; protected config: HookConfig; protected debug: boolean; constructor(config?: HookConfig); run(payload: ClaudePayload): Promise<HookResult>; abstract execute(context: HookContext): Promise<HookResult>; protected execCommand(command: string, args?: string[], options?: { cwd?: string; timeout?: number; }): Promise<ExecResult>; protected progress(message: string): void; protected success(message: string): void; protected warning(message: string): void; protected error(title: string, details: string, instructions: string[]): void; protected jsonOutput(data: unknown): void; protected fileExists(filePath: string): Promise<boolean>; protected readFile(filePath: string): Promise<string>; protected shouldSkipFile(filePath: string | undefined, extensions: string[]): boolean; } //# sourceMappingURL=base.d.ts.map