Files
fusion/packages/pi-llama-cpp/index.ts
gsxdsm cec191eac3 FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
Fusion-Task-Id: FN-5638

Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00

39 lines
1.1 KiB
TypeScript

import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
import {
DEFAULT_CONTEXT_WINDOW,
DEFAULT_MAX_TOKENS,
PROVIDER_ID,
PROVIDER_NAME,
} from "./src/constants.js";
import { resolveLlamaServerApiKey, resolveLlamaServerUrl } from "./src/resolver.js";
import { isLlamaServerReady, listLlamaModels } from "./src/retriever.js";
export default async function (pi: ExtensionAPI): Promise<void> {
const cwd = process.cwd();
if (!(await isLlamaServerReady(cwd))) {
return;
}
const [url, models, apiKey] = await Promise.all([
resolveLlamaServerUrl(cwd),
listLlamaModels(cwd),
resolveLlamaServerApiKey(),
]);
pi.registerProvider(PROVIDER_ID, {
name: PROVIDER_NAME,
baseUrl: `${url}/v1`,
api: "openai-completions",
apiKey: apiKey ?? "",
models: models.map((model) => ({
id: model.id,
name: model.id,
reasoning: true,
input: ["text", "image"] as Array<"text" | "image">,
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: DEFAULT_CONTEXT_WINDOW,
maxTokens: DEFAULT_MAX_TOKENS,
})),
});
}