@vezlo/assistant-server 2.10.0 → 2.11.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 (43) hide show
  1. package/README.md +1 -0
  2. package/database-schema.sql +44 -0
  3. package/dist/src/bootstrap/initializeServices.d.ts +5 -0
  4. package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
  5. package/dist/src/bootstrap/initializeServices.js +20 -4
  6. package/dist/src/bootstrap/initializeServices.js.map +1 -1
  7. package/dist/src/controllers/ChatController.d.ts +3 -0
  8. package/dist/src/controllers/ChatController.d.ts.map +1 -1
  9. package/dist/src/controllers/ChatController.js +75 -15
  10. package/dist/src/controllers/ChatController.js.map +1 -1
  11. package/dist/src/controllers/DatabaseToolConfigController.d.ts +81 -0
  12. package/dist/src/controllers/DatabaseToolConfigController.d.ts.map +1 -0
  13. package/dist/src/controllers/DatabaseToolConfigController.js +524 -0
  14. package/dist/src/controllers/DatabaseToolConfigController.js.map +1 -0
  15. package/dist/src/controllers/KnowledgeController.js +4 -4
  16. package/dist/src/controllers/KnowledgeController.js.map +1 -1
  17. package/dist/src/migrations/011_create_database_tool_configs.d.ts +4 -0
  18. package/dist/src/migrations/011_create_database_tool_configs.d.ts.map +1 -0
  19. package/dist/src/migrations/011_create_database_tool_configs.js +49 -0
  20. package/dist/src/migrations/011_create_database_tool_configs.js.map +1 -0
  21. package/dist/src/server.js +399 -0
  22. package/dist/src/server.js.map +1 -1
  23. package/dist/src/services/AIService.d.ts +3 -0
  24. package/dist/src/services/AIService.d.ts.map +1 -1
  25. package/dist/src/services/AIService.js +5 -0
  26. package/dist/src/services/AIService.js.map +1 -1
  27. package/dist/src/services/DatabaseToolConfigService.d.ts +133 -0
  28. package/dist/src/services/DatabaseToolConfigService.d.ts.map +1 -0
  29. package/dist/src/services/DatabaseToolConfigService.js +442 -0
  30. package/dist/src/services/DatabaseToolConfigService.js.map +1 -0
  31. package/dist/src/services/DatabaseToolService.d.ts +75 -0
  32. package/dist/src/services/DatabaseToolService.d.ts.map +1 -0
  33. package/dist/src/services/DatabaseToolService.js +299 -0
  34. package/dist/src/services/DatabaseToolService.js.map +1 -0
  35. package/dist/src/services/IntentService.d.ts +12 -1
  36. package/dist/src/services/IntentService.d.ts.map +1 -1
  37. package/dist/src/services/IntentService.js +35 -5
  38. package/dist/src/services/IntentService.js.map +1 -1
  39. package/dist/src/services/ResponseGenerationService.d.ts +5 -3
  40. package/dist/src/services/ResponseGenerationService.d.ts.map +1 -1
  41. package/dist/src/services/ResponseGenerationService.js +29 -4
  42. package/dist/src/services/ResponseGenerationService.js.map +1 -1
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -37,6 +37,7 @@ See [CHANGELOG.md](./CHANGELOG.md) for complete migration guide.
37
37
  - **Human Agent Handoff** - Agent join/leave workflows with realtime status updates and message synchronization
38
38
  - **Advanced RAG System** - Chunk-based semantic search with adjacent retrieval using OpenAI text-embedding-3-large (3072 dims) and pgvector
39
39
  - **Conversation Management** - Persistent conversation history with agent support
40
+ - **Database Tools** - Connect external Supabase databases for natural language data queries ([see docs](./docs/DATABASE_TOOLS.md))
40
41
  - **Slack Integration** - Direct query bot with full AI responses, conversation history, and reaction-based feedback ([setup guide](./docs/SLACK_INTEGRATION.md))
41
42
  - **Feedback System** - Message rating and improvement tracking
42
43
  - **Database Migrations** - Knex.js migration system for schema management
@@ -66,6 +66,10 @@ INSERT INTO knex_migrations (name, batch, migration_time)
66
66
  SELECT '010_add_slack_fields.ts', 1, NOW()
