@vezlo/assistant-server 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +2 -1
  2. package/database-schema.sql +7 -0
  3. package/dist/src/bootstrap/initializeServices.d.ts +6 -0
  4. package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
  5. package/dist/src/bootstrap/initializeServices.js +13 -3
  6. package/dist/src/bootstrap/initializeServices.js.map +1 -1
  7. package/dist/src/controllers/ChatController.d.ts +2 -12
  8. package/dist/src/controllers/ChatController.d.ts.map +1 -1
  9. package/dist/src/controllers/ChatController.js +38 -192
  10. package/dist/src/controllers/ChatController.js.map +1 -1
  11. package/dist/src/controllers/KnowledgeController.d.ts +8 -1
  12. package/dist/src/controllers/KnowledgeController.d.ts.map +1 -1
  13. package/dist/src/controllers/KnowledgeController.js +38 -1
  14. package/dist/src/controllers/KnowledgeController.js.map +1 -1
  15. package/dist/src/controllers/SlackController.d.ts +36 -0
  16. package/dist/src/controllers/SlackController.d.ts.map +1 -0
  17. package/dist/src/controllers/SlackController.js +200 -0
  18. package/dist/src/controllers/SlackController.js.map +1 -0
  19. package/dist/src/migrations/010_add_slack_fields.d.ts +4 -0
  20. package/dist/src/migrations/010_add_slack_fields.d.ts.map +1 -0
  21. package/dist/src/migrations/010_add_slack_fields.js +27 -0
  22. package/dist/src/migrations/010_add_slack_fields.js.map +1 -0
  23. package/dist/src/server.js +85 -1
  24. package/dist/src/server.js.map +1 -1
  25. package/dist/src/services/CitationService.d.ts +14 -0
  26. package/dist/src/services/CitationService.d.ts.map +1 -0
  27. package/dist/src/services/CitationService.js +76 -0
  28. package/dist/src/services/CitationService.js.map +1 -0
  29. package/dist/src/services/ResponseGenerationService.d.ts +65 -0
  30. package/dist/src/services/ResponseGenerationService.d.ts.map +1 -0
  31. package/dist/src/services/ResponseGenerationService.js +165 -0
  32. package/dist/src/services/ResponseGenerationService.js.map +1 -0
  33. package/dist/src/services/ResponseStreamingService.d.ts +33 -0
  34. package/dist/src/services/ResponseStreamingService.d.ts.map +1 -0
  35. package/dist/src/services/ResponseStreamingService.js +114 -0
  36. package/dist/src/services/ResponseStreamingService.js.map +1 -0
  37. package/dist/src/services/SlackService.d.ts +16 -0
  38. package/dist/src/services/SlackService.d.ts.map +1 -0
  39. package/dist/src/services/SlackService.js +133 -0
  40. package/dist/src/services/SlackService.js.map +1 -0
  41. package/dist/src/storage/ConversationRepository.d.ts +1 -0
  42. package/dist/src/storage/ConversationRepository.d.ts.map +1 -1
  43. package/dist/src/storage/ConversationRepository.js +39 -9
  44. package/dist/src/storage/ConversationRepository.js.map +1 -1
  45. package/dist/src/types/index.d.ts +2 -0
  46. package/dist/src/types/index.d.ts.map +1 -1
  47. package/env.example +5 -0
  48. package/package.json +3 -2
@@ -114,10 +114,11 @@ let knowledgeController;
114
114
  let authController;
115
115
  let apiKeyController;
116
116
  let companyController;
