82 lines
2.8 KiB
TypeScript
82 lines
2.8 KiB
TypeScript
import { storage } from '../server/storage';
|
|
import { db } from '../server/db';
|
|
import { users, tasks, labels } from '../shared/schema';
|
|
import { scrypt, randomBytes } from "crypto";
|
|
import { promisify } from "util";
|
|
|
|
const scryptAsync = promisify(scrypt);
|
|
|
|
async function hashPassword(password: string) {
|
|
const salt = randomBytes(16).toString("hex");
|
|
const buf = (await scryptAsync(password, salt, 64)) as Buffer;
|
|
return `${buf.toString("hex")}.${salt}`;
|
|
}
|
|
|
|
async function seedAiTest() {
|
|
console.log("🌱 Seeding AI Benchmark Tasks...");
|
|
|
|
// 1. Get User
|
|
let user = await storage.getUserByUsername('admin');
|
|
if (!user) user = await storage.getUserByUsername('paul');
|
|
if (!user) {
|
|
console.error("❌ No user found.");
|
|
process.exit(1);
|
|
}
|
|
|
|
// Reset Password
|
|
const newPass = await hashPassword('admin123');
|
|
await storage.updateUser(user.id, { password: newPass });
|
|
console.log(`🔑 Reset Password for ${user.username} to 'admin123'`);
|
|
|
|
// Check AI Settings
|
|
// Check AI Settings
|
|
const provider = await storage.getSystemSettings("ai_provider");
|
|
const key = await storage.getSystemSettings("ai_api_key");
|
|
const model = await storage.getSystemSettings("ai_model");
|
|
console.log(`🤖 AI Configuration: Provider=${provider || 'default(openai)'}, Model=${model || 'default'}, KeySet=${!!key}`);
|
|
|
|
// 3. Create Labels
|
|
let workLabel = await storage.createLabel({ name: 'Work', color: '#3b82f6', creatorId: user.id });
|
|
let personalLabel = await storage.createLabel({ name: 'Personal', color: '#10b981', creatorId: user.id });
|
|
|
|
// Handle potential duplication if labels already exist (storage.createLabel might return existing?)
|
|
// server/storage.ts doesn't dedupe by name usually?
|
|
// server/ai.ts createLabel tool logic specifically checks for existing.
|
|
// Let's assume for this script we just create them or continue.
|
|
|
|
// 4. Create Tasks
|
|
const tasksToCreate = [
|
|
{
|
|
title: "Review quarterly report",
|
|
status: "todo",
|
|
priority: "high",
|
|
labelId: workLabel.id,
|
|
userId: user.id
|
|
},
|
|
{
|
|
title: "Buy milk",
|
|
status: "todo",
|
|
priority: "medium",
|
|
labelId: personalLabel.id,
|
|
userId: user.id
|
|
},
|
|
{
|
|
title: "Review movie script",
|
|
status: "todo",
|
|
priority: "low",
|
|
labelId: personalLabel.id,
|
|
userId: user.id
|
|
}
|
|
];
|
|
|
|
for (const t of tasksToCreate) {
|
|
await storage.createTask(t);
|
|
console.log(`Created task: "${t.title}" [${t.labelId === workLabel.id ? 'Work' : 'Personal'}]`);
|
|
}
|
|
|
|
console.log("✅ Seeding Complete. ready for AI usage.");
|
|
process.exit(0);
|
|
}
|
|
|
|
seedAiTest();
|