git-contextor
Version:
A code context tool with vector search and real-time monitoring, with optional Git integration.
58 lines (49 loc) • 1.78 kB
JavaScript
const express = require('express');
const logger = require('../../cli/utils/logger');
/**
* Handles conversational queries about the repository
* @param {string} query - The user's query
* @param {object} services - The core services
* @param {string} contextType - Optional context type for the query
* @returns {Promise<object>} The chat response
*/
async function handleChatQuery(query, services, contextType = 'default') {
const { contextOptimizer } = services;
try {
const result = await contextOptimizer.chat(query, {
context_type: contextType,
includeSummary: true
});
return result;
} catch (error) {
logger.error('Error in handleChatQuery:', error);
throw error;
}
}
/**
* Creates and returns the chat router for conversational AI.
* @param {object} services - The core services of the application.
* @returns {express.Router} The configured router.
*/
module.exports = (services) => {
const router = express.Router();
/**
* Handles conversational queries about the repository
*/
router.post('/', async (req, res) => {
const { query, context_type, include_summary } = req.body;
if (!query) {
return res.status(400).json({ error: 'Query is required' });
}
try {
const result = await handleChatQuery(query, services, context_type);
res.json(result);
} catch (error) {
logger.error('Error in chat route:', error);
res.status(500).json({ error: 'An error occurred during your request.' });
}
});
return router;
};
// Export the handleChatQuery function for use in other routes
module.exports.handleChatQuery = handleChatQuery;