Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { createDb } from "../packages/db/src/index.js";
|
|
|
|
const dbUrl = process.env.DATABASE_URL || "postgres://ingowagner@127.0.0.1:5432/evoo";
|
|
const { prisma } = createDb(dbUrl);
|
|
|
|
async function main() {
|
|
const users = await prisma.user.findMany();
|
|
console.log(
|
|
"Users found:",
|
|
users.map((u) => ({ id: u.id, email: u.email })),
|
|
);
|
|
|
|
for (const user of users) {
|
|
const secretId = `secret_ollama_${Math.random().toString(36).slice(2)}`;
|
|
await prisma.secret.create({
|
|
data: {
|
|
id: secretId,
|
|
userId: user.id,
|
|
kind: "model",
|
|
ciphertext: "ollama_local_dummy_ciphertext",
|
|
},
|
|
});
|
|
|
|
await prisma.userModelCredential.create({
|
|
data: {
|
|
id: `cred_ollama_${Math.random().toString(36).slice(2)}`,
|
|
userId: user.id,
|
|
provider: "openai-compatible",
|
|
label: "Ollama Local (gemma4:latest)",
|
|
secretId: secretId,
|
|
supportsImages: true,
|
|
},
|
|
});
|
|
|
|
console.log(`Seeded Ollama credential for user: ${user.email}`);
|
|
}
|
|
}
|
|
|
|
main()
|
|
.catch((e) => console.error(e))
|
|
.finally(() => prisma.$disconnect());
|