import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; const THREE_ZERO_TWO_PROVIDER = "302ai"; const THREE_ZERO_TWO_API_KEY_ENV = "THREE_ZERO_TWO_AI_API_KEY"; const THREE_ZERO_TWO_BASE_URL = "https://api.302.ai/v1"; function shouldRegister302AiProvider(): boolean { return process.env.ABULAFIA_ENABLE_302AI_PROVIDER === "1" || Boolean(process.env[THREE_ZERO_TWO_API_KEY_ENV]); } export function registerModelProviderOverlays(pi: ExtensionAPI): void { if (!shouldRegister302AiProvider()) { return; } pi.registerProvider(THREE_ZERO_TWO_PROVIDER, { baseUrl: THREE_ZERO_TWO_BASE_URL, apiKey: THREE_ZERO_TWO_API_KEY_ENV, authHeader: true, api: "openai-completions", models: [ { id: "gpt-5.4", name: "GPT 5.4", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, maxTokens: 16384, compat: { supportsDeveloperRole: false, supportsReasoningEffort: true, }, }, { id: "gpt-5.4-nano", name: "GPT 5.4 Nano", reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, maxTokens: 16384, compat: { supportsDeveloperRole: false, supportsReasoningEffort: false, }, }, ], }); }