117
+ let slackController;
117
118
  async function initializeServices() {
118
119
  try {
119
120
  logger_1.default.info('Initializing Vezlo services...');
120
- const { controllers } = (0, initializeServices_1.initializeCoreServices)({
121
+ const { controllers, services } = (0, initializeServices_1.initializeCoreServices)({
121
122
  supabase,
122
123
  tablePrefix: 'vezlo',
123
124
  knowledgeTableName: 'vezlo_knowledge_items'
@@ -128,6 +129,7 @@ async function initializeServices() {
128
129
  authController.setRealtimePublisher(realtimePublisher);
129
130
  apiKeyController = controllers.apiKeyController;
130
131
  companyController = controllers.companyController;
132
+ slackController = controllers.slackController;
131
133
  logger_1.default.info('All services initialized successfully');
132
134
  }
133
135
  catch (error) {
@@ -678,6 +680,49 @@ function setupRoutes() {
678
680
  * description: Internal server error
679
681
  */
680
682
  app.post('/api/conversations/:uuid/archive', (0, auth_1.authenticateUser)(supabase), (req, res) => chatController.archiveConversation(req, res));
683
+ /**
684
+ * @swagger
685
+ * /api/knowledge/citations/{uuid}/context:
686
+ * get:
687
+ * summary: Get citation context for a knowledge item
688
+ * description: Public API to fetch contextual content for a knowledge document citation. Returns full content if available in knowledge_items table, otherwise fetches relevant chunks with ±2 adjacent chunks for context.
689
+ * tags: [Knowledge]
690
+ * parameters:
691
+ * - in: path
692
+ * name: uuid
693
+ * required: true
694
+ * schema:
695
+ * type: string
696
+ * description: Knowledge item UUID
697
+ * - in: query
698
+ * name: chunk_indices
699
+ * required: true
700
+ * schema:
701
+ * type: string
702
+ * description: Comma-separated list of chunk indices to retrieve (e.g., "0,1,2")
703
+ * responses:
704
+ * 200:
705
+ * description: Citation context retrieved successfully
706
+ * content:
707
+ * application/json:
708
+ * schema:
709
+ * type: object
710
+ * properties:
711
+ * document_title:
712
+ * type: string
713
+ * document_type:
714
+ * type: string
715
+ * content:
716
+ * type: string
717
+ * description: Full document content or combined chunks with adjacent context
718
+ * 400:
719
+ * description: Invalid request (missing chunk_indices parameter)
720
+ * 404:
721
+ * description: Document not found or no chunks available
722
+ * 500:
723
+ * description: Internal server error
724
+ */
725
+ app.get('/api/knowledge/citations/:uuid/context', (req, res) => knowledgeController.getCitationContext(req, res));
681
726
  /**
682
727
  * @swagger
683
728
  * /api/conversations/{uuid}:
@@ -1423,6 +1468,45 @@ function setupRoutes() {
1423
1468
  });
1424
1469
  }
1425
1470
  }));
1471
+ // Slack Integration Routes
1472
+ /**
1473
+ * @swagger
1474
+ * /api/slack/events:
1475
+ * post:
1476
+ * summary: Slack events webhook
1477
+ * description: Receives Slack events (app mentions, DMs)
1478
+ * tags: [Slack]
1479
+ * requestBody:
1480
+ * required: true
1481
+ * content:
1482
+ * application/json:
1483
+ * schema:
1484
+ * type: object
1485
+ * responses:
1486
+ * 200:
1487
+ * description: Event processed
1488
+ * 400:
1489
+ * description: Invalid request
1490
+ */
1491
+ app.post('/api/slack/events', express_1.default.json(), (req, res) => slackController.handleEvents(req, res));
1492
+ /**
1493
+ * @swagger
1494
+ * /api/slack/commands:
1495
+ * post:
1496
+ * summary: Slack slash commands
1497
+ * description: Receives Slack slash commands
1498
+ * tags: [Slack]
1499
+ * requestBody:
1500
+ * required: true
1501
+ * content:
1502
+ * application/x-www-form-urlencoded:
1503
+ * schema:
1504
+ * type: object
1505
+ * responses:
1506
+ * 200:
1507
+ * description: Command processed
1508
+ */
1509
+ app.post('/api/slack/commands', express_1.default.urlencoded({ extended: true }), (req, res) => slackController.handleCommands(req, res));
1426
1510
  // Error handling middleware (must be after all routes)
1427
1511
  app.use(errorHandler_1.errorHandler);
1428
1512
  app.use(errorHandler_1.notFoundHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { SupabaseClient } from '@supabase/supabase-js';
2
+ export declare class CitationService {
3
+ private supabase;
4
+ private tablePrefix;
5
+ private adjacentChunks;
6
+ constructor(supabase: SupabaseClient, tablePrefix?: string);
7
+ getContext(documentUuid: string, chunkIndices: number[]): Promise<{
8
+ document_title: string;
9
+ document_type: string;
10
+ file_type?: string;
11
+ content: string;
12
+ } | null>;
13
+ }
14
+ //# sourceMappingURL=CitationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CitationService.d.ts","sourceRoot":"","sources":["../../../src/services/CitationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAa;gBAEvB,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAE,MAAgB;IAK7D,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtE,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC;CAsEV"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CitationService = void 0;
7
+ const logger_1 = __importDefault(require("../config/logger"));
8
+ class CitationService {
9
+ constructor(supabase, tablePrefix = 'vezlo') {
10
+ this.adjacentChunks = 2;
11
+ this.supabase = supabase;
12
+ this.tablePrefix = tablePrefix;
13
+ }
14
+ async getContext(documentUuid, chunkIndices) {
15
+ try {
16
+ // Get document with full content
17
+ const { data: document, error: docError } = await this.supabase
18
+ .from(`${this.tablePrefix}_knowledge_items`)
19
+ .select('uuid, title, type, content, file_type')
20
+ .eq('uuid', documentUuid)
21
+ .single();
22
+ if (docError || !document) {
23
+ logger_1.default.error('Document not found:', docError);
24
+ return null;
25
+ }
26
+ // If document has full content, return it directly
27
+ if (document.content) {
28
+ return {
29
+ document_title: document.title,
30
+ document_type: document.type,
31
+ file_type: document.file_type || undefined,
32
+ content: document.content
33
+ };
34
+ }
35
+ // Fallback: If no full content, fetch relevant chunks with context
36
+ const { data: docData, error: idError } = await this.supabase
37
+ .from(`${this.tablePrefix}_knowledge_items`)
38
+ .select('id')
39
+ .eq('uuid', documentUuid)
40
+ .single();
41
+ if (idError || !docData) {
42
+ return null;
43
+ }
44
+ // Calculate range with adjacent chunks for context
45
+ const minIndex = Math.max(0, Math.min(...chunkIndices) - this.adjacentChunks);
46
+ const maxIndex = Math.max(...chunkIndices) + this.adjacentChunks;
47
+ logger_1.default.info(`📚 Fetching chunks ${minIndex}-${maxIndex} (relevant: ${chunkIndices.join(',')}, adjacent: ±${this.adjacentChunks})`);
48
+ // Fetch only relevant chunks with adjacent context
49
+ const { data: chunks, error: chunksError } = await this.supabase
50
+ .from(`${this.tablePrefix}_knowledge_chunks`)
51
+ .select('chunk_text, chunk_index')
52
+ .eq('document_id', docData.id)
53
+ .gte('chunk_index', minIndex)
54
+ .lte('chunk_index', maxIndex)
55
+ .order('chunk_index', { ascending: true });
56
+ if (chunksError) {
57
+ logger_1.default.error('Failed to fetch chunks:', chunksError);
58
+ return null;
59
+ }
60
+ // Combine chunks with context
61
+ const combinedContent = chunks?.map(c => c.chunk_text).join('\n\n') || '';
62
+ return {
63
+ document_title: document.title,
64
+ document_type: document.type,
65
+ file_type: document.file_type || undefined,
66
+ content: combinedContent
67
+ };
68
+ }
69
+ catch (error) {
70
+ logger_1.default.error('Citation context error:', error);
71
+ return null;
72
+ }
73
+ }
74
+ }
75
+ exports.CitationService = CitationService;
76
+ //# sourceMappingURL=CitationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CitationService.js","sourceRoot":"","sources":["../../../src/services/CitationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { IntentService, IntentClassificationResult } from './IntentService';
2
+ import { AIService } from './AIService';
3
+ import { ChatMessage } from '../types';
4
+ export interface KnowledgeSearchResult {
5
+ knowledgeResults: string | null;
6
+ sources: Array<{
7
+ document_uuid: string;
8
+ document_title: string;
9
+ chunk_indices: number[];
10
+ }>;
11
+ }
12
+ export interface GenerationResult {
13
+ type: 'intent' | 'knowledge';
14
+ intentResponse?: string;
15
+ knowledgeContext?: {
16
+ conversationHistory: Array<{
17
+ role: 'user' | 'assistant' | 'system';
18
+ content: string;
19
+ }>;
20
+ knowledgeResults?: string;
21
+ };
22
+ sources?: Array<{
23
+ document_uuid: string;
24
+ document_title: string;
25
+ chunk_indices: number[];
26
+ }>;
27
+ }
28
+ export declare class ResponseGenerationService {
29
+ private intentService?;
30
+ private aiService?;
31
+ private chatHistoryLength;
32
+ constructor(intentService: IntentService | undefined, aiService: AIService | undefined, chatHistoryLength: number);
33
+ /**
34
+ * Classify user intent
35
+ */
36
+ classifyIntent(message: string, history: ChatMessage[]): Promise<IntentClassificationResult>;
37
+ /**
38
+ * Handle intent classification result
39
+ * Returns response content if non-knowledge intent, null if knowledge intent
40
+ */
41
+ handleIntentResult(result: IntentClassificationResult, userMessageContent: string): string | null;
42
+ /**
43
+ * Search knowledge base and extract sources
44
+ */
45
+ searchKnowledgeBase(query: string, companyId?: number): Promise<KnowledgeSearchResult>;
46
+ /**
47
+ * Build chat context for AI generation
48
+ */
49
+ buildChatContext(messages: ChatMessage[], knowledgeResults?: string | null): {
50
+ conversationHistory: Array<{
51
+ role: 'user' | 'assistant' | 'system';
52
+ content: string;
53
+ }>;
54
+ knowledgeResults?: string;
55
+ };
56
+ /**
57
+ * Get AI service for streaming
58
+ */
59
+ getAIService(): AIService | undefined;
60
+ /**
61
+ * Get fallback response for intent
62
+ */
63
+ private getFallbackResponse;
64
+ }
65
+ //# sourceMappingURL=ResponseGenerationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseGenerationService.d.ts","sourceRoot":"","sources":["../../../src/services/ResponseGenerationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE;QACjB,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,iBAAiB,CAAS;gBAGhC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,iBAAiB,EAAE,MAAM;IAO3B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkBlG;;;OAGG;IACH,kBAAkB,CAChB,MAAM,EAAE,0BAA0B,EAClC,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI;IAmBhB;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAsFjC;;OAEG;IACH,gBAAgB,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B;QACD,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAUD;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ResponseGenerationService = void 0;
7
+ const logger_1 = __importDefault(require("../config/logger"));
8
+ class ResponseGenerationService {
9
+ constructor(intentService, aiService, chatHistoryLength) {
10
+ this.intentService = intentService;
11
+ this.aiService = aiService;
12
+ this.chatHistoryLength = chatHistoryLength;
13
+ }
14
+ /**
15
+ * Classify user intent
16
+ */
17
+ async classifyIntent(message, history) {
18
+ if (!this.intentService) {
19
+ return {
20
+ intent: 'knowledge',
21
+ needsGuardrail: false,
22
+ contactEmail: null
23
+ };
24
+ }
25
+ const resolvedHistory = Array.isArray(history) ? history : [];
26
+ logger_1.default.info('🧭 Classifying user intent...');
27
+ return this.intentService.classify({
28
+ message,
29
+ conversationHistory: resolvedHistory
30
+ });
31
+ }
32
+ /**
33
+ * Handle intent classification result
34
+ * Returns response content if non-knowledge intent, null if knowledge intent
35
+ */
36
+ handleIntentResult(result, userMessageContent) {
37
+ if (result.needsGuardrail && result.intent !== 'guardrail') {
38
+ logger_1.default.info('🛡️ Guardrail triggered');
39
+ return `I can help with documentation or implementation guidance, but I can't share credentials or confidential configuration. Please contact your system administrator or support for access.`;
40
+ }
41
+ logger_1.default.info(`🧾 Intent result: ${result.intent}${result.needsGuardrail ? ' (guardrail triggered)' : ''}`);
42
+ // For non-knowledge intents, return the response content to be streamed
43
+ if (result.intent !== 'knowledge') {
44
+ const responseContent = result.response || this.getFallbackResponse(result.intent);
45
+ return responseContent;
46
+ }
47
+ // Knowledge intent - proceed to RAG flow (return null to indicate streaming will happen later)
48
+ logger_1.default.info('📚 Intent requires knowledge lookup; proceeding with RAG flow.');
49
+ return null;
50
+ }
51
+ /**
52
+ * Search knowledge base and extract sources
53
+ */
54
+ async searchKnowledgeBase(query, companyId) {
55
+ const sources = [];
56
+ let knowledgeResults = null;
57
+ const aiServiceAny = this.aiService;
58
+ if (!aiServiceAny || !aiServiceAny.knowledgeBaseService) {
59
+ logger_1.default.warn('⚠️ AI service or knowledge base service not available');
60
+ return { knowledgeResults: null, sources: [] };
61
+ }
62
+ try {
63
+ logger_1.default.info(`🔍 Searching KB: query="${query.substring(0, 50)}...", companyId=${companyId}`);
64
+ const searchResults = await aiServiceAny.knowledgeBaseService.search(query, {
65
+ limit: 5,
66
+ company_id: companyId
67
+ });
68
+ logger_1.default.info(`📊 Found knowledge base results: ${searchResults.length}`);
69
+ if (searchResults.length > 0) {
70
+ knowledgeResults = '\n\nRelevant information from knowledge base:\n';
71
+ searchResults.forEach((result) => {
72
+ const title = result.title || 'Untitled';
73
+ const content = result.content || '';
74
+ if (content.trim()) {
75
+ knowledgeResults += `- ${title}: ${content}\n`;
76
+ // Extract chunk indices from metadata.chunk_range (e.g., "0-2" -> [0,1,2])
77
+ let chunkIndices = [];
78
+ if (result.metadata?.chunk_range) {
79
+ const [start, end] = result.metadata.chunk_range.split('-').map((n) => parseInt(n, 10));
80
+ if (!isNaN(start) && !isNaN(end)) {
81
+ for (let i = start; i <= end; i++) {
82
+ chunkIndices.push(i);
83
+ }
84
+ }
85
+ }
86
+ // Add to sources array (deduplicate by document_uuid)
87
+ if (!sources.find(s => s.document_uuid === result.id)) {
88
+ sources.push({
89
+ document_uuid: result.id,
90
+ document_title: title,
91
+ chunk_indices: chunkIndices
92
+ });
93
+ }
94
+ else {
95
+ const existing = sources.find(s => s.document_uuid === result.id);
96
+ if (existing) {
97
+ // Merge chunk indices
98
+ chunkIndices.forEach(idx => {
99
+ if (!existing.chunk_indices.includes(idx)) {
100
+ existing.chunk_indices.push(idx);
101
+ }
102
+ });
103
+ }
104
+ }
105
+ }
106
+ });
107
+ // Verify we actually have meaningful content (not just the header)
108
+ const headerLength = '\n\nRelevant information from knowledge base:\n'.length;
109
+ if (knowledgeResults.length > headerLength + 10) {
110
+ logger_1.default.info(`✅ Knowledge context prepared (${knowledgeResults.length} chars, ${searchResults.length} results)`);
111
+ logger_1.default.info(`📝 Knowledge preview: ${knowledgeResults.substring(0, 200)}...`);
112
+ }
113
+ else {
114
+ logger_1.default.warn(`⚠️ Knowledge results found but content is empty or too short (${knowledgeResults.length} chars), treating as no results`);
115
+ knowledgeResults = '';
116
+ }
117
+ }
118
+ else {
119
+ knowledgeResults = '';
120
+ logger_1.default.info('⚠️ No knowledge base results found; will return appropriate fallback response');
121
+ }
122
+ }
123
+ catch (error) {
124
+ console.error('❌ Failed to search knowledge base:', error);
125
+ logger_1.default.error('Failed to search knowledge base:', error);
126
+ knowledgeResults = null;
127
+ }
128
+ return { knowledgeResults, sources };
129
+ }
130
+ /**
131
+ * Build chat context for AI generation
132
+ */
133
+ buildChatContext(messages, knowledgeResults) {
134
+ return {
135
+ conversationHistory: messages.map(msg => ({
136
+ role: msg.role,
137
+ content: msg.content
138
+ })),
139
+ knowledgeResults: knowledgeResults ?? undefined
140
+ };
141
+ }
142
+ /**
143
+ * Get AI service for streaming
144
+ */
145
+ getAIService() {
146
+ return this.aiService;
147
+ }
148
+ /**
149
+ * Get fallback response for intent
150
+ */
151
+ getFallbackResponse(intent) {
152
+ const fallbacks = {
153
+ greeting: 'Hello! How can I help you today?',
154
+ acknowledgment: "You're welcome! Let me know if you need anything else.",
155
+ personality: `I'm ${process.env.ASSISTANT_NAME || 'AI Assistant'}, your AI assistant for ${process.env.ORGANIZATION_NAME || 'Your Organization'}.`,
156
+ clarification: "I'm not sure I understood. Could you clarify what you need help with?",
157
+ guardrail: "I can help with documentation or implementation guidance, but I can't share credentials or confidential configuration.",
158
+ human_support_request: "I'd be happy to connect you with our support team. Could you please provide your email address?",
159
+ human_support_email: "Thank you! Our support team will reach out to you shortly."
160
+ };
161
+ return fallbacks[intent] || "I'm here to help. What would you like to know?";
162
+ }
163
+ }
164
+ exports.ResponseGenerationService = ResponseGenerationService;
165
+ //# sourceMappingURL=ResponseGenerationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseGenerationService.js","sourceRoot":"","sources":["../../../src/services/ResponseGenerationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Response } from 'express';
2
+ export declare class ResponseStreamingService {
3
+ /**
4
+ * Stream text content word by word to simulate streaming
5
+ * This ensures consistent SSE format for all responses
6
+ */
7
+ streamTextContent(content: string, res: Response): Promise<void>;
8
+ /**
9
+ * Stream AI response chunks with source handling
10
+ */
11
+ streamAIResponse(stream: AsyncGenerator<{
12
+ chunk: string;
13
+ done: boolean;
14
+ fullContent?: string;
15
+ }, void, unknown>, res: Response, sources?: Array<{
16
+ document_uuid: string;
17
+ document_title: string;
18
+ chunk_indices: number[];
19
+ }>, knowledgeResults?: string | null): Promise<string>;
20
+ /**
21
+ * Send completion event
22
+ */
23
+ sendCompletionEvent(res: Response, messageUuid: string, parentMessageUuid: string | undefined, createdAt: Date): void;
24
+ /**
25
+ * Send error event
26
+ */
27
+ sendErrorEvent(res: Response, error: string, message?: string): void;
28
+ /**
29
+ * Setup SSE headers
30
+ */
31
+ setupSSEHeaders(res: Response): void;
32
+ }
33
+ //# sourceMappingURL=ResponseStreamingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseStreamingService.d.ts","sourceRoot":"","sources":["../../../src/services/ResponseStreamingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,qBAAa,wBAAwB;IACnC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtE;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,cAAc,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC7F,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,EACF,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;IAiDlB;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI;IAWrH;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IASpE;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;CAMrC"}