@vezlo/assistant-server 2.2.1 → 2.3.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 (80) hide show
  1. package/README.md +27 -18
  2. package/database-schema.sql +181 -7
  3. package/dist/knexfile.js +5 -6
  4. package/dist/knexfile.js.map +1 -1
  5. package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
  6. package/dist/src/bootstrap/initializeServices.js +14 -1
  7. package/dist/src/bootstrap/initializeServices.js.map +1 -1
  8. package/dist/src/config/global.d.ts.map +1 -1
  9. package/dist/src/config/global.js +11 -2
  10. package/dist/src/config/global.js.map +1 -1
  11. package/dist/src/controllers/AuthController.d.ts +4 -1
  12. package/dist/src/controllers/AuthController.d.ts.map +1 -1
  13. package/dist/src/controllers/AuthController.js +8 -3
  14. package/dist/src/controllers/AuthController.js.map +1 -1
  15. package/dist/src/controllers/ChatController.d.ts +9 -1
  16. package/dist/src/controllers/ChatController.d.ts.map +1 -1
  17. package/dist/src/controllers/ChatController.js +502 -85
  18. package/dist/src/controllers/ChatController.js.map +1 -1
  19. package/dist/src/controllers/KnowledgeController.d.ts.map +1 -1
  20. package/dist/src/controllers/KnowledgeController.js +0 -4
  21. package/dist/src/controllers/KnowledgeController.js.map +1 -1
  22. package/dist/src/migrations/005_add_conversation_handoff_columns.d.ts +4 -0
  23. package/dist/src/migrations/005_add_conversation_handoff_columns.d.ts.map +1 -0
  24. package/dist/src/migrations/005_add_conversation_handoff_columns.js +42 -0
  25. package/dist/src/migrations/005_add_conversation_handoff_columns.js.map +1 -0
  26. package/dist/src/migrations/006_add_knowledge_chunks.d.ts +4 -0
  27. package/dist/src/migrations/006_add_knowledge_chunks.d.ts.map +1 -0
  28. package/dist/src/migrations/006_add_knowledge_chunks.js +245 -0
  29. package/dist/src/migrations/006_add_knowledge_chunks.js.map +1 -0
  30. package/dist/src/schemas/ConversationSchemas.d.ts +125 -33
  31. package/dist/src/schemas/ConversationSchemas.d.ts.map +1 -1
  32. package/dist/src/schemas/ConversationSchemas.js +47 -18
  33. package/dist/src/schemas/ConversationSchemas.js.map +1 -1
  34. package/dist/src/schemas/MessageSchemas.d.ts +9 -0
  35. package/dist/src/schemas/MessageSchemas.d.ts.map +1 -1
  36. package/dist/src/schemas/MessageSchemas.js +3 -1
  37. package/dist/src/schemas/MessageSchemas.js.map +1 -1
  38. package/dist/src/schemas/index.d.ts +134 -33
  39. package/dist/src/schemas/index.d.ts.map +1 -1
  40. package/dist/src/server.js +225 -27
  41. package/dist/src/server.js.map +1 -1
  42. package/dist/src/services/AIService.d.ts.map +1 -1
  43. package/dist/src/services/AIService.js +1 -3
  44. package/dist/src/services/AIService.js.map +1 -1
  45. package/dist/src/services/ChatManager.d.ts.map +1 -1
  46. package/dist/src/services/ChatManager.js +26 -29
  47. package/dist/src/services/ChatManager.js.map +1 -1
  48. package/dist/src/services/IntentService.d.ts +2 -1
  49. package/dist/src/services/IntentService.d.ts.map +1 -1
  50. package/dist/src/services/IntentService.js +29 -7
  51. package/dist/src/services/IntentService.js.map +1 -1
  52. package/dist/src/services/KnowledgeBaseService.d.ts +20 -5
  53. package/dist/src/services/KnowledgeBaseService.d.ts.map +1 -1
  54. package/dist/src/services/KnowledgeBaseService.js +203 -137
  55. package/dist/src/services/KnowledgeBaseService.js.map +1 -1
  56. package/dist/src/services/RealtimePublisher.d.ts +6 -0
  57. package/dist/src/services/RealtimePublisher.d.ts.map +1 -0
  58. package/dist/src/services/RealtimePublisher.js +43 -0
  59. package/dist/src/services/RealtimePublisher.js.map +1 -0
  60. package/dist/src/storage/ConversationRepository.d.ts +2 -2
  61. package/dist/src/storage/ConversationRepository.d.ts.map +1 -1
  62. package/dist/src/storage/ConversationRepository.js +36 -19
  63. package/dist/src/storage/ConversationRepository.js.map +1 -1
  64. package/dist/src/storage/MessageRepository.d.ts +4 -1
  65. package/dist/src/storage/MessageRepository.d.ts.map +1 -1
  66. package/dist/src/storage/MessageRepository.js +10 -4
  67. package/dist/src/storage/MessageRepository.js.map +1 -1
  68. package/dist/src/storage/SupabaseStorage.d.ts +5 -3
  69. package/dist/src/storage/SupabaseStorage.d.ts.map +1 -1
  70. package/dist/src/storage/SupabaseStorage.js +42 -11
  71. package/dist/src/storage/SupabaseStorage.js.map +1 -1
  72. package/dist/src/storage/UnifiedStorage.d.ts +5 -3
  73. package/dist/src/storage/UnifiedStorage.d.ts.map +1 -1
  74. package/dist/src/storage/UnifiedStorage.js +4 -4
  75. package/dist/src/storage/UnifiedStorage.js.map +1 -1
  76. package/dist/src/types/index.d.ts +24 -4
  77. package/dist/src/types/index.d.ts.map +1 -1
  78. package/knexfile.ts +4 -4
  79. package/package.json +2 -2
  80. package/scripts/test-chunks-embeddings.js +190 -0
