UNPKG

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
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;