67
67
  WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '010_add_slack_fields.ts');
68
68
 
69
+ INSERT INTO knex_migrations (name, batch, migration_time)
70
+ SELECT '011_create_database_tool_configs.ts', 1, NOW()
71
+ WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '011_create_database_tool_configs.ts');
72
+
69
73
  -- Set migration lock to unlocked (0 = unlocked, 1 = locked)
70
74
  INSERT INTO knex_migrations_lock (index, is_locked)
71
75
  VALUES (1, 0)
@@ -617,3 +621,43 @@ BEGIN
617
621
  RETURN result;
618
622
  END;
619
623
  $$;
624
+
625
+ -- ============================================================================
626
+ -- DATABASE TOOLS SCHEMA (Migration 011)
627
+ -- ============================================================================
628
+
629
+ -- External database configurations
630
+ CREATE TABLE IF NOT EXISTS vezlo_database_tool_configs (
631
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
632
+ company_id BIGINT NOT NULL REFERENCES vezlo_companies(id) ON DELETE CASCADE,
633
+ db_url_encrypted TEXT NOT NULL,
634
+ db_key_encrypted TEXT NOT NULL,
635
+ enabled BOOLEAN DEFAULT true,
636
+ created_at TIMESTAMPTZ DEFAULT NOW(),
637
+ updated_at TIMESTAMPTZ DEFAULT NOW()
638
+ );
639
+
640
+ CREATE INDEX IF NOT EXISTS idx_database_tool_configs_company_id ON vezlo_database_tool_configs(company_id);
641
+
642
+ -- Individual tool configurations
643
+ CREATE TABLE IF NOT EXISTS vezlo_database_tools (
644
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
645
+ config_id UUID NOT NULL REFERENCES vezlo_database_tool_configs(id) ON DELETE CASCADE,
646
+ table_name TEXT NOT NULL,
647
+ tool_name TEXT NOT NULL,
648
+ tool_description TEXT,
649
+ columns JSONB NOT NULL,
650
+ id_column TEXT NOT NULL DEFAULT 'id',
651
+ id_column_type TEXT NOT NULL DEFAULT 'integer',
652
+ enabled BOOLEAN DEFAULT true,
653
+ requires_user_context BOOLEAN DEFAULT false,
654
+ user_filter_column TEXT,
655
+ user_filter_type TEXT,
656
+ user_context_key TEXT,
657
+ created_at TIMESTAMPTZ DEFAULT NOW(),
658
+ updated_at TIMESTAMPTZ DEFAULT NOW(),
659
+ UNIQUE(config_id, table_name)
660
+ );
661
+
662
+ CREATE INDEX IF NOT EXISTS idx_database_tools_config_id ON vezlo_database_tools(config_id);
663
+ CREATE INDEX IF NOT EXISTS idx_database_tools_enabled ON vezlo_database_tools(enabled);
@@ -14,6 +14,8 @@ import { CompanyController } from '../controllers/CompanyController';
14
14
  import { SlackService } from '../services/SlackService';
15
15
  import { SlackController } from '../controllers/SlackController';
16
16
  import { ValidationService } from '../services/ValidationService';
