summary system backend implementation

This commit is contained in:
Storme-bit
2026-04-19 06:51:39 -07:00
parent 2769f436fa
commit 01ed60a547

View File

@@ -3,6 +3,7 @@ const express = require('express');
const {getEnv, PORTS, EPISODIC} = require('@nexusai/shared');
const { getDB } = require('./db');
const { createProject, getProjects, getProject, updateProject, deleteProject } = require('./db/projects');
const { createSummary, getSummary, getSummariesBySession, getSummariesByProject, updateSummary, deleteSummary } = require('./db/summaries');
const episodic = require('./episodic');
const semantic = require('./semantic');
@@ -270,6 +271,48 @@ app.delete('/projects/:id', (req, res) => {
});
/*********************************** */
/********** Summary Routes ********** */
/*********************************** */
// Create a summary (called by orchestration, fire-and-forget style)
app.post('/summaries', (req, res) => {
const { sessionId, projectId, content, tokenCount, episodeRange, metadata } = req.body;
if (!content) return res.status(400).json({ error: 'content is required' });
if (!sessionId && !projectId) return res.status(400).json({ error: 'sessionId or projectId is required' });
try {
const summary = createSummary({ sessionId, projectId, content, tokenCount, episodeRange, metadata });
res.status(201).json(summary);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// Get summaries for a session
app.get('/sessions/:id/summaries', (req, res) => {
res.json(getSummariesBySession(req.params.id));
});
// Get summaries for a project
app.get('/projects/:id/summaries', (req, res) => {
res.json(getSummariesByProject(req.params.id));
});
// Update a summary (for cumulative updates)
app.patch('/summaries/:id', (req, res) => {
const summary = getSummary(req.params.id);
if (!summary) return res.status(404).json({ error: 'Not found' });
res.json(updateSummary(req.params.id, req.body));
});
// Delete a summary
app.delete('/summaries/:id', (req, res) => {
deleteSummary(req.params.id);
res.status(204).send();
});
/********************************** */
/********** Start Server ********** */