@vezlo/assistant-server 2.11.1 → 2.13.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 (82) hide show
  1. package/README.md +25 -1
  2. package/database-schema.sql +22 -0
  3. package/dist/src/bootstrap/initializeServices.d.ts +10 -0
  4. package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
  5. package/dist/src/bootstrap/initializeServices.js +25 -3
  6. package/dist/src/bootstrap/initializeServices.js.map +1 -1
  7. package/dist/src/config/defaultAISettings.d.ts +20 -0
  8. package/dist/src/config/defaultAISettings.d.ts.map +1 -0
  9. package/dist/src/config/defaultAISettings.js +52 -0
  10. package/dist/src/config/defaultAISettings.js.map +1 -0
  11. package/dist/src/controllers/AISettingsController.d.ts +22 -0
  12. package/dist/src/controllers/AISettingsController.d.ts.map +1 -0
  13. package/dist/src/controllers/AISettingsController.js +115 -0
  14. package/dist/src/controllers/AISettingsController.js.map +1 -0
  15. package/dist/src/controllers/AccountController.d.ts +20 -0
  16. package/dist/src/controllers/AccountController.d.ts.map +1 -0
  17. package/dist/src/controllers/AccountController.js +135 -0
  18. package/dist/src/controllers/AccountController.js.map +1 -0
  19. package/dist/src/controllers/ApiKeyController.d.ts.map +1 -1
  20. package/dist/src/controllers/ApiKeyController.js +2 -22
  21. package/dist/src/controllers/ApiKeyController.js.map +1 -1
  22. package/dist/src/controllers/ChatController.d.ts +3 -0
  23. package/dist/src/controllers/ChatController.d.ts.map +1 -1
  24. package/dist/src/controllers/ChatController.js +67 -5
  25. package/dist/src/controllers/ChatController.js.map +1 -1
  26. package/dist/src/controllers/GenerateKeyController.d.ts +22 -0
  27. package/dist/src/controllers/GenerateKeyController.d.ts.map +1 -0
  28. package/dist/src/controllers/GenerateKeyController.js +132 -0
  29. package/dist/src/controllers/GenerateKeyController.js.map +1 -0
  30. package/dist/src/controllers/TeamController.d.ts +30 -0
  31. package/dist/src/controllers/TeamController.d.ts.map +1 -0
  32. package/dist/src/controllers/TeamController.js +208 -0
  33. package/dist/src/controllers/TeamController.js.map +1 -0
  34. package/dist/src/middleware/roleGuard.d.ts +8 -0
  35. package/dist/src/middleware/roleGuard.d.ts.map +1 -0
  36. package/dist/src/middleware/roleGuard.js +26 -0
  37. package/dist/src/middleware/roleGuard.js.map +1 -0
  38. package/dist/src/migrations/012_create_ai_settings.d.ts +4 -0
  39. package/dist/src/migrations/012_create_ai_settings.d.ts.map +1 -0
  40. package/dist/src/migrations/012_create_ai_settings.js +36 -0
  41. package/dist/src/migrations/012_create_ai_settings.js.map +1 -0
  42. package/dist/src/server.js +405 -64
  43. package/dist/src/server.js.map +1 -1
  44. package/dist/src/services/AIService.d.ts +7 -2
  45. package/dist/src/services/AIService.d.ts.map +1 -1
  46. package/dist/src/services/AIService.js +43 -66
  47. package/dist/src/services/AIService.js.map +1 -1
  48. package/dist/src/services/AISettingsService.d.ts +45 -0
  49. package/dist/src/services/AISettingsService.d.ts.map +1 -0
  50. package/dist/src/services/AISettingsService.js +162 -0
  51. package/dist/src/services/AISettingsService.js.map +1 -0
  52. package/dist/src/services/ApiKeyService.d.ts.map +1 -1
  53. package/dist/src/services/ApiKeyService.js.map +1 -1
  54. package/dist/src/services/IntentService.d.ts +7 -0
  55. package/dist/src/services/IntentService.d.ts.map +1 -1
  56. package/dist/src/services/IntentService.js +51 -27
  57. package/dist/src/services/IntentService.js.map +1 -1
  58. package/dist/src/services/PromptService.d.ts +59 -0
  59. package/dist/src/services/PromptService.d.ts.map +1 -0
  60. package/dist/src/services/PromptService.js +199 -0
  61. package/dist/src/services/PromptService.js.map +1 -0
  62. package/dist/src/services/ResponseGenerationService.d.ts +13 -0
  63. package/dist/src/services/ResponseGenerationService.d.ts.map +1 -1
  64. package/dist/src/services/ResponseGenerationService.js +10 -2
  65. package/dist/src/services/ResponseGenerationService.js.map +1 -1
  66. package/dist/src/services/SetupService.d.ts +1 -0
  67. package/dist/src/services/SetupService.d.ts.map +1 -1
  68. package/dist/src/services/SetupService.js +15 -17
  69. package/dist/src/services/SetupService.js.map +1 -1
  70. package/dist/src/services/TeamService.d.ts +53 -0
  71. package/dist/src/services/TeamService.d.ts.map +1 -0
  72. package/dist/src/services/TeamService.js +310 -0
  73. package/dist/src/services/TeamService.js.map +1 -0
  74. package/dist/src/storage/MessageRepository.d.ts.map +1 -1
  75. package/dist/src/storage/MessageRepository.js +10 -1
  76. package/dist/src/storage/MessageRepository.js.map +1 -1
  77. package/dist/src/types/index.d.ts +1 -0
  78. package/dist/src/types/index.d.ts.map +1 -1
  79. package/env.example +2 -0
  80. package/package.json +3 -1
  81. package/scripts/generate-key.js +9 -69
  82. package/scripts/seed-ai-settings.js +120 -0
