62 lines
2.1 KiB
TypeScript
62 lines
2.1 KiB
TypeScript
export interface AdapterDefaults {
|
|
runtimeImage: string;
|
|
envKeys: string[];
|
|
allowFqdns: string[];
|
|
probeCommand: string[];
|
|
}
|
|
|
|
const REGISTRY: Record<string, AdapterDefaults> = {
|
|
claude_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-claude:v1",
|
|
envKeys: ["ANTHROPIC_API_KEY"],
|
|
allowFqdns: ["api.anthropic.com"],
|
|
probeCommand: ["claude", "--version"],
|
|
},
|
|
codex_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-codex:v1",
|
|
envKeys: ["OPENAI_API_KEY"],
|
|
allowFqdns: ["api.openai.com"],
|
|
probeCommand: ["codex", "--version"],
|
|
},
|
|
gemini_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-gemini:v1",
|
|
envKeys: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
|
|
allowFqdns: ["generativelanguage.googleapis.com"],
|
|
probeCommand: ["gemini", "--version"],
|
|
},
|
|
cursor_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-cursor:v1",
|
|
envKeys: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY"],
|
|
allowFqdns: ["api.anthropic.com", "api.openai.com"],
|
|
probeCommand: ["cursor-agent", "--version"],
|
|
},
|
|
opencode_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-opencode:v1",
|
|
envKeys: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "OPENROUTER_API_KEY"],
|
|
allowFqdns: ["api.anthropic.com", "api.openai.com", "openrouter.ai"],
|
|
probeCommand: ["opencode", "--version"],
|
|
},
|
|
acpx_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-acpx:v1",
|
|
envKeys: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY"],
|
|
allowFqdns: ["api.anthropic.com", "api.openai.com"],
|
|
probeCommand: ["acpx", "--version"],
|
|
},
|
|
pi_local: {
|
|
runtimeImage: "ghcr.io/paperclipai/agent-runtime-pi:v1",
|
|
envKeys: ["ANTHROPIC_API_KEY"],
|
|
allowFqdns: ["api.anthropic.com"],
|
|
probeCommand: ["pi", "--version"],
|
|
},
|
|
};
|
|
|
|
export const KNOWN_ADAPTER_TYPES: ReadonlySet<string> = new Set(Object.keys(REGISTRY));
|
|
|
|
export function getAdapterDefaults(adapterType: string): AdapterDefaults {
|
|
const defaults = REGISTRY[adapterType];
|
|
if (!defaults) {
|
|
throw new Error(`Unknown adapter type: ${adapterType}`);
|
|
}
|
|
return defaults;
|
|
}
|