package/README.md CHANGED
@@ -1,20 +1,25 @@
1
1
  # Vezlo AI Assistant Server
2
2
 
3
- 🚀 **Production-ready Node.js/TypeScript API server** for the Vezlo AI Assistant platform - Complete backend APIs with Docker deployment and database migrations.
3
+ 🚀 **Production-ready Node.js/TypeScript API server** for the Vezlo AI Assistant platform - Complete backend APIs with advanced RAG (chunk-based semantic search + adjacent retrieval), Docker deployment, and database migrations.
4
4
 
5
- ## 🚨 Breaking Change Notice (v2.0.0)
5
+ ## 🚨 Breaking Change Notice
6
6
 
7
- **This version introduces multi-tenancy support with breaking changes. Existing data will not be migrated automatically.**
7
+ ### v2.3.0 - Enhanced RAG System (Latest)
8
+ **New chunk-based architecture with adjacent retrieval for better code understanding.**
8
9
 
9
- ### Migration Required
10
- - **Database Schema**: New authentication and multi-tenancy tables
11
- - **Auth Model**: Endpoints now use a mix of auth modes — some support JWT or API key, and select public endpoints remain for the chat widget
12
- - **Data Structure**: Foreign key relationships updated for multi-tenancy
10
+ - **Database Schema**: New `vezlo_knowledge_chunks` table and RPC functions
11
+ - **Embedding Model**: Upgraded to `text-embedding-3-large` (3072 dimensions)
12
+ - **Migration**: Automatic via `npm run migrate:latest` (migration 006)
13
+ - **Rollback**: Supported via `npm run migrate:rollback`
13
14
 
14
- ### Quick Migration Steps
15
- 1. **Upgrade**: `npm install @vezlo/assistant-server@latest`
16
- 2. **Run migrations**: `npm run migrate:latest`
17
- 3. **Setup**: `npm run seed-default`
15
+ **Upgrade Steps:**
16
+ ```bash
17
+ npm install @vezlo/assistant-server@latest
18
+ npm run migrate:latest
19
+ ```
20
+
21
+ ### v2.0.0 - Multi-tenancy Support
22
+ **Introduced multi-tenancy with authentication. Existing data not auto-migrated.**
18
23
 
19
24
  See [CHANGELOG.md](./CHANGELOG.md) for complete migration guide.
20
25
 
@@ -23,9 +28,10 @@ See [CHANGELOG.md](./CHANGELOG.md) for complete migration guide.
23
28
  ## 🏗️ Architecture
24
29
 
25
30
  - **Backend APIs** - RESTful API endpoints for AI chat and knowledge management
26
- - **Real-time Communication** - WebSocket support for live chat
27
- - **Vector Search** - Supabase-powered semantic search with embeddings
28
- - **Conversation Management** - Persistent conversation history
31
+ - **Real-time Communication** - WebSocket support for live chat with Supabase Realtime broadcasting
32
+ - **Human Agent Handoff** - Agent join/leave workflows with realtime status updates and message synchronization
33
+ - **Advanced RAG System** - Chunk-based semantic search with adjacent retrieval using OpenAI text-embedding-3-large (3072 dims) and pgvector
34
+ - **Conversation Management** - Persistent conversation history with agent support
29
35
  - **Feedback System** - Message rating and improvement tracking
30
36
  - **Database Migrations** - Knex.js migration system for schema management
31
37
  - **Production Ready** - Docker containerization with health checks