package/README.md CHANGED
@@ -177,6 +177,9 @@ curl "http://localhost:3000/api/migrate?key=$MIGRATION_SECRET_KEY"
177
177
  # Create default admin user and company (if not exists)
178
178
  npm run seed-default
179
179
 
180
+ # Seed AI settings for existing companies (optional, auto-created for new companies)
181
+ npm run seed-ai-settings
182
+
180
183
  # Generate API key for library integration
181
184
  npm run generate-key
182
185
  ```
@@ -351,6 +354,13 @@ Creates default admin user and company.
351
354
  vezlo-seed-default
352
355
  ```
353
356
 
357
+ ### vezlo-seed-ai-settings
358
+ Seeds or updates AI settings for all existing companies with default values.
359
+
360
+ ```bash
361
+ vezlo-seed-ai-settings
362
+ ```
363
+
354
364
  ### vezlo-generate-key
355
365
  Generates API key for the default admin's company. The API key is used by src-to-kb library.
356
366
 
@@ -448,6 +458,20 @@ npm run migrate:make add_users_table
448
458
  - `POST /api/feedback` - Submit message feedback (Public API)
449
459
  - `DELETE /api/feedback/:uuid` - Delete/undo message feedback (Public API)
450
460
 
461
+ #### API Keys (Admin Only)
462
+ - `POST /api/api-keys` - Generate or update company API key
463
+ - `GET /api/api-keys/status` - Check if API key exists for company
464
+
465
+ #### Team Management (Admin Only)
466
+ - `POST /api/companies/:companyUuid/team` - Create team member
467
+ - `GET /api/companies/:companyUuid/team` - List team members (with pagination and search)
468
+ - `PUT /api/companies/:companyUuid/team/:userUuid` - Update team member (name, role, status, password)
469
+ - `DELETE /api/companies/:companyUuid/team/:userUuid` - Remove team member
470
+
471
+ #### Account Settings
472
+ - `GET /api/account/profile` - Get current user's profile
473
+ - `PUT /api/account/profile` - Update current user's name and password
474
+
451
475
  ### WebSocket Events
