/** * Cline provider for pi — free z-ai gateway models by default, * full Cline catalog via CLINE_MODELS=all. Auth reuses Cline CLI login. * * @module pi-cline-provider */ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { resolveApiKey } from "./auth.js"; import { handleClineError } from "./error-handler.js"; import { createClineProvider, loadModelCatalog } from "./provider.js"; import { resolveAmbientAccessToken } from "./runtime-auth.js"; export default async function (pi: ExtensionAPI) { const apiKey = resolveApiKey() ?? (await resolveAmbientAccessToken())?.token; const models = await loadModelCatalog(apiKey); pi.registerProvider(createClineProvider(models)); pi.on("message_end", handleClineError); } export { MODELS, modelIds, fetchRemoteModels, resolveModels, isClineFreeGatewayModelId, } from "./models.js"; export { PROVIDER_NAME, ENV_API_KEY, ENV_MODELS_MODE, resolveApiBase } from "./env.js"; export { resolveApiKey } from "./auth.js"; export { createClineProvider, createClineFreeProvider, loadModelCatalog } from "./provider.js";