@@ -227,7 +233,6 @@ Deploy to Vercel's serverless platform with multiple options. The Marketplace in
227
233
  1. Run the migration URL: `https://your-project.vercel.app/api/migrate?key=YOUR_MIGRATION_SECRET`
228
234
  2. Verify deployment: `https://your-project.vercel.app/health`
229
235
  3. Access API docs: `https://your-project.vercel.app/docs`
230
-
231
236
  ### Option 2: One-Click Deploy Button
232
237
 
233
238
  [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vezlo/assistant-server&integration-ids=oac_f2GcBt8U4FhiVJ4qWv5PYMEZ)
@@ -255,6 +260,7 @@ vercel
255
260
  1. Supabase project (URL, Service Role key, DB host/port/name/user/password)
256
261
  2. OpenAI API key
257
262
  3. If not using the Marketplace, add environment variables in Vercel project settings
263
+ 4. Disable Vercel Deployment Protection if the API needs to be publicly accessible; otherwise Vercel shows its SSO page and the browser never reaches your server.
258
264
 
259
265
  See [docs/VERCEL_DEPLOYMENT.md](docs/VERCEL_DEPLOYMENT.md) for detailed deployment guide.
260
266
 
@@ -307,7 +313,7 @@ RATE_LIMIT_MAX=100
307
313
  ORGANIZATION_NAME=Vezlo
308
314
  ASSISTANT_NAME=Vezlo Assistant
309
315
 
310
- # OPTIONAL - Knowledge Base
316
+ # OPTIONAL - Knowledge Base (uses text-embedding-3-large, 3072 dims)
311
317
  CHUNK_SIZE=1000
312
318
  CHUNK_OVERLAP=200
