Project Files
dist / llm.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.completeText = completeText;
exports.extractJson = extractJson;
exports.slugify = slugify;
async function completeText(model, prompt, maxTokens = 2400, temperature = 0.2) {
const prediction = model.complete(prompt, {
maxTokens,
temperature,
});
let output = "";
for await (const chunk of prediction) {
output += chunk.content ?? "";
}
return output;
}
function extractJson(raw) {
const cleaned = raw
.replace(/```(?:json)?/gi, "")
.replace(/```/g, "")
.trim();
const firstObj = cleaned.indexOf("{");
const lastObj = cleaned.lastIndexOf("}");
const firstArr = cleaned.indexOf("[");
const lastArr = cleaned.lastIndexOf("]");
let jsonText = cleaned;
if (firstObj !== -1 && lastObj !== -1 && lastObj > firstObj) {
jsonText = cleaned.slice(firstObj, lastObj + 1);
}
else if (firstArr !== -1 && lastArr !== -1 && lastArr > firstArr) {
jsonText = cleaned.slice(firstArr, lastArr + 1);
}
return JSON.parse(jsonText);
}
function slugify(input) {
const out = input
.toLowerCase()
.replace(/[^a-z0-9]+/g, "-")
.replace(/^-+|-+$/g, "")
.slice(0, 64);
return out || "plugin";
}