import type { CLIAdapterModule } from "@paperclip/adapter-utils"; import { printClaudeStreamEvent } from "@paperclip/adapter-claude-local/cli"; import { printCodexStreamEvent } from "@paperclip/adapter-codex-local/cli"; import { processCLIAdapter } from "./process/index.js"; import { httpCLIAdapter } from "./http/index.js"; const claudeLocalCLIAdapter: CLIAdapterModule = { type: "claude_local", formatStdoutEvent: printClaudeStreamEvent, }; const codexLocalCLIAdapter: CLIAdapterModule = { type: "codex_local", formatStdoutEvent: printCodexStreamEvent, }; const adaptersByType = new Map( [claudeLocalCLIAdapter, codexLocalCLIAdapter, processCLIAdapter, httpCLIAdapter].map((a) => [a.type, a]), ); export function getCLIAdapter(type: string): CLIAdapterModule { return adaptersByType.get(type) ?? processCLIAdapter; }