feat(TRUEREF-0023): add sqlite-vec search pipeline

This commit is contained in:
Giancarmine Salucci
2026-04-01 14:09:19 +02:00
parent 0752636847
commit 9525c58e9a
45 changed files with 4009 additions and 614 deletions

View File

@@ -44,7 +44,7 @@ export const GET: RequestHandler = ({ params, request }) => {
status: job.status,
error: job.error
};
controller.enqueue(`data: ${JSON.stringify(initialData)}\n\n`);
controller.enqueue(`event: job-progress\ndata: ${JSON.stringify(initialData)}\n\n`);
// Check for Last-Event-ID header for reconnect
const lastEventId = request.headers.get('Last-Event-ID');
@@ -57,6 +57,13 @@ export const GET: RequestHandler = ({ params, request }) => {
// Check if job is already done or failed - close immediately after first event
if (job.status === 'done' || job.status === 'failed') {
if (job.status === 'done') {
controller.enqueue(`event: job-done\ndata: ${JSON.stringify({ jobId })}\n\n`);
} else {
controller.enqueue(
`event: job-failed\ndata: ${JSON.stringify({ jobId, error: job.error })}\n\n`
);
}
controller.close();
return;
}
@@ -73,18 +80,29 @@ export const GET: RequestHandler = ({ params, request }) => {
controller.enqueue(value);
// Check if the incoming event indicates job completion
if (value.includes('event: done') || value.includes('event: failed')) {
if (
value.includes('event: job-done') ||
value.includes('event: job-failed')
) {
controller.close();
break;
}
}
} finally {
reader.releaseLock();
controller.close();
try {
controller.close();
} catch {
// Stream may already be closed after a terminal event.
}
}
} catch (err) {
console.error('SSE stream error:', err);
controller.close();
try {
controller.close();
} catch {
// Stream may already be closed.
}
}
}
});