452
476
  - `join-conversation` - Join conversation room
453
477
  - `conversation:message` - Real-time message updates
@@ -738,4 +762,4 @@ This project is dual-licensed:
738
762
 
739
763
  ---
740
764
 
741
- **Status**: ✅ Production Ready | **Version**: 2.11.1 | **Node.js**: 20+ | **TypeScript**: 5+
765
+ **Status**: ✅ Production Ready | **Version**: 2.13.0 | **Node.js**: 20+ | **TypeScript**: 5+
@@ -70,6 +70,10 @@ INSERT INTO knex_migrations (name, batch, migration_time)
70
70
  SELECT '011_create_database_tool_configs.ts', 1, NOW()
71
71
  WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '011_create_database_tool_configs.ts');
72
72
 
73
+ INSERT INTO knex_migrations (name, batch, migration_time)
74
+ SELECT '012_create_ai_settings.ts', 1, NOW()
75
+ WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '012_create_ai_settings.ts');
76
+
73
77
  -- Set migration lock to unlocked (0 = unlocked, 1 = locked)
74
78
  INSERT INTO knex_migrations_lock (index, is_locked)
75
79
  VALUES (1, 0)
@@ -665,3 +669,21 @@ CREATE TABLE IF NOT EXISTS vezlo_database_tools (
665
669
  CREATE INDEX IF NOT EXISTS idx_database_tools_config_id ON vezlo_database_tools(config_id);
666
670
  CREATE INDEX IF NOT EXISTS idx_database_tools_uuid ON vezlo_database_tools(uuid);
667
671
  CREATE INDEX IF NOT EXISTS idx_database_tools_enabled ON vezlo_database_tools(enabled);
672
+
673
+ -- ============================================================================
674
+ -- AI SETTINGS TABLE
675
+ -- ============================================================================
676
+
677
+ -- AI configuration settings per company
678
+ CREATE TABLE IF NOT EXISTS vezlo_ai_settings (
679
+ id BIGSERIAL PRIMARY KEY,
680
+ uuid UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,
681
+ company_id BIGINT NOT NULL REFERENCES vezlo_companies(id) ON DELETE CASCADE,
682
+ settings JSONB NOT NULL DEFAULT '{"model":"gpt-4o-mini","temperature":0.7,"max_tokens":1000,"top_k":null,"prompts":{"personality":"","response_guidelines":"","interaction_etiquette":"","scope_of_assistance":"","formatting_and_presentation":""}}',
683
+ created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
684
+ updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
685
+ UNIQUE(company_id)
686
+ );
687
+
688
+ CREATE INDEX IF NOT EXISTS idx_ai_settings_company_id ON vezlo_ai_settings(company_id);
689
+ CREATE INDEX IF NOT EXISTS idx_ai_settings_uuid ON vezlo_ai_settings(uuid);
@@ -16,6 +16,11 @@ import { SlackController } from '../controllers/SlackController';
16
16
  import { ValidationService } from '../services/ValidationService';
17
17
  import { DatabaseToolConfigService } from '../services/DatabaseToolConfigService';
18
18
  import { DatabaseToolConfigController } from '../controllers/DatabaseToolConfigController';
19
+ import { AISettingsService } from '../services/AISettingsService';
20
+ import { AISettingsController } from '../controllers/AISettingsController';
21
+ import { TeamService } from '../services/TeamService';
22
+ import { TeamController } from '../controllers/TeamController';
23
+ import { AccountController } from '../controllers/AccountController';
19
24
  export interface ServiceInitOptions {
20
25
  supabase: SupabaseClient;
21
26
  tablePrefix?: string;
@@ -36,6 +41,8 @@ export interface InitializedCoreServices {
36
41
  validationService: ValidationService;
37
42
  databaseToolService: any;
38
43
  databaseToolConfigService: DatabaseToolConfigService;
44
+ aiSettingsService: AISettingsService;
45
+ teamService: TeamService;
39
46
  };
40
47
  controllers: {
41
48
  chatController: ChatController;
@@ -45,6 +52,9 @@ export interface InitializedCoreServices {
45
52
  companyController: CompanyController;
46
53
  slackController: SlackController;
47
54
  databaseToolConfigController: DatabaseToolConfigController;
55
+ aiSettingsController: AISettingsController;
56
+ teamController: TeamController;
57
+ accountController: AccountController;
48
58
  };
49
59
  config: {
50
60
  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,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,CA6I3F"}
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;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,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;QACrD,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC;KAC1B,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;QAC3D,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,cAAc,EAAE,cAAc,CAAC;QAC/B,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,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,CAiK3F"}
@@ -26,6 +26,11 @@ const ValidationService_1 = require("../services/ValidationService");
26
26
  const DatabaseToolService_1 = require("../services/DatabaseToolService");
27
27
  const DatabaseToolConfigService_1 = require("../services/DatabaseToolConfigService");
28
28
  const DatabaseToolConfigController_1 = require("../controllers/DatabaseToolConfigController");
29
+ const AISettingsService_1 = require("../services/AISettingsService");
30
+ const AISettingsController_1 = require("../controllers/AISettingsController");
31
+ const TeamService_1 = require("../services/TeamService");
32
+ const TeamController_1 = require("../controllers/TeamController");
33
+ const AccountController_1 = require("../controllers/AccountController");
29
34
  const DEFAULT_CHAT_HISTORY_LENGTH = 2;
30
35
  const DEFAULT_CONVERSATION_TIMEOUT = 3600000; // 1 hour
31
36
  function getChatHistoryLength() {
@@ -105,12 +110,17 @@ function initializeCoreServices(options) {
105
110
  }
106
111
  // Initialize Validation service
107
112
  const validationService = new ValidationService_1.ValidationService(process.env.AI_VALIDATION_ENABLED === 'true');
113
+ // Initialize AI Settings service first (needed by ChatController)
114
+ const aiSettingsService = new AISettingsService_1.AISettingsService(supabase);
115
+ const aiSettingsController = new AISettingsController_1.AISettingsController(aiSettingsService);
116
+ logger_1.default.info('✅ AI Settings service initialized');
108
117
  const chatController = new ChatController_1.ChatController(chatManager, storage, supabase, {
109
118
  historyLength: resolvedHistoryLength,
110
119
  intentService,
111
120
  realtimePublisher,
112
121
  validationService,
113
- databaseToolService
122
+ databaseToolService,
123
+ aiSettingsService
114
124
  });
115
125
  const knowledgeController = new KnowledgeController_1.KnowledgeController(knowledgeBase, aiService, citationService);
116
126
  const authController = new AuthController_1.AuthController(supabase);
@@ -123,6 +133,13 @@ function initializeCoreServices(options) {
123
133
  const slackController = new SlackController_1.SlackController(slackService, chatManager, storage, resolvedHistoryLength);
124
134
  // Initialize Database Tool Config controller (pass both services for cache management)
125
135
  const databaseToolConfigController = new DatabaseToolConfigController_1.DatabaseToolConfigController(databaseToolConfigService, databaseToolService);
136
+ // Initialize Team service and controller
137
+ const teamService = new TeamService_1.TeamService(supabase);
138
+ const teamController = new TeamController_1.TeamController(teamService, supabase);
139
+ logger_1.default.info('✅ Team service initialized');
140
+ // Initialize Account controller (uses TeamService for self-updates)
141
+ const accountController = new AccountController_1.AccountController(teamService, supabase);
142
+ logger_1.default.info('✅ Account controller initialized');
126
143
  return {
127
144
  services: {
128
145
  storage,
@@ -135,7 +152,9 @@ function initializeCoreServices(options) {
135
152
  slackService,
136
153
  databaseToolService,
137
154
  validationService,
138
- databaseToolConfigService
155
+ databaseToolConfigService,
156
+ aiSettingsService,
157
+ teamService
139
158
  },
140
159
  controllers: {
141
160
  chatController,
@@ -144,7 +163,10 @@ function initializeCoreServices(options) {
144
163
  apiKeyController,
145
164
  companyController,
146
165
  slackController,
147
- databaseToolConfigController
166
+ databaseToolConfigController,
167
+ aiSettingsController,
168
+ teamController,
169
+ accountController
148
170
  },
149
171
  config: {
150
172
  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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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Default AI Settings
3
+ * These values are seeded into the database for new companies
4
+ */
5
+ export interface AIPrompts {
6
+ personality: string;
7
+ response_guidelines: string;
8
+ interaction_etiquette: string;
9
+ scope_of_assistance: string;
10
+ formatting_and_presentation: string;
11
+ }
12
+ export interface AISettings {
13
+ model: string;
14
+ temperature: number;
15
+ max_tokens: number;
16
+ top_k: number | null;
17
+ prompts: AIPrompts;
18
+ }
19
+ export declare const DEFAULT_AI_SETTINGS: AISettings;
20
+ //# sourceMappingURL=defaultAISettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultAISettings.d.ts","sourceRoot":"","sources":["../../../src/config/defaultAISettings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,UA+CjC,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /**
3
+ * Default AI Settings
4
+ * These values are seeded into the database for new companies
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DEFAULT_AI_SETTINGS = void 0;
8
+ exports.DEFAULT_AI_SETTINGS = {
9
+ model: 'gpt-4o-mini',
10
+ temperature: 0.7,
11
+ max_tokens: 1000,
12
+ top_k: null,
13
+ prompts: {
14
+ personality: `You are a professional and helpful AI assistant focused on providing accurate, clear information.
15
+
16
+ - Balance expertise with approachability
17
+ - Be patient and ensure users feel heard
18
+ - Focus on practical solutions
19
+ - Be transparent about limitations`,
20
+ response_guidelines: `**Response Standards:**
21
+ - Provide clear, concise answers based on available information
22
+ - Use structured formatting when helpful
23
+ - Cite sources from knowledge base when applicable
24
+ - Avoid speculation or assumptions
25
+ - Acknowledge incomplete information and suggest next steps`,
26
+ interaction_etiquette: `**Communication Standards:**
27
+ - Be respectful and courteous
28
+ - Listen carefully before responding
29
+ - Use clear, jargon-free language unless technical terms are needed
30
+ - Show empathy when users express challenges
31
+ - Use a friendly, conversational tone`,
32
+ scope_of_assistance: `**You Can Help With:**
33
+ - Questions about products, services, and features
34
+ - Guidance on workflows and processes
35
+ - Troubleshooting common issues
36
+ - Directing to relevant documentation
37
+
38
+ **You Should NOT:**
39
+ - Make promises on behalf of the organization
40
+ - Share sensitive or confidential information
41
+ - Provide financial, legal, or medical advice
42
+ - Override established policies`,
43
+ formatting_and_presentation: `**Format Guidelines:**
44
+ - Use **headings (##)** for major sections
45
+ - Use **bullet points (-)** for lists
46
+ - Use **numbered lists (1., 2., 3.)** for steps
47
+ - Use **code blocks (\`\`\`)** for technical references
48
+ - Keep paragraphs short and scannable
49
+ - Use **bold** for key points`
50
+ }
51
+ };
52
+ //# sourceMappingURL=defaultAISettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultAISettings.js","sourceRoot":"","sources":["../../../src/config/defaultAISettings.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkBU,QAAA,mBAAmB,GAAe;IAC7C,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE;QACP,WAAW,EAAE;;;;;mCAKkB;QAE/B,mBAAmB,EAAE;;;;;4DAKmC;QAExD,qBAAqB,EAAE;;;;;sCAKW;QAElC,mBAAmB,EAAE;;;;;;;;;;gCAUO;QAE5B,2BAA2B,EAAE;;;;;;8BAMH;KAC3B;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Response } from 'express';
2
+ import { AuthenticatedRequest } from '../middleware/auth';
3
+ import { AISettingsService } from '../services/AISettingsService';
4
+ /**
5
+ * AISettingsController
6
+ * Protected controller for managing company-specific AI settings
7
+ */
8
+ export declare class AISettingsController {
9
+ private aiSettingsService;
10
+ constructor(aiSettingsService: AISettingsService);
11
+ /**
12
+ * GET /api/companies/:companyUuid/ai-settings
13
+ * Get AI settings for a company
14
+ */
15
+ getSettings(req: AuthenticatedRequest, res: Response): Promise<void>;
16
+ /**
17
+ * PUT /api/companies/:companyUuid/ai-settings
18
+ * Update AI settings for a company
19
+ */
20
+ updateSettings(req: AuthenticatedRequest, res: Response): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=AISettingsController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AISettingsController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AISettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,iBAAiB,EAAE,iBAAiB;IAIhD;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1E;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAkE9E"}
@@ -0,0 +1,115 @@
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.AISettingsController = void 0;
7
+ const logger_1 = __importDefault(require("../config/logger"));
8
+ /**
9
+ * AISettingsController
10
+ * Protected controller for managing company-specific AI settings
11
+ */
12
+ class AISettingsController {
13
+ constructor(aiSettingsService) {
14
+ this.aiSettingsService = aiSettingsService;
15
+ }
16
+ /**
17
+ * GET /api/companies/:companyUuid/ai-settings
18
+ * Get AI settings for a company
19
+ */
20
+ async getSettings(req, res) {
21
+ try {
22
+ const companyUuid = Array.isArray(req.params.companyUuid)
23
+ ? req.params.companyUuid[0]
24
+ : req.params.companyUuid;
25
+ if (!companyUuid) {
26
+ res.status(400).json({ error: 'Company UUID is required' });
27
+ return;
28
+ }
29
+ // Verify user has access to this company
30
+ if (req.profile?.companyUuid !== companyUuid) {
31
+ logger_1.default.warn(`Unauthorized access attempt to AI settings for company: ${companyUuid}`);
32
+ res.status(403).json({ error: 'Unauthorized access to this company\'s settings' });
33
+ return;
34
+ }
35
+ const settings = await this.aiSettingsService.getSettingsByCompanyUuid(companyUuid);
36
+ logger_1.default.info(`✅ AI settings retrieved for company: ${companyUuid}`);
37
+ res.json({
38
+ success: true,
39
+ settings
40
+ });
41
+ }
42
+ catch (error) {
43
+ logger_1.default.error('Error getting AI settings:', error);
44
+ res.status(500).json({
45
+ error: 'Failed to get AI settings',
46
+ message: error instanceof Error ? error.message : 'Unknown error'
47
+ });
48
+ }
49
+ }
50
+ /**
51
+ * PUT /api/companies/:companyUuid/ai-settings
52
+ * Update AI settings for a company
53
+ */
54
+ async updateSettings(req, res) {
55
+ try {
56
+ const companyUuid = Array.isArray(req.params.companyUuid)
57
+ ? req.params.companyUuid[0]
58
+ : req.params.companyUuid;
59
+ if (!companyUuid) {
60
+ res.status(400).json({ error: 'Company UUID is required' });
61
+ return;
62
+ }
63
+ // requireAdmin middleware ensures req.profile exists and role is admin
64
+ // Verify user has access to this company
65
+ if (req.profile.companyUuid !== companyUuid) {
66
+ logger_1.default.warn(`Unauthorized access attempt to update AI settings for company: ${companyUuid}`);
67
+ res.status(403).json({ error: 'Unauthorized access to this company\'s settings' });
68
+ return;
69
+ }
70
+ const settingsUpdate = req.body;
71
+ // Validate settings structure
72
+ if (settingsUpdate.temperature !== undefined) {
73
+ if (typeof settingsUpdate.temperature !== 'number' ||
74
+ settingsUpdate.temperature < 0 ||
75
+ settingsUpdate.temperature > 2) {
76
+ res.status(400).json({ error: 'Temperature must be a number between 0 and 2' });
77
+ return;
78
+ }
79
+ }
80
+ if (settingsUpdate.max_tokens !== undefined) {
81
+ if (typeof settingsUpdate.max_tokens !== 'number' ||
82
+ settingsUpdate.max_tokens < 1 ||
83
+ settingsUpdate.max_tokens > 16000) {
84
+ res.status(400).json({ error: 'Max tokens must be a number between 1 and 16000' });
85
+ return;
86
+ }
87
+ }
88
+ if (settingsUpdate.model !== undefined) {
89
+ const allowedModels = ['gpt-4o-mini', 'gpt-4o', 'gpt-4-turbo', 'gpt-3.5-turbo'];
90
+ if (!allowedModels.includes(settingsUpdate.model)) {
91
+ res.status(400).json({
92
+ error: 'Invalid model',
93
+ allowedModels
94
+ });
95
+ return;
96
+ }
97
+ }
98
+ const updatedSettings = await this.aiSettingsService.updateSettings(companyUuid, settingsUpdate);
99
+ logger_1.default.info(`✅ AI settings updated for company: ${companyUuid} by user: ${req.user?.uuid}`);
100
+ res.json({
101
+ success: true,
102
+ settings: updatedSettings
103
+ });
104
+ }
105
+ catch (error) {
106
+ logger_1.default.error('Error updating AI settings:', error);
107
+ res.status(500).json({
108
+ error: 'Failed to update AI settings',
109
+ message: error instanceof Error ? error.message : 'Unknown error'
110
+ });
111
+ }
112
+ }
113
+ }
114
+ exports.AISettingsController = AISettingsController;
115
+ //# sourceMappingURL=AISettingsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AISettingsController.js","sourceRoot":"","sources":["../../../src/controllers/AISettingsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Response } from 'express';
2
+ import { SupabaseClient } from '@supabase/supabase-js';
3
+ import { TeamService } from '../services/TeamService';
4
+ import { AuthenticatedRequest } from '../middleware/auth';
5
+ export declare class AccountController {
6
+ private teamService;
7
+ private supabase;
8
+ constructor(teamService: TeamService, supabase: SupabaseClient);
9
+ /**
10
+ * Get current user's account information
11
+ * GET /api/account/profile
12
+ */
13
+ getProfile(req: AuthenticatedRequest, res: Response): Promise<void>;
14
+ /**
15
+ * Update current user's account (name and password only)
16
+ * PUT /api/account/profile
17
+ */
18
+ updateProfile(req: AuthenticatedRequest, res: Response): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=AccountController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AccountController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAA8B,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAiB;gBAErB,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc;IAK9D;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiEzE;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAuD7E"}
@@ -0,0 +1,135 @@
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.AccountController = void 0;
7
+ const logger_1 = __importDefault(require("../config/logger"));
8
+ class AccountController {
9
+ constructor(teamService, supabase) {
10
+ this.teamService = teamService;
11
+ this.supabase = supabase;
12
+ }
13
+ /**
14
+ * Get current user's account information
15
+ * GET /api/account/profile
16
+ */
17
+ async getProfile(req, res) {
18
+ try {
19
+ if (!req.profile) {
20
+ res.status(401).json({
21
+ success: false,
22
+ error: 'Not authenticated'
23
+ });
24
+ return;
25
+ }
26
+ const companyId = parseInt(req.profile.companyId);
27
+ const profileUuid = req.profile.uuid;
28
+ // Get profile directly from database
29
+ const { data: profile, error: profileError } = await this.supabase
30
+ .from('vezlo_user_company_profiles')
31
+ .select(`
32
+ uuid,
33
+ role,
34
+ status,
35
+ created_at,
36
+ updated_at,
37
+ vezlo_users:user_id (
38
+ uuid,
39
+ email,
40
+ name
41
+ )
42
+ `)
43
+ .eq('uuid', profileUuid)
44
+ .eq('company_id', companyId)
45
+ .single();
46
+ if (profileError || !profile) {
47
+ logger_1.default.error('Error fetching profile:', profileError);
48
+ res.status(404).json({
49
+ success: false,
50
+ error: 'Profile not found'
51
+ });
52
+ return;
53
+ }
54
+ const member = {
55
+ uuid: profile.uuid,
56
+ user_uuid: profile.vezlo_users.uuid,
57
+ email: profile.vezlo_users.email,
58
+ name: profile.vezlo_users.name,
59
+ role: profile.role,
60
+ status: profile.status,
61
+ created_at: profile.created_at,
62
+ updated_at: profile.updated_at
63
+ };
64
+ res.status(200).json({
65
+ success: true,
66
+ member
67
+ });
68
+ }
69
+ catch (error) {
70
+ logger_1.default.error('Error getting profile:', error);
71
+ res.status(500).json({
72
+ success: false,
73
+ error: error instanceof Error ? error.message : 'Failed to get profile'
74
+ });
75
+ }
76
+ }
77
+ /**
78
+ * Update current user's account (name and password only)
79
+ * PUT /api/account/profile
80
+ */
81
+ async updateProfile(req, res) {
82
+ try {
83
+ if (!req.profile) {
84
+ res.status(401).json({
85
+ success: false,
86
+ error: 'Not authenticated'
87
+ });
88
+ return;
89
+ }
90
+ const companyId = parseInt(req.profile.companyId);
91
+ const profileUuid = req.profile.uuid;
92
+ const { name, password } = req.body;
93
+ const input = {};
94
+ if (name !== undefined)
95
+ input.name = name.trim();
96
+ if (password !== undefined) {
97
+ if (password.length < 6) {
98
+ res.status(400).json({
99
+ success: false,
100
+ error: 'Password must be at least 6 characters'
101
+ });
102
+ return;
103
+ }
104
+ input.password = password;
105
+ }
106
+ if (Object.keys(input).length === 0) {
107
+ res.status(400).json({
108
+ success: false,
109
+ error: 'No fields to update'
110
+ });
111
+ return;
112
+ }
113
+ // Update using team service (will enforce self-update restrictions)
114
+ const member = await this.teamService.updateTeamMember(companyId, profileUuid, input, profileUuid);
115
+ res.status(200).json({
116
+ success: true,
117
+ member,
118
+ message: 'Profile updated successfully'
119
+ });
120
+ }
121
+ catch (error) {
122
+ logger_1.default.error('Error updating profile:', error);
123
+ const errorMessage = error instanceof Error ? error.message : 'Failed to update profile';
124
+ const statusCode = errorMessage.includes('cannot change your own role') ||
125
+ errorMessage.includes('cannot change your own status') ||
126
+ errorMessage.includes('cannot change another admin') ? 400 : 500;
127
+ res.status(statusCode).json({
128
+ success: false,
129
+ error: errorMessage
130
+ });
131
+ }
132
+ }
133
+ }
134
+ exports.AccountController = AccountController;
135
+ //# sourceMappingURL=AccountController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountController.js","sourceRoot":"","sources":["../../../src/controllers/AccountController.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeyController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIxC;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7E;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B/E"}
1
+ {"version":3,"file":"ApiKeyController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIxC;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7E;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB/E"}