17
+ import { DatabaseToolConfigService } from '../services/DatabaseToolConfigService';
18
+ import { DatabaseToolConfigController } from '../controllers/DatabaseToolConfigController';
17
19
  export interface ServiceInitOptions {
18
20
  supabase: SupabaseClient;
19
21
  tablePrefix?: string;
@@ -32,6 +34,8 @@ export interface InitializedCoreServices {
32
34
  citationService: CitationService;
33
35
  slackService: SlackService;
34
36
  validationService: ValidationService;
37
+ databaseToolService: any;
38
+ databaseToolConfigService: DatabaseToolConfigService;
35
39
  };
36
40
  controllers: {
37
41
  chatController: ChatController;
@@ -40,6 +44,7 @@ export interface InitializedCoreServices {
40
44
  apiKeyController: ApiKeyController;
41
45
  companyController: CompanyController;
42
46
  slackController: SlackController;
47
+ databaseToolConfigController: DatabaseToolConfigController;
43
48
  };
44
49
  config: {
45
50
  chatHistoryLength: number;
@@ -1 +1 @@
1
- {"version":3,"file":"initializeServices.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/initializeServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE;QACR,OAAO,EAAE,cAAc,CAAC;QACxB,aAAa,EAAE,oBAAoB,CAAC;QACpC,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,aAAa,CAAC;QAC7B,cAAc,EAAE,cAAc,CAAC;QAC/B,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;QAC3B,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;IACF,WAAW,EAAE;QACX,cAAc,EAAE,cAAc,CAAC;QAC/B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IACF,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAKD,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,uBAAuB,CA+H3F"}
1
+ {"version":3,"file":"initializeServices.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/initializeServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE;QACR,OAAO,EAAE,cAAc,CAAC;QACxB,aAAa,EAAE,oBAAoB,CAAC;QACpC,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,aAAa,CAAC;QAC7B,cAAc,EAAE,cAAc,CAAC;QAC/B,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;QAC3B,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,mBAAmB,EAAE,GAAG,CAAC;QACzB,yBAAyB,EAAE,yBAAyB,CAAC;KACtD,CAAC;IACF,WAAW,EAAE;QACX,cAAc,EAAE,cAAc,CAAC;QAC/B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,eAAe,EAAE,eAAe,CAAC;QACjC,4BAA4B,EAAE,4BAA4B,CAAC;KAC5D,CAAC;IACF,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAKD,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,uBAAuB,CA8I3F"}
@@ -23,6 +23,9 @@ const RealtimePublisher_1 = require("../services/RealtimePublisher");
23
23
  const SlackService_1 = require("../services/SlackService");
24
24
  const SlackController_1 = require("../controllers/SlackController");
25
25
  const ValidationService_1 = require("../services/ValidationService");
26
+ const DatabaseToolService_1 = require("../services/DatabaseToolService");
27
+ const DatabaseToolConfigService_1 = require("../services/DatabaseToolConfigService");
28
+ const DatabaseToolConfigController_1 = require("../controllers/DatabaseToolConfigController");
26
29
  const DEFAULT_CHAT_HISTORY_LENGTH = 2;
27
30
  const DEFAULT_CONVERSATION_TIMEOUT = 3600000; // 1 hour
28
31
  function getChatHistoryLength() {
@@ -70,6 +73,12 @@ function initializeCoreServices(options) {
70
73
  maxTokens: aiMaxTokens,
71
74
  knowledgeBaseService: knowledgeBase
72
75
  });
76
+ // Initialize Database Tool Config service
77
+ const databaseToolConfigService = new DatabaseToolConfigService_1.DatabaseToolConfigService(supabase);
78
+ // Initialize external database tool service (dynamic)
79
+ const databaseToolService = new DatabaseToolService_1.DatabaseToolService(supabase, databaseToolConfigService);
80
+ aiService.setDatabaseToolService(databaseToolService);
81
+ logger_1.default.info('✅ Dynamic database tool service initialized');
73
82
  // Set V2 service for adjacent chunk retrieval
74
83
  const chatManager = new ChatManager_1.ChatManager({
75
84
  aiService,
@@ -83,7 +92,8 @@ function initializeCoreServices(options) {
83
92
  openaiApiKey: process.env.OPENAI_API_KEY,
84
93
  model: aiModel,
85
94
  assistantName: process.env.ASSISTANT_NAME,
86
- organizationName: process.env.ORGANIZATION_NAME
95
+ organizationName: process.env.ORGANIZATION_NAME,
96
+ databaseToolsEnabled: process.env.EXTERNAL_DB_ENABLED === 'true'
87
97
  });
88
98
  // Initialize realtime publisher if env vars are available
89
99
  let realtimePublisher;
@@ -100,7 +110,8 @@ function initializeCoreServices(options) {
100
110
  historyLength: resolvedHistoryLength,
101
111
  intentService,
102
112
  realtimePublisher,
103
- validationService
113
+ validationService,
114
+ databaseToolService
104
115
  });
105
116
  const knowledgeController = new KnowledgeController_1.KnowledgeController(knowledgeBase, aiService, citationService);
106
117
  const authController = new AuthController_1.AuthController(supabase);
@@ -111,6 +122,8 @@ function initializeCoreServices(options) {
111
122
  // Initialize Slack integration
112
123
  const slackService = new SlackService_1.SlackService();
113
124
  const slackController = new SlackController_1.SlackController(slackService, chatManager, storage, resolvedHistoryLength);
125
+ // Initialize Database Tool Config controller (pass both services for cache management)
126
+ const databaseToolConfigController = new DatabaseToolConfigController_1.DatabaseToolConfigController(databaseToolConfigService, databaseToolService);
114
127
  return {
115
128
  services: {
116
129
  storage,
@@ -121,7 +134,9 @@ function initializeCoreServices(options) {
121
134
  apiKeyService,
122
135
  companyService,
123
136
  slackService,
124
- validationService
137
+ databaseToolService,
138
+ validationService,
139
+ databaseToolConfigService
125
140
  },
126
141
  controllers: {
127
142
  chatController,
@@ -129,7 +144,8 @@ function initializeCoreServices(options) {
129
144
  authController,
130
145
  apiKeyController,
131
146
  companyController,
132
- slackController
147
+ slackController,
148
+ databaseToolConfigController
133
149
  },
134
150
  config: {
135
151
  chatHistoryLength: resolvedHistoryLength
@@ -1 +1 @@
1
- {"version":3,"file":"initializeServices.js","sourceRoot":"","sources":["../../../src/bootstrap/initializeServices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initializeServices.js","sourceRoot":"","sources":["../../../src/bootstrap/initializeServices.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { AuthenticatedRequest } from '../middleware/auth';
6
6
  import { IntentService } from '../services/IntentService';
7
7
  import { RealtimePublisher } from '../services/RealtimePublisher';
8
8
  import { ValidationService } from '../services/ValidationService';
9
+ import { DatabaseToolService } from '../services/DatabaseToolService';
9
10
  export declare class ChatController {
10
11
  private chatManager;
11
12
  private storage;
@@ -16,11 +17,13 @@ export declare class ChatController {
16
17
  private responseGenerationService;
17
18
  private responseStreamingService;
18
19
  private validationService?;
20
+ private databaseToolService?;
19
21
  constructor(chatManager: ChatManager, storage: UnifiedStorage, supabase: SupabaseClient, options?: {
20
22
  historyLength?: number;
21
23
  intentService?: IntentService;
22
24
  realtimePublisher?: RealtimePublisher;
23
25
  validationService?: ValidationService;
26
+ databaseToolService?: DatabaseToolService;
24
27
  });
25
28
  createConversation(req: AuthenticatedRequest, res: Response): Promise<void>;
26
29
  createUserMessage(req: Request, res: Response): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAG5C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;KAAO;IAsBjJ,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4I3E,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyF7D,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgMzE,eAAe,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDxE,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DhF,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAuGzE,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoG1E,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E5E,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmGzE,oBAAoB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoE7E,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9D,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEjF,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAmCzE,2BAA2B;YA4B3B,oBAAoB;CA4EnC"}
1
+ {"version":3,"file":"ChatController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,10 @@ class ChatController {
17
17
  this.intentService = options.intentService;
18
18
  this.realtimePublisher = options.realtimePublisher;
19
19
  this.validationService = options.validationService;
20
+ this.databaseToolService = options.databaseToolService;
20
21
  // Initialize services
21
22
  const aiService = chatManager.aiService;
22
- this.responseGenerationService = new ResponseGenerationService_1.ResponseGenerationService(this.intentService, aiService, this.chatHistoryLength);
23
+ this.responseGenerationService = new ResponseGenerationService_1.ResponseGenerationService(this.intentService, aiService, this.chatHistoryLength, this.databaseToolService);
23
24
  this.responseStreamingService = new ResponseStreamingService_1.ResponseStreamingService();
24
25
  }
25
26
  // Create a new conversation
@@ -152,7 +153,7 @@ class ChatController {
152
153
  // Create a user message in a conversation
153
154
  async createUserMessage(req, res) {
154
155
  try {
155
- const { uuid } = req.params;
156
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
156
157
  const { content } = req.body;
157
158
  if (!content) {
158
159
  res.status(400).json({ error: 'content is required' });
@@ -229,7 +230,7 @@ class ChatController {
229
230
  }
230
231
  // Generate AI response for a user message
231
232
  async generateResponse(req, res) {
232
- const { uuid } = req.params;
233
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
233
234
  if (!uuid) {
234
235
  res.status(400).json({ error: 'Message UUID is required' });
235
236
  return;
@@ -245,6 +246,8 @@ class ChatController {
245
246
  }
246
247
  const conversationId = userMessage.conversationId;
247
248
  const userMessageContent = userMessage.content;
249
+ // Extract user_context from request body (optional)
250
+ const userContext = req.body?.user_context || {};
248
251
  // Get conversation context (recent messages)
249
252
  // Exclude the current user message to avoid duplication (it's added separately as the query)
250
253
  const allMessages = await this.chatManager.getRecentMessages(conversationId, this.chatHistoryLength + 1);
@@ -261,15 +264,72 @@ class ChatController {
261
264
  }
262
265
  // Set up Server-Sent Events (SSE) headers for streaming
263
266
  this.responseStreamingService.setupSSEHeaders(res);
264
- // Run intent classification to decide handling strategy
265
- const intentResult = await this.responseGenerationService.classifyIntent(userMessageContent, messages);
267
+ // Run intent classification to decide handling strategy (with dynamic tools)
268
+ const companyId = conversation?.organizationId ? parseInt(String(conversation.organizationId), 10) : undefined;
269
+ const intentResult = await this.responseGenerationService.classifyIntent(userMessageContent, messages, companyId);
266
270
  const intentResponse = this.responseGenerationService.handleIntentResult(intentResult, userMessageContent);
267
271
  let accumulatedContent = '';
268
272
  let assistantMessageId;
269
273
  let sources = [];
270
274
  try {
271
- // If intent returned a response (non-knowledge intent), stream it
272
- if (intentResponse) {
275
+ // Handle database_tool intent separately
276
+ if (intentResult.intent === 'database_tool' && intentResult.toolCall) {
277
+ logger_1.default.info(`🔧 Database tool call detected: ${intentResult.toolCall.toolName}`);
278
+ if (!this.databaseToolService || !companyId) {
279
+ logger_1.default.warn('⚠️ Database tool requested but service not available or no company ID');
280
+ await this.responseStreamingService.streamTextContent('I apologize, but I cannot access your data at the moment. Please contact support.', res);
281
+ accumulatedContent = 'I apologize, but I cannot access your data at the moment. Please contact support.';
282
+ }
283
+ else {
284
+ // Execute tool with dynamic parameters and user context
285
+ logger_1.default.info(`🔧 Executing tool: ${intentResult.toolCall.toolName} for company: ${companyId}`);
286
+ const toolResult = await this.databaseToolService.executeTool(intentResult.toolCall.toolName, intentResult.toolCall.parameters, companyId, userContext // Pass user context for filtering
287
+ );
288
+ // Check if tool execution was successful
289
+ if (!toolResult.success) {
290
+ logger_1.default.error(`❌ Tool execution failed: ${toolResult.error}`);
291
+ await this.responseStreamingService.streamTextContent('I apologize, but I encountered an error accessing your data. Please try again or contact support.', res);
292
+ accumulatedContent = 'I apologize, but I encountered an error accessing your data. Please try again or contact support.';
293
+ }
294
+ else {
295
+ // Format result with LLM - use direct OpenAI call to bypass system prompt restrictions
296
+ logger_1.default.info('🔧 Formatting tool result with LLM');
297
+ const aiService = this.responseGenerationService.getAIService();
298
+ if (!aiService) {
299
+ throw new Error('AI service not available');
300
+ }
301
+ // Direct OpenAI call bypassing the restrictive system prompt
302
+ const openai = aiService.openai;
303
+ const modelToUse = process.env.AI_MODEL || 'gpt-4o-mini';
304
+ const completion = await openai.chat.completions.create({
305
+ model: modelToUse,
306
+ messages: [
307
+ {
308
+ role: 'system',
309
+ content: 'You are a helpful assistant. Format database query results naturally and conversationally for the user.'
310
+ },
311
+ {
312
+ role: 'user',
313
+ content: `User asked: "${userMessageContent}"
314
+
315
+ Database returned:
316
+ ${JSON.stringify(toolResult.data || toolResult, null, 2)}
317
+
318
+ Provide a natural, friendly response to the user's question using this data.`
319
+ }
320
+ ],
321
+ temperature: 0.7,
322
+ max_tokens: 500
323
+ });
324
+ const formattedContent = completion.choices[0]?.message?.content || 'Here is your information.';
325
+ logger_1.default.info('📤 Streaming database tool response');
326
+ await this.responseStreamingService.streamTextContent(formattedContent, res);
327
+ accumulatedContent = formattedContent;
328
+ }
329
+ }
330
+ }
331
+ // If intent returned a response (non-knowledge/non-tool intent), stream it
332
+ else if (intentResponse) {
273
333
  logger_1.default.info(`📤 Streaming intent response for: ${intentResult.intent}`);
274
334
  await this.responseStreamingService.streamTextContent(intentResponse, res);
275
335
  accumulatedContent = intentResponse;
@@ -384,7 +444,7 @@ class ChatController {
384
444
  res.status(401).json({ error: 'Authentication required' });
385
445
  return;
386
446
  }
387
- const { uuid } = req.params;
447
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
388
448
  const conversation = await this.storage.getConversation(uuid);
389
449
  if (!conversation) {
390
450
  res.status(404).json({ error: 'Conversation not found' });
@@ -433,7 +493,7 @@ class ChatController {
433
493
  res.status(401).json({ error: 'Authentication required' });
434
494
  return;
435
495
  }
436
- const { uuid } = req.params;
496
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
437
497
  const page = Math.max(1, parseInt(req.query.page || '1', 10) || 1);
438
498
  const pageSizeRaw = parseInt(req.query.page_size || '50', 10);
439
499
  const pageSize = Math.min(200, Math.max(1, isNaN(pageSizeRaw) ? 50 : pageSizeRaw));
@@ -487,7 +547,7 @@ class ChatController {
487
547
  res.status(401).json({ error: 'Authentication required' });
488
548
  return;
489
549
  }
490
- const { uuid } = req.params;
550
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
491
551
  const conversation = await this.storage.getConversation(uuid);
492
552
  if (!conversation) {
493
553
  res.status(404).json({ error: 'Conversation not found' });
@@ -575,7 +635,7 @@ class ChatController {
575
635
  res.status(401).json({ error: 'Authentication required' });
576
636
  return;
577
637
  }
578
- const { uuid } = req.params;
638
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
579
639
  const conversation = await this.storage.getConversation(uuid);
580
640
  if (!conversation) {
581
641
  res.status(404).json({ error: 'Conversation not found' });
@@ -661,7 +721,7 @@ class ChatController {
661
721
  res.status(401).json({ error: 'Authentication required' });
662
722
  return;
663
723
  }
664
- const { uuid } = req.params;
724
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
665
725
  const conversation = await this.storage.getConversation(uuid);
666
726
  if (!conversation) {
667
727
  res.status(404).json({ error: 'Conversation not found' });
@@ -724,7 +784,7 @@ class ChatController {
724
784
  res.status(401).json({ error: 'Authentication required' });
725
785
  return;
726
786
  }
727
- const { uuid } = req.params;
787
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
728
788
  const { content } = req.body;
729
789
  if (!content) {
730
790
  res.status(400).json({ error: 'content is required' });
@@ -863,7 +923,7 @@ class ChatController {
863
923
  // Delete conversation
864
924
  async deleteConversation(req, res) {
865
925
  try {
866
- const { uuid } = req.params;
926
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
867
927
  const success = await this.storage.deleteConversation(uuid);
868
928
  if (!success) {
869
929
  res.status(404).json({ error: 'Conversation not found or could not be deleted' });
@@ -938,7 +998,7 @@ class ChatController {
938
998
  // Delete/undo message feedback - Public API
939
999
  async deleteFeedback(req, res) {
940
1000
  try {
941
- const { uuid } = req.params;
1001
+ const uuid = Array.isArray(req.params.uuid) ? req.params.uuid[0] : req.params.uuid;
942
1002
  if (!uuid) {
943
1003
  res.status(400).json({ error: 'Feedback UUID is required' });
944
1004
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatController.js","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatController.js","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}