logger updates

This commit is contained in:
Storme-bit
2026-04-26 22:28:54 -07:00
parent c86b565eed
commit 86e78cc4c6
23 changed files with 87 additions and 67 deletions

View File

@@ -1,6 +1,6 @@
const Database = require('better-sqlite3');
const schema = require('./schema');
const {getEnv, SQLITE } = require('@nexusai/shared');
const {getEnv, SQLITE, logger } = require('@nexusai/shared');
let db; // Declare db variable in a scope accessible to all functions
@@ -62,7 +62,7 @@ function getDB() {
db.exec(`INSERT OR REPLACE INTO episodes_fts(rowid, user_message, ai_response)
SELECT id, user_message, ai_response FROM episodes`);
console.log(`Connected to SQLite database at ${path}`);
logger.info(`Connected to SQLite database at ${path}`);
}
return db;
}

View File

@@ -1,5 +1,5 @@
const semantic = require('../semantic')
const { getEnv, SERVICES, formatEpisodeText, ENTITIES } = require('@nexusai/shared');
const { getEnv, SERVICES, formatEpisodeText, ENTITIES, logger } = require('@nexusai/shared');
const { upsertEntity } = require('./index');
const EXTRACTION_URL = getEnv('EXTRACTION_URL', 'http://localhost:11434');
@@ -59,7 +59,7 @@ async function embedEntity(entity) {
}
async function extractAndStoreEntities(userMessage, aiResponse, projectId=null) {
console.log('[entities] Extraction triggered')
logger.info('[entities] Extraction triggered')
try {
// Fetch existing entities to guide the model toward consistent name/type pairs
const db = require('../db').getDB();
@@ -90,7 +90,7 @@ async function extractAndStoreEntities(userMessage, aiResponse, projectId=null)
const parsed = JSON.parse(raw);
const entities = Array.isArray(parsed.entities) ? parsed.entities : [];
if (entities.length === 0) {
console.log('[entities] No entities found in this exchange — skipping');
logger.debug('[entities] No entities found in this exchange — skipping');
return; // not an error, just nothing to extract
}
@@ -105,7 +105,7 @@ async function extractAndStoreEntities(userMessage, aiResponse, projectId=null)
if (IGNORED_NAMES.includes(name.toLowerCase())) continue;
const entity = upsertEntity(name, type, notes ?? null);
console.log('[entities] Upserted entity:', entity);
logger.info('[entities] Upserted entity:', entity);
// Embed and upsert to Qdrant fire-and-forget
embedEntity(entity)
@@ -116,17 +116,17 @@ async function extractAndStoreEntities(userMessage, aiResponse, projectId=null)
projectId: projectId ?? null,
}))
.catch(err => {
console.warn(`[entities] Failed to embed entity "${entity.name}":`, err.message);
logger.warn(`[entities] Failed to embed entity "${entity.name}":`, err.message);
});
saved++;
}
if (saved > 0) console.log(`[entities] Extracted and stored ${saved} entities`);
if (saved > 0) logger.info(`[entities] Extracted and stored ${saved} entities`);
} catch (err) {
// Non-critical — log and move on, episode is already saved
console.warn('[entities] Extraction failed:', err.message);
logger.warn('[entities] Extraction failed:', err.message);
}
}

View File

@@ -1,5 +1,5 @@
const {getDB} = require('../db');
const { EPISODIC, getEnv, SERVICES, parseRow, formatEpisodeText, SUMMARIES } = require('@nexusai/shared');
const { EPISODIC, getEnv, SERVICES, parseRow, formatEpisodeText, SUMMARIES, logger } = require('@nexusai/shared');
const semantic = require('../semantic');
const { extractAndStoreEntities } = require('../entities/extraction')
@@ -125,10 +125,10 @@ async function createEpisode(sessionId, userMessage, aiResponse, tokenCount = nu
sessionId: episode.session_id,
createdAt: episode.created_at
}))
.catch(err => console.error(`Failed to embed episode ${episode.id}:`, err.message));
.catch(err => logger.error(`Failed to embed episode ${episode.id}:`, err.message));
extractAndStoreEntities(userMessage, aiResponse, projectId)
.catch(err => console.error(`Failed to extract entities for episode ${episode.id}:`, err.message));
.catch(err => logger.error(`Failed to extract entities for episode ${episode.id}:`, err.message));
return episode;

View File

@@ -1,6 +1,6 @@
require ('dotenv').config();
const express = require('express');
const {getEnv, PORTS, EPISODIC} = require('@nexusai/shared');
const {getEnv, PORTS, EPISODIC, logger} = 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');
@@ -19,8 +19,8 @@ const PORT = getEnv('PORT', PORTS.MEMORY);
const db = getDB();
semantic.initCollections()
.then(() => console.log(`QDrant collections ready`))
.catch(err => console.error(`QDrant initialization error:`, err.message));
.then(() => logger.info(`QDrant collections ready`))
.catch(err => logger.error(`QDrant initialization error:`, err.message));
// Health check endpoint
app.get('/health', (req, res) => {
@@ -158,7 +158,7 @@ app.delete('/episodes/:id', (req, res) => {
episodic.deleteEpisode(id);
semantic.deleteEpisode(id) // fire-and-forget
.catch(err => console.error(`[Memory] Qdrant delete failed for episode ${id}:`, err.message));
.catch(err => logger.error(`[Memory] Qdrant delete failed for episode ${id}:`, err.message));
res.status(204).send();
});
@@ -338,5 +338,5 @@ app.delete('/summaries/:id', (req, res) => {
/********** Start Server ********** */
/********************************** */
app.listen(PORT, () => {
console.log(`Memory Service is running on port ${PORT}`);
logger.info(`Memory Service is running on port ${PORT}`);
});

View File

@@ -1,5 +1,5 @@
const {QdrantClient} = require('@qdrant/js-client-rest');
const {QDRANT, COLLECTIONS, getEnv} = require('@nexusai/shared');
const {QDRANT, COLLECTIONS, getEnv, logger} = require('@nexusai/shared');
let client;
@@ -24,9 +24,9 @@ async function initCollections() {
distance: QDRANT.DISTANCE_METRIC
}
});
console.log(`Created Qdrant collection: ${name}`);
logger.info(`Created Qdrant collection: ${name}`);
} else {
console.log(`Qdrant collection already exists: ${name}`);
logger.info(`Qdrant collection already exists: ${name}`);
}
}
}