/** * adapters/openclaw — OpenClaw platform adapter. * * Implements HookAdapter for OpenClaw's TypeScript plugin paradigm. * * OpenClaw hook specifics: * - I/O: TS plugin functions via api.registerHook() and api.on() * - Hook events: tool_call:before, tool_call:after, command:new * - Lifecycle: before_prompt_build (routing instruction injection) * - Context engine: api.registerContextEngine() with ownsCompaction * - Arg modification: mutate event.params in tool_call:before * - Blocking: return { block: true, blockReason } from tool_call:before * - Session ID: event context (no specific env var) * - Project dir: process.cwd() * - Config: openclaw.json plugins.entries, ~/.openclaw/extensions/ * - Session dir: ~/.openclaw/context-mode/sessions/ */ import type { HookAdapter, HookParadigm, PlatformCapabilities, DiagnosticResult, PreToolUseEvent, PostToolUseEvent, PreCompactEvent, SessionStartEvent, PreToolUseResponse, PostToolUseResponse, PreCompactResponse, SessionStartResponse, HookRegistration } from "../types.js"; export declare class OpenClawAdapter implements HookAdapter { readonly name = "OpenClaw"; readonly paradigm: HookParadigm; readonly capabilities: PlatformCapabilities; parsePreToolUseInput(raw: unknown): PreToolUseEvent; parsePostToolUseInput(raw: unknown): PostToolUseEvent; parsePreCompactInput(raw: unknown): PreCompactEvent; parseSessionStartInput(raw: unknown): SessionStartEvent; formatPreToolUseResponse(response: PreToolUseResponse): unknown; formatPostToolUseResponse(response: PostToolUseResponse): unknown; formatPreCompactResponse(response: PreCompactResponse): unknown; formatSessionStartResponse(response: SessionStartResponse): unknown; getSettingsPath(): string; getSessionDir(): string; getSessionDBPath(projectDir: string): string; getSessionEventsPath(projectDir: string): string; generateHookConfig(_pluginRoot: string): HookRegistration; readSettings(): Record | null; writeSettings(settings: Record): void; validateHooks(_pluginRoot: string): DiagnosticResult[]; checkPluginRegistration(): DiagnosticResult; getInstalledVersion(): string; configureAllHooks(_pluginRoot: string): string[]; backupSettings(): string | null; setHookPermissions(_pluginRoot: string): string[]; updatePluginRegistry(_pluginRoot: string, _version: string): void; /** * Extract session ID from OpenClaw hook input. */ private extractSessionId; }