/** * ClaudeAdapter — Claude Code CLI adapter. */ import type { AgentCapabilities, ModelCapabilities, AgentConfigSchema, AuthState, AuthSetupGuidance, Session, SpawnArgs, ParseContext, RunOptions, AgentEvent, InstalledPlugin, PluginInstallOptions, RuntimeHookDispatcher, RuntimeHookSetup } from '@a5c-ai/comm-adapter'; import { BaseAgentAdapter } from './base-adapter.js'; export declare class ClaudeAdapter extends BaseAgentAdapter { readonly agent: string; get displayName(): string; readonly cliCommand: string; readonly minVersion = "1.0.0"; constructor(agent?: string, cliCommand?: string); get hostEnvSignals(): string[]; get capabilities(): AgentCapabilities; get models(): ModelCapabilities[]; get defaultModelId(): string; get configSchema(): AgentConfigSchema; buildSpawnArgs(options: RunOptions): SpawnArgs; parseEvent(line: string, context: ParseContext): AgentEvent | AgentEvent[] | null; private buildStreamJsonUserMessage; protected buildPromptTransport(options: RunOptions): { prompt: string; stdin?: string; }; private parseToolInput; private toolStateByIndex; private toolStateById; detectAuth(): Promise; getAuthGuidance(): AuthSetupGuidance; sessionDir(cwd?: string): string; parseSessionFile(filePath: string): Promise; listSessionFiles(_cwd?: string): Promise; readConfig(_cwd?: string): Promise; writeConfig(config: Partial, _cwd?: string): Promise; /** * Override: in addition to the base `which claude` + `--version` check, * probe `~/.claude` as a secondary signal that the harness has been * installed and initialized at least once. */ detectInstallation(): Promise; /** * Write a Claude native hook into ~/.claude/settings.json in addition * to registering with HookConfigManager. Claude supports a top-level * `hooks` object keyed by hook type (PreToolUse/PostToolUse/Stop/...). * * We append the command under settings.hooks[hookType] as * `{ matcher: '*', hooks: [{ type: 'command', command }] }`, preserving * any existing entries. */ protected writeNativeHook(hookType: string, command: string): Promise; /** * Claude plugins are MCP servers stored under `mcpServers` in * `~/.claude/settings.json`. Each entry is keyed by server id with a * `{ command, args?, env? }` body. We treat the server id as the pluginId * and surface an InstalledPlugin for each one. */ private settingsPaths; listPlugins(): Promise; installPlugin(pluginId: string, options?: PluginInstallOptions): Promise; uninstallPlugin(pluginId: string, options?: { global?: boolean; }): Promise; setupRuntimeHooks(options: RunOptions, dispatcher: RuntimeHookDispatcher): Promise; }