import { AntigravityExecutor } from "./antigravity.ts"; import { GeminiCLIExecutor } from "./gemini-cli.ts"; import { GithubExecutor } from "./github.ts"; import { IFlowExecutor } from "./iflow.ts"; import { KiroExecutor } from "./kiro.ts"; import { CodexExecutor } from "./codex.ts"; import { CursorExecutor } from "./cursor.ts"; import { DefaultExecutor } from "./default.ts"; import { PollinationsExecutor } from "./pollinations.ts"; import { CloudflareAIExecutor } from "./cloudflare-ai.ts"; import { OpencodeExecutor } from "./opencode.ts"; import { PuterExecutor } from "./puter.ts"; import { VertexExecutor } from "./vertex.ts"; const executors = { antigravity: new AntigravityExecutor(), "gemini-cli": new GeminiCLIExecutor(), github: new GithubExecutor(), iflow: new IFlowExecutor(), kiro: new KiroExecutor(), codex: new CodexExecutor(), cursor: new CursorExecutor(), cu: new CursorExecutor(), // Alias for cursor pollinations: new PollinationsExecutor(), pol: new PollinationsExecutor(), // Alias "cloudflare-ai": new CloudflareAIExecutor(), cf: new CloudflareAIExecutor(), // Alias "opencode-zen": new OpencodeExecutor("opencode-zen"), "opencode-go": new OpencodeExecutor("opencode-go"), puter: new PuterExecutor(), pu: new PuterExecutor(), // Alias vertex: new VertexExecutor(), }; const defaultCache = new Map(); export function getExecutor(provider) { if (executors[provider]) return executors[provider]; if (!defaultCache.has(provider)) defaultCache.set(provider, new DefaultExecutor(provider)); return defaultCache.get(provider); } export function hasSpecializedExecutor(provider) { return !!executors[provider]; } export { BaseExecutor } from "./base.ts"; export { AntigravityExecutor } from "./antigravity.ts"; export { GeminiCLIExecutor } from "./gemini-cli.ts"; export { GithubExecutor } from "./github.ts"; export { IFlowExecutor } from "./iflow.ts"; export { KiroExecutor } from "./kiro.ts"; export { CodexExecutor } from "./codex.ts"; export { CursorExecutor } from "./cursor.ts"; export { DefaultExecutor } from "./default.ts"; export { PollinationsExecutor } from "./pollinations.ts"; export { CloudflareAIExecutor } from "./cloudflare-ai.ts"; export { OpencodeExecutor } from "./opencode.ts"; export { PuterExecutor } from "./puter.ts"; export { VertexExecutor } from "./vertex.ts";