Research Chat: Web-Chatoberfläche für den Research-Agent (DeepSeek v4 Flash + Playwright, Docker/Podman)

This commit is contained in:
nico committed 2026-08-26 16:34:03 +02:00
commit a0243d494c
23 files changed
+2253

No files matched your search

+48
View File
@@ -0,0 +1,48 @@
const { EventEmitter } = require('node:events');
const events = new EventEmitter();
events.setMaxListeners(100);
let queue = [];
let running = false;
/** Einen Job anmelden. Läuft sofort, wenn nichts anderes läuft, sonst wartet er. */
function enqueue(job) {
queue.push(job);
events.emit('job-queued', job.sessionId);
processNext();
}
/** Job aus der Warteschlange holen und ausführen. */
async function processNext() {
if (running || queue.length === 0) return;
const job = queue.shift();
running = true;
try {
await job.run();
} catch (e) {
job.onError?.(e);
} finally {
running = false;
events.emit('job-finished', job.sessionId);
processNext();
}
}
function queuedBefore(sessionId) {
return queue.findIndex((j) => j.sessionId === sessionId);
}
function isRunning(sessionId) {
return running;
}
function cancelQueued(sessionId) {
queue = queue.filter((j) => j.sessionId !== sessionId);
}
function state() {
return { running, queued: queue.map((j) => j.sessionId) };
}
module.exports = { events, enqueue, queuedBefore, isRunning, cancelQueued, state };