evOo-local/scripts/trigger-specialists.ts
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
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.
2026-09-20 17:15:16 +02:00

55 lines
2.3 KiB
TypeScript

import { createDb } from "../packages/db/src/index.js";
async function run() {
const { prisma } = createDb("postgres://ingowagner@127.0.0.1:5432/evoo");
const session = await prisma.session.findFirst({ orderBy: { createdAt: "desc" } });
if (!session) throw new Error("No session");
const quant = await prisma.bot.findFirst({ where: { name: "Apex Quant" } });
const architect = await prisma.bot.findFirst({ where: { name: "Code Architect" } });
const devops = await prisma.bot.findFirst({ where: { name: "DevOps Engineer" } });
const auditor = await prisma.bot.findFirst({ where: { name: "Security & QA Auditor" } });
const tasks = [
{
bot: quant,
text: "Sprint 1 (Quantitative Validation):\nPrüfe mit dem shell-Tool die mathematische Präzision in `apex-trading/src/engine/trader.py`. Führe `python3 -m unittest discover -s apex-trading/tests` im Terminal aus. Aktualisiere anschließend deine `TODO.md` mit den Ergebnissen.",
},
{
bot: architect,
text: "Sprint 1 (Architecture Blueprint):\nUntersuche mit dem shell- oder file-Tool die Projektstruktur in `apex-trading/` und `evoo-platform/`. Prüfe die saubere Trennung und dokumentiere den Modulaufbau in `ARCHITECTURE.md`. Aktualisiere deine `TODO.md`.",
},
{
bot: devops,
text: "Sprint 1 (Infrastructure & Healthcheck):\nPrüfe mit dem shell-Tool die Umgebung: Python-Version, Node-Version und das Script `deploy.sh`. Teste, ob alle Abhängigkeiten vorhanden sind und aktualisiere deine `TODO.md`.",
},
{
bot: auditor,
text: "Sprint 1 (Security & Edge Cases):\nAnalysiere `apex-trading/` auf potenzielle Division-by-Zero-Risiken, Typkonvertierungsfehler und Edge-Cases. Erstelle eine `BUGS.md` und aktualisiere deine `TODO.md`.",
},
];
for (const t of tasks) {
if (!t.bot) continue;
console.log(`Sending Sprint 1 task to ${t.bot.name}...`);
const res = await fetch("http://127.0.0.1:3100/rpc/threads/send", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${session.token}`,
},
body: JSON.stringify({
json: {
botId: t.bot.id,
text: t.text,
},
}),
});
console.log(` ${t.bot.name} send status: ${res.status}`);
}
}
run()
.catch(console.error)
.finally(() => process.exit(0));