Files
pink/pink.js
2026-04-12 13:34:41 -07:00

47 lines
1.3 KiB
JavaScript

import { readdir, readFile, writeFile } from "fs/promises"
import { SEARCH_MODEL, JSON_ROLLING_WINDOW } from "./config.js"
const DIR = "?"
const files = (await readdir(DIR)).filter(f => f.endsWith(".json"))
for (const file of files) {
const query = file.replace(/\.json$/, "")
const path = `${DIR}/${file}`
const now = new Date().toISOString().replace("T", " ").slice(0, 16) + " UTC"
console.log(`>> ${query}`)
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.OPENROUTER_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: SEARCH_MODEL,
messages: [{ role: "user", content: query }]
})
})
if (!res.ok) {
console.error(`!! ${file}: ${res.status} ${await res.text()}`)
continue
}
const data = await res.json()
const answer = data.choices?.[0]?.message?.content ?? "No response."
let entries = []
try {
const raw = await readFile(path, "utf-8")
const parsed = JSON.parse(raw || "[]")
if (Array.isArray(parsed)) entries = parsed
} catch {}
entries.unshift({ date: now, response: answer })
entries = entries.slice(0, JSON_ROLLING_WINDOW)
await writeFile(path, JSON.stringify(entries, null, 2) + "\n")
console.log(`<< ${file} (${entries.length} entries)`)
}