313
319
  ```
@@ -365,10 +371,13 @@ http://localhost:3000/api
365
371
  ### Core Endpoints
366
372
 
367
373
  #### Conversations
368
- - `POST /api/conversations` - Create new conversation
374
+ - `POST /api/conversations` - Create new conversation (public widget endpoint)
375
+ - `GET /api/conversations` - List company conversations (agent dashboard)
369
376
  - `GET /api/conversations/:uuid` - Get conversation with messages
370
377
  - `DELETE /api/conversations/:uuid` - Delete conversation
371
- - `GET /api/users/:uuid/conversations` - Get user conversations
378
+ - `POST /api/conversations/:uuid/join` - Agent joins a conversation
379
+ - `POST /api/conversations/:uuid/messages/agent` - Agent sends a message
380
+ - `POST /api/conversations/:uuid/close` - Agent closes a conversation
372
381
 
373
382
  #### Messages
374
383
  - `POST /api/conversations/:uuid/messages` - Create user message
@@ -42,6 +42,14 @@ INSERT INTO knex_migrations (name, batch, migration_time)
42
42
  SELECT '004_add_vector_search_rpc.ts', 1, NOW()
43
43
  WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '004_add_vector_search_rpc.ts');
44
44
 
45
+ INSERT INTO knex_migrations (name, batch, migration_time)
46
+ SELECT '005_add_conversation_handoff_columns.ts', 1, NOW()
47
+ WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '005_add_conversation_handoff_columns.ts');
48
+
49
+ INSERT INTO knex_migrations (name, batch, migration_time)
50
+ SELECT '006_add_knowledge_chunks.ts', 1, NOW()
51
+ WHERE NOT EXISTS (SELECT 1 FROM knex_migrations WHERE name = '006_add_knowledge_chunks.ts');
52
+
45
53
  -- Set migration lock to unlocked (0 = unlocked, 1 = locked)
46
54
  INSERT INTO knex_migrations_lock (index, is_locked)
47
55
  VALUES (1, 0)
@@ -106,6 +114,10 @@ CREATE TABLE IF NOT EXISTS vezlo_conversations (
106
114
  creator_id BIGINT NOT NULL,
107
115
  title TEXT NOT NULL,
108
116
  message_count INTEGER DEFAULT 0,
117
+ joined_at TIMESTAMPTZ,
118
+ responded_at TIMESTAMPTZ,
119
+ closed_at TIMESTAMPTZ,
120
+ last_message_at TIMESTAMPTZ,
109
121
  created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
110
122
  updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
111
123
  deleted_at TIMESTAMPTZ -- Soft delete
@@ -120,6 +132,7 @@ CREATE TABLE IF NOT EXISTS vezlo_messages (
120
132
  content TEXT NOT NULL,
121
133
  status TEXT DEFAULT 'completed', -- generating, completed, stopped, failed
122
134
  metadata JSONB DEFAULT '{}', -- For tool_calls, tool_results, etc.
135
+ author_id BIGINT REFERENCES vezlo_users(id) ON DELETE SET NULL,
123
136
  created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
124
137
  updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
125
138
  );
@@ -154,13 +167,36 @@ CREATE TABLE IF NOT EXISTS vezlo_knowledge_items (
154
167
  file_size BIGINT, -- File size in bytes
155
168
  file_type TEXT, -- MIME type for files
156
169
  metadata JSONB DEFAULT '{}', -- Flexible metadata storage
157
- embedding vector(1536), -- OpenAI embeddings for search
170
+ embedding vector(1536), -- OpenAI embeddings for search (legacy, not used with chunks)
158
171
  processed_at TIMESTAMPTZ, -- When embedding was generated
159
172
  created_by BIGINT NOT NULL,
160
173
  created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
161
174
  updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
162
175
  );
163
176
 
177
+ -- ============================================================================
178
+ -- KNOWLEDGE CHUNKS TABLE (Migration 006)
179
+ -- ============================================================================
180
+ -- This table stores text chunks from knowledge items with their embeddings.
181
+ -- Each document can have multiple chunks for better semantic search on large content.
182
+ -- Uses text-embedding-3-large model which produces 3072-dimensional vectors.
183
+
184
+ CREATE TABLE IF NOT EXISTS vezlo_knowledge_chunks (
185
+ id BIGSERIAL PRIMARY KEY,
186
+ uuid UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,
187
+ document_id BIGINT NOT NULL REFERENCES vezlo_knowledge_items(id) ON DELETE CASCADE,
188
+ chunk_text TEXT NOT NULL,
189
+ chunk_index INTEGER NOT NULL,
190
+ start_char INTEGER,
191
+ end_char INTEGER,
192
+ token_count INTEGER,
193
+ embedding vector(3072), -- OpenAI text-embedding-3-large embeddings
194
+ metadata JSONB DEFAULT '{}',
195
+ processed_at TIMESTAMPTZ,
196
+ created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
197
+ updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
198
+ );
199
+
164
200
  -- ============================================================================
165
201
  -- ADD FOREIGN KEY CONSTRAINTS (Matching Migration 002)
166
202
  -- These constraints use explicit names matching Knex migration naming convention
@@ -236,6 +272,9 @@ CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_company_id ON vezlo_conversat
236
272
  CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_creator_id ON vezlo_conversations(creator_id);
237
273
  CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_deleted ON vezlo_conversations(deleted_at) WHERE deleted_at IS NULL;
238
274
  CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_updated_at ON vezlo_conversations(updated_at DESC);
275
+ CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_last_message_at ON vezlo_conversations(last_message_at DESC);
276
+ CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_joined_at ON vezlo_conversations(joined_at);
277
+ CREATE INDEX IF NOT EXISTS idx_vezlo_conversations_closed_at ON vezlo_conversations(closed_at);
239
278
 
240
279
  -- Messages indexes
241
280
  CREATE INDEX IF NOT EXISTS idx_vezlo_messages_uuid ON vezlo_messages(uuid);
@@ -244,6 +283,7 @@ CREATE INDEX IF NOT EXISTS idx_vezlo_messages_parent_id ON vezlo_messages(parent
244
283
  CREATE INDEX IF NOT EXISTS idx_vezlo_messages_type ON vezlo_messages(type);
245
284
  CREATE INDEX IF NOT EXISTS idx_vezlo_messages_status ON vezlo_messages(status);
246
285
  CREATE INDEX IF NOT EXISTS idx_vezlo_messages_created_at ON vezlo_messages(created_at DESC);
286
+ CREATE INDEX IF NOT EXISTS idx_vezlo_messages_author_id ON vezlo_messages(author_id);
247
287
 
248
288
  -- Message feedback indexes
249
289
  CREATE INDEX IF NOT EXISTS idx_vezlo_feedback_uuid ON vezlo_message_feedback(uuid);
@@ -260,15 +300,38 @@ CREATE INDEX IF NOT EXISTS idx_vezlo_knowledge_type ON vezlo_knowledge_items(typ
260
300
  CREATE INDEX IF NOT EXISTS idx_vezlo_knowledge_created_by ON vezlo_knowledge_items(created_by);
261
301
  CREATE INDEX IF NOT EXISTS idx_vezlo_knowledge_created_at ON vezlo_knowledge_items(created_at DESC);
262
302
 
303
+ -- Knowledge chunks indexes (Migration 006)
304
+ CREATE INDEX IF NOT EXISTS idx_vezlo_chunks_uuid ON vezlo_knowledge_chunks(uuid);
305
+ CREATE INDEX IF NOT EXISTS idx_vezlo_chunks_document_id ON vezlo_knowledge_chunks(document_id);
306
+ CREATE INDEX IF NOT EXISTS idx_vezlo_chunks_chunk_index ON vezlo_knowledge_chunks(document_id, chunk_index);
307
+
263
308
  -- Full-text search index for knowledge items
264
309
  CREATE INDEX IF NOT EXISTS idx_vezlo_knowledge_search
265
310
  ON vezlo_knowledge_items USING gin(to_tsvector('english', title || ' ' || COALESCE(description, '') || ' ' || COALESCE(content, '')));
266
311
 
267
- -- Vector similarity index for semantic search (only for items with content)
312
+ -- Vector similarity index for semantic search (only for items with content - legacy)
268
313
  CREATE INDEX IF NOT EXISTS idx_vezlo_knowledge_embedding
269
314
  ON vezlo_knowledge_items USING ivfflat (embedding vector_cosine_ops)
270
315
  WHERE embedding IS NOT NULL;
271
316
 
317
+ -- Vector similarity index for chunks (Migration 006)
318
+ -- HNSW index for 3072-dimensional vectors (text-embedding-3-large)
319
+ -- Note: May fail on older pgvector versions, vector search will use sequential scan
320
+ DO $$
321
+ BEGIN
322
+ BEGIN
323
+ CREATE INDEX IF NOT EXISTS idx_vezlo_chunks_embedding
324
+ ON vezlo_knowledge_chunks USING hnsw (embedding vector_cosine_ops)
325
+ WHERE embedding IS NOT NULL;
326
+ EXCEPTION WHEN OTHERS THEN
327
+ RAISE NOTICE 'HNSW index creation skipped: % (Vector search will use sequential scan)', SQLERRM;
328
+ END;
329
+ END $$;
330
+
331
+ -- GIN index for full-text keyword search on chunks (Migration 006)
332
+ CREATE INDEX IF NOT EXISTS idx_vezlo_chunks_chunk_text_gin
333
+ ON vezlo_knowledge_chunks USING gin (to_tsvector('english', chunk_text));
334
+
272
335
  -- Sparse indexes for better performance
273
336
  -- Note: idx_vezlo_knowledge_content was removed in migration 003
274
337
  -- because btree indexes fail on large content (>2704 bytes).
@@ -290,6 +353,7 @@ ALTER TABLE vezlo_conversations ENABLE ROW LEVEL SECURITY;
290
353
  ALTER TABLE vezlo_messages ENABLE ROW LEVEL SECURITY;
291
354
  ALTER TABLE vezlo_message_feedback ENABLE ROW LEVEL SECURITY;
292
355
  ALTER TABLE vezlo_knowledge_items ENABLE ROW LEVEL SECURITY;
356
+ ALTER TABLE vezlo_knowledge_chunks ENABLE ROW LEVEL SECURITY;
293
357
 
294
358
  -- Policies for service role access (full access)
295
359
  CREATE POLICY "Service role can access all users" ON vezlo_users
@@ -316,6 +380,9 @@ CREATE POLICY "Service role can access all feedback" ON vezlo_message_feedback
316
380
  CREATE POLICY "Service role can access all knowledge items" ON vezlo_knowledge_items
317
381
  FOR ALL USING (auth.role() = 'service_role');
318
382
 
383
+ CREATE POLICY "Service role can access all knowledge chunks" ON vezlo_knowledge_chunks
384
+ FOR ALL USING (auth.role() = 'service_role');
385
+
319
386
  -- Example company-based policies (uncomment and modify as needed)
320
387
  -- CREATE POLICY "Users can access their company conversations" ON vezlo_conversations
321
388
  -- FOR ALL USING (company_id = auth.jwt() ->> 'company_id');
@@ -324,13 +391,120 @@ CREATE POLICY "Service role can access all knowledge items" ON vezlo_knowledge_i
324
391
  -- FOR ALL USING (company_id = auth.jwt() ->> 'company_id');
325
392
 
326
393
  -- ============================================================================
327
- -- RPC FUNCTION FOR OPTIMIZED VECTOR SEARCH
394
+ -- RPC FUNCTIONS FOR VECTOR SEARCH
328
395
  -- ============================================================================
329
396
 
330
- -- This function uses pgvector's <=> operator for efficient nearest-neighbor search
331
- -- directly in the database, avoiding the need to fetch all records and calculate
332
- -- similarity in Node.js. This provides significant performance improvements,
333
- -- especially for large knowledge bases.
397
+ -- ============================================================================
398
+ -- INSERT RPC FUNCTION FOR CHUNKS (Migration 006)
399
+ -- ============================================================================
400
+ -- Ensures embeddings are stored as proper vector(3072) type
401
+ CREATE OR REPLACE FUNCTION vezlo_insert_knowledge_chunk(
402
+ p_document_id bigint,
403
+ p_chunk_text text,
404
+ p_chunk_index int,
405
+ p_start_char int,
406
+ p_end_char int,
407
+ p_token_count int,
408
+ p_embedding text,
409
+ p_processed_at timestamptz
410
+ )
411
+ RETURNS bigint
412
+ LANGUAGE plpgsql
413
+ AS $$
414
+ DECLARE
415
+ new_id bigint;
416
+ BEGIN
417
+ INSERT INTO vezlo_knowledge_chunks (
418
+ document_id,
419
+ chunk_text,
420
+ chunk_index,
421
+ start_char,
422
+ end_char,
423
+ token_count,
424
+ embedding,
425
+ processed_at,
426
+ metadata
427
+ ) VALUES (
428
+ p_document_id,
429
+ p_chunk_text,
430
+ p_chunk_index,
431
+ p_start_char,
432
+ p_end_char,
433
+ p_token_count,
434
+ p_embedding::vector(3072),
435
+ p_processed_at,
436
+ '{}'::jsonb
437
+ )
438
+ RETURNING id INTO new_id;
439
+
440
+ RETURN new_id;
441
+ END;
442
+ $$;
443
+
444
+ -- ============================================================================
445
+ -- CHUNK-BASED VECTOR SEARCH RPC FUNCTION (Migration 006)
446
+ -- ============================================================================
447
+ -- Searches through chunks and joins back to parent documents for metadata.
448
+ -- Uses 3072-dimensional vectors for text-embedding-3-large.
449
+ CREATE OR REPLACE FUNCTION vezlo_match_knowledge_chunks(
450
+ query_embedding text,
451
+ match_threshold float DEFAULT 0.5,
452
+ match_count int DEFAULT 10,
453
+ filter_company_id bigint DEFAULT NULL
454
+ )
455
+ RETURNS TABLE (
456
+ chunk_id bigint,
457
+ chunk_uuid uuid,
458
+ document_id bigint,
459
+ document_uuid uuid,
460
+ chunk_text text,
461
+ chunk_index int,
462
+ start_char int,
463
+ end_char int,
464
+ token_count int,
465
+ document_title text,
466
+ document_description text,
467
+ document_type text,
468
+ document_metadata jsonb,
469
+ chunk_metadata jsonb,
470
+ company_id bigint,
471
+ similarity float
472
+ )
473
+ LANGUAGE plpgsql
474
+ AS $$
475
+ BEGIN
476
+ RETURN QUERY
477
+ SELECT
478
+ c.id AS chunk_id,
479
+ c.uuid AS chunk_uuid,
480
+ c.document_id,
481
+ ki.uuid AS document_uuid,
482
+ c.chunk_text,
483
+ c.chunk_index,
484
+ c.start_char,
485
+ c.end_char,
486
+ c.token_count,
487
+ ki.title AS document_title,
488
+ ki.description AS document_description,
489
+ ki.type AS document_type,
490
+ ki.metadata AS document_metadata,
491
+ c.metadata AS chunk_metadata,
492
+ ki.company_id,
493
+ 1 - (c.embedding <=> query_embedding::vector(3072)) AS similarity
494
+ FROM vezlo_knowledge_chunks c
495
+ INNER JOIN vezlo_knowledge_items ki ON c.document_id = ki.id
496
+ WHERE c.embedding IS NOT NULL
497
+ AND (filter_company_id IS NULL OR ki.company_id = filter_company_id)
498
+ AND (1 - (c.embedding <=> query_embedding::vector(3072))) >= match_threshold
499
+ ORDER BY c.embedding <=> query_embedding::vector(3072)
500
+ LIMIT match_count;
501
+ END;
502
+ $$;
503
+
504
+ -- ============================================================================
505
+ -- LEGACY RPC FUNCTION (Pre-Migration 006)
506
+ -- ============================================================================
507
+ -- This function searches the parent table directly (legacy, not used with chunks)
334
508
  CREATE OR REPLACE FUNCTION match_vezlo_knowledge(
335
509
  query_embedding vector(1536),
336
510
  match_threshold float DEFAULT 0.5,
package/dist/knexfile.js CHANGED
@@ -24,12 +24,11 @@ const tsMigrationProbe = path.join(srcMigrationsPath, '001_initial_schema.ts');
24
24
  const jsMigrationProbe = path.join(distMigrationsPath, '001_initial_schema.js');
25
25
  const hasTsMigrations = fs.existsSync(tsMigrationProbe);
26
26
  const hasJsMigrations = fs.existsSync(jsMigrationProbe);
27
- const resolvedMigrationsDirectory = hasTsMigrations
28
- ? srcMigrationsPath
29
- : hasJsMigrations
30
- ? distMigrationsPath
31
- : srcMigrationsPath;
32
- const migrationExtension = hasTsMigrations ? 'ts' : (hasJsMigrations ? 'js' : 'ts');
27
+ const preferJsMigrations = hasJsMigrations;
28
+ const resolvedMigrationsDirectory = preferJsMigrations
29
+ ? distMigrationsPath
30
+ : srcMigrationsPath;
31
+ const migrationExtension = preferJsMigrations ? 'js' : 'ts';
33
32
  const migrationLoadExtensions = migrationExtension === 'ts' ? ['.ts'] : ['.js'];
34
33
  const supabaseMigrationsDirectory = fs.existsSync(distMigrationsPath)
35
34
  ? distMigrationsPath
@@ -1 +1 @@
1
- {"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../knexfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../knexfile.ts"],"names":[],"mappings":"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"}
@@ -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,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;AAGnE,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;KAC9B,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;KACpC,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,CAyF3F"}
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,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;AAInE,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;KAC9B,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;KACpC,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,CA0G3F"}
@@ -16,6 +16,7 @@ const AuthController_1 = require("../controllers/AuthController");
16
16
  const ApiKeyService_1 = require("../services/ApiKeyService");
17
17
  const ApiKeyController_1 = require("../controllers/ApiKeyController");
18
18
  const IntentService_1 = require("../services/IntentService");
19
+ const RealtimePublisher_1 = require("../services/RealtimePublisher");
19
20
  const DEFAULT_CHAT_HISTORY_LENGTH = 2;
20
21
  const DEFAULT_CONVERSATION_TIMEOUT = 3600000; // 1 hour
21
22
  function getChatHistoryLength() {
@@ -41,6 +42,7 @@ function initializeCoreServices(options) {
41
42
  supabase,
42
43
  tableName: knowledgeTableName
43
44
  });
45
+ // Initialize V2 service for adjacent chunk retrieval
44
46
  // Read AI configuration from environment
45
47
  // Use AI_MODEL for all OpenAI calls (intent classification + response generation)
46
48
  const aiModel = process.env.AI_MODEL || 'gpt-4o-mini';
@@ -61,6 +63,7 @@ function initializeCoreServices(options) {
61
63
  maxTokens: aiMaxTokens,
62
64
  knowledgeBaseService: knowledgeBase
63
65
  });
66
+ // Set V2 service for adjacent chunk retrieval
64
67
  const chatManager = new ChatManager_1.ChatManager({
65
68
  aiService,
66
69
  storage,
@@ -75,9 +78,19 @@ function initializeCoreServices(options) {
75
78
  assistantName: process.env.ASSISTANT_NAME,
76
79
  organizationName: process.env.ORGANIZATION_NAME
77
80
  });
81
+ // Initialize realtime publisher if env vars are available
82
+ let realtimePublisher;
83
+ if (process.env.SUPABASE_URL && process.env.SUPABASE_SERVICE_KEY) {
84
+ realtimePublisher = new RealtimePublisher_1.RealtimePublisher(process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_KEY);
85
+ logger_1.default.info('✅ Realtime publisher initialized');
86
+ }
87
+ else {
88
+ logger_1.default.warn('⚠️ Realtime publisher not initialized (missing SUPABASE_URL or SUPABASE_SERVICE_KEY)');
89
+ }
78
90
  const chatController = new ChatController_1.ChatController(chatManager, storage, supabase, {
79
91
  historyLength: resolvedHistoryLength,
80
- intentService
92
+ intentService,
93
+ realtimePublisher
81
94
  });
82
95
  const knowledgeController = new KnowledgeController_1.KnowledgeController(knowledgeBase, aiService);
83
96
  const authController = new AuthController_1.AuthController(supabase);
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,EAAE;QACV,uBAAuB,EAAE,OAAO,CAAC;QACjC,wBAAwB,EAAE,OAAO,CAAC;QAClC,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,oBAAoB,EAAE,OAAO,CAAC;QAC9B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAGD,eAAO,MAAM,aAAa,EAAE,YAuD3B,CAAC;AAwBF,eAAO,MAAM,MAAM,EAAE,YAYpB,CAAC;AAGF,wBAAgB,cAAc,IAAI,IAAI,CAerC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,EAAE;QACV,uBAAuB,EAAE,OAAO,CAAC;QACjC,wBAAwB,EAAE,OAAO,CAAC;QAClC,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,oBAAoB,EAAE,OAAO,CAAC;QAC9B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAeD,eAAO,MAAM,aAAa,EAAE,YAuD3B,CAAC;AAwBF,eAAO,MAAM,MAAM,EAAE,YAYpB,CAAC;AAGF,wBAAgB,cAAc,IAAI,IAAI,CAerC;AAED,eAAe,MAAM,CAAC"}
@@ -9,6 +9,15 @@ exports.validateConfig = validateConfig;
9
9
  const dotenv_1 = require("dotenv");
10
10
  // Load environment variables first
11
11
  (0, dotenv_1.config)();
12
+ const getDefaultCorsOrigins = () => {
13
+ if (!process.env.CORS_ORIGINS) {
14
+ return [];
15
+ }
16
+ const parsedOrigins = process.env.CORS_ORIGINS.split(',')
17
+ .map((origin) => origin.trim())
18
+ .filter(Boolean);
19
+ return parsedOrigins;
20
+ };
12
21
  // Default configuration
13
22
  exports.defaultConfig = {
14
23
  app: {
@@ -21,7 +30,7 @@ exports.defaultConfig = {
21
30
  api: {
22
31
  prefix: '/api',
23
32
  version: 'v1',
24
- timeout: 30000, // 30 seconds
33
+ timeout: 60000, // 60 seconds (matches Vercel Pro plan limit)
25
34
  rateLimiting: {
26
35
  windowMs: parseInt(process.env.RATE_LIMIT_WINDOW || '900000'), // Default 15 minutes
27
36
  maxRequests: parseInt(process.env.RATE_LIMIT_MAX || '100') // per window
@@ -56,7 +65,7 @@ exports.defaultConfig = {
56
65
  },
57
66
  cors: {
58
67
  enabled: true,
59
- origins: process.env.CORS_ORIGINS?.split(',') || ['http://localhost:3000', 'http://localhost:3001'],
68
+ origins: getDefaultCorsOrigins(),
60
69
  methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
61
70
  credentials: true
62
71
  },
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { SupabaseClient } from '@supabase/supabase-js';
2
+ import type { RealtimePublisher } from '../services/RealtimePublisher';
2
3
  export declare class AuthController {
3
4
  private supabase;
4
- constructor(supabase: SupabaseClient);
5
+ private realtimePublisher?;
6
+ constructor(supabase: SupabaseClient, realtimePublisher?: RealtimePublisher);
7
+ setRealtimePublisher(publisher: RealtimePublisher): void;
5
8
  login(req: any, res: any): Promise<void>;
6
9
  logout(req: any, res: any): Promise<void>;
7
10
  getMe(req: any, res: any): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;gBAErB,QAAQ,EAAE,cAAc;IAK9B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YA+BhC,WAAW;YAcX,cAAc;YAsBd,cAAc;YAcd,mBAAmB;YAsBnB,wBAAwB;CAUvC"}
1
+ {"version":3,"file":"AuthController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAElC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE,iBAAiB;IAK3E,oBAAoB,CAAC,SAAS,EAAE,iBAAiB;IAK3C,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAiChC,WAAW;YAcX,cAAc;YAsBd,cAAc;YAcd,mBAAmB;YAsBnB,wBAAwB;CAUvC"}
@@ -40,8 +40,12 @@ exports.AuthController = void 0;
40
40
  const auth_1 = require("../middleware/auth");
41
41
  const logger_1 = __importDefault(require("../config/logger"));
42
42
  class AuthController {
43
- constructor(supabase) {
43
+ constructor(supabase, realtimePublisher) {
44
44
  this.supabase = supabase;
45
+ this.realtimePublisher = realtimePublisher;
46
+ }
47
+ setRealtimePublisher(publisher) {
48
+ this.realtimePublisher = publisher;
45
49
  }
46
50
  // Login endpoint
47
51
  async login(req, res) {
@@ -115,7 +119,7 @@ class AuthController {
115
119
  res.status(401).json({ error: 'Not authenticated' });
116
120
  return;
117
121
  }
118
- res.json({
122
+ const responsePayload = {
119
123
  user: {
120
124
  uuid: req.user.uuid,
121
125
  email: req.user.email,
@@ -127,7 +131,8 @@ class AuthController {
127
131
  company_name: req.profile.companyName,
128
132
  role: req.profile.role
129
133
  }
130
- });
134
+ };
135
+ res.json(responsePayload);
131
136
  }
132
137
  catch (error) {
133
138
  logger_1.default.error('Get me error:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"AuthController.js","sourceRoot":"","sources":["../../../src/controllers/AuthController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthController.js","sourceRoot":"","sources":["../../../src/controllers/AuthController.ts"],"names":[],"mappings":"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"}