import type { ClaudePlugin } from "../types/claude" import type { OpenCodeBundle } from "../types/opencode" import type { CodexBundle } from "../types/codex" import type { DroidBundle } from "../types/droid" import type { PiBundle } from "../types/pi" import type { CopilotBundle } from "../types/copilot" import type { GeminiBundle } from "../types/gemini" import type { KiroBundle } from "../types/kiro" import type { OpenClawBundle } from "../types/openclaw" import type { QwenBundle } from "../types/qwen" import { convertClaudeToOpenCode, type ClaudeToOpenCodeOptions } from "../converters/claude-to-opencode" import { convertClaudeToCodex } from "../converters/claude-to-codex" import { convertClaudeToDroid } from "../converters/claude-to-droid" import { convertClaudeToPi } from "../converters/claude-to-pi" import { convertClaudeToCopilot } from "../converters/claude-to-copilot" import { convertClaudeToGemini } from "../converters/claude-to-gemini" import { convertClaudeToKiro } from "../converters/claude-to-kiro" import { convertClaudeToOpenClaw } from "../converters/claude-to-openclaw" import { convertClaudeToQwen, type ClaudeToQwenOptions } from "../converters/claude-to-qwen" import { writeOpenCodeBundle } from "./opencode" import { writeCodexBundle } from "./codex" import { writeDroidBundle } from "./droid" import { writePiBundle } from "./pi" import { writeCopilotBundle } from "./copilot" import { writeGeminiBundle } from "./gemini" import { writeKiroBundle } from "./kiro" import { writeOpenClawBundle } from "./openclaw" import { writeQwenBundle } from "./qwen" export type TargetHandler = { name: string implemented: boolean convert: (plugin: ClaudePlugin, options: ClaudeToOpenCodeOptions) => TBundle | null write: (outputRoot: string, bundle: TBundle) => Promise } export const targets: Record = { opencode: { name: "opencode", implemented: true, convert: convertClaudeToOpenCode, write: writeOpenCodeBundle, }, codex: { name: "codex", implemented: true, convert: convertClaudeToCodex as TargetHandler["convert"], write: writeCodexBundle as TargetHandler["write"], }, droid: { name: "droid", implemented: true, convert: convertClaudeToDroid as TargetHandler["convert"], write: writeDroidBundle as TargetHandler["write"], }, pi: { name: "pi", implemented: true, convert: convertClaudeToPi as TargetHandler["convert"], write: writePiBundle as TargetHandler["write"], }, copilot: { name: "copilot", implemented: true, convert: convertClaudeToCopilot as TargetHandler["convert"], write: writeCopilotBundle as TargetHandler["write"], }, gemini: { name: "gemini", implemented: true, convert: convertClaudeToGemini as TargetHandler["convert"], write: writeGeminiBundle as TargetHandler["write"], }, kiro: { name: "kiro", implemented: true, convert: convertClaudeToKiro as TargetHandler["convert"], write: writeKiroBundle as TargetHandler["write"], }, openclaw: { name: "openclaw", implemented: true, convert: convertClaudeToOpenClaw as TargetHandler["convert"], write: writeOpenClawBundle as TargetHandler["write"], }, qwen: { name: "qwen", implemented: true, convert: convertClaudeToQwen as TargetHandler["convert"], write: writeQwenBundle as TargetHandler["write"], }, }