@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
@@ -1 +1 @@
1
- {"version":3,"file":"UnifiedStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/UnifiedStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,cAAe,YAAW,WAAW;IACzC,aAAa,EAAE,sBAAsB,CAAC;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;gBAGlC,QAAQ,EAAE,cAAc,EACxB,WAAW,GAAE,MAAW;IAWpB,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQ1F,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInE,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIzF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI7D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ1D;;OAEG;IACG,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QACjE,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;QACtC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;KAC/B,CAAC;IASF;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAClC,QAAQ,EAAE,QAAQ,EAAE,CAAC;KACtB,CAAC;CAQH"}
1
+ {"version":3,"file":"UnifiedStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/UnifiedStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,cAAe,YAAW,WAAW;IACzC,aAAa,EAAE,sBAAsB,CAAC;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;gBAGlC,QAAQ,EAAE,cAAc,EACxB,WAAW,GAAE,MAAW;IAWpB,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAQ5B,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInE,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,KAAK,SAAK,EACV,MAAM,SAAI,EACV,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIzB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI7D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ1D;;OAEG;IACG,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QACjE,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;QACtC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;KAC/B,CAAC;IASF;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAClC,QAAQ,EAAE,QAAQ,EAAE,CAAC;KACtB,CAAC;CAQH"}
@@ -30,8 +30,8 @@ class UnifiedStorage {
30
30
  async deleteConversation(conversationId) {
31
31
  return this.conversations.deleteConversation(conversationId);
32
32
  }
33
- async getUserConversations(userId, organizationId) {
34
- return this.conversations.getUserConversations(userId, organizationId);
33
+ async getUserConversations(userId, organizationId, options) {
34
+ return this.conversations.getUserConversations(userId, organizationId, options);
35
35
  }
36
36
  // ============================================================================
37
37
  // MESSAGE METHODS (Delegate to MessageRepository)
@@ -39,8 +39,8 @@ class UnifiedStorage {
39
39
  async saveMessage(message) {
40
40
  return this.messages.saveMessage(message);
41
41
  }
42
- async getMessages(conversationId, limit = 50, offset = 0) {
43
- return this.messages.getMessages(conversationId, limit, offset);
42
+ async getMessages(conversationId, limit = 50, offset = 0, options) {
43
+ return this.messages.getMessages(conversationId, limit, offset, options);
44
44
  }
45
45
  async deleteMessage(messageId) {
46
46
  return this.messages.deleteMessage(messageId);
@@ -1 +1 @@
1
- {"version":3,"file":"UnifiedStorage.js","sourceRoot":"","sources":["../../../src/storage/UnifiedStorage.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAClE,2DAAwD;AACxD,6DAA0D;AAE1D;;;;GAIG;AACH,MAAa,cAAc;IAKzB,YACE,QAAwB,EACxB,cAAsB,EAAE;QAExB,IAAI,CAAC,aAAa,GAAG,IAAI,+CAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,uCAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,+EAA+E;IAC/E,4DAA4D;IAC5D,+EAA+E;IAE/E,KAAK,CAAC,gBAAgB,CAAC,YAA8B;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,OAAkC;QACjF,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,cAAuB;QAChE,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,+EAA+E;IAC/E,kDAAkD;IAClD,+EAA+E;IAE/E,KAAK,CAAC,WAAW,CAAC,OAA0B;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,+EAA+E;IAC/E,oDAAoD;IACpD,+EAA+E;IAE/E,KAAK,CAAC,YAAY,CAAC,QAAkB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,+EAA+E;IAC/E,iCAAiC;IACjC,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAAC,cAAsB;QAItD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;SACjC,CAAC,CAAC;QAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QAI5C,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;CACF;AAnHD,wCAmHC"}
1
+ {"version":3,"file":"UnifiedStorage.js","sourceRoot":"","sources":["../../../src/storage/UnifiedStorage.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ export interface ChatContext {
24
24
  metadata?: Record<string, any>;
25
25
  }
26
26
  export interface ChatMessage {
27
- role: 'user' | 'assistant' | 'system';
27
+ id?: string;
28
+ role: 'user' | 'assistant' | 'system' | 'agent';
28
29
  content: string;
29
30
  createdAt?: Date;
30
31
  toolCalls?: any;
@@ -68,27 +69,46 @@ export interface ChatConversation {
68
69
  createdAt: Date;
69
70
  updatedAt: Date;
70
71
  deletedAt?: Date;
72
+ joinedAt?: Date;
73
+ respondedAt?: Date;
74
+ closedAt?: Date;
75
+ lastMessageAt?: Date;
76
+ status?: string;
71
77
  }
72
78
  export interface StoredChatMessage {
73
79
  id?: string;
74
80
  conversationId: string;
75
81
  threadId: string;
76
- role: 'user' | 'assistant' | 'system';
82
+ role: 'user' | 'assistant' | 'system' | 'agent';
77
83
  content: string;
78
84
  parentMessageId?: string;
79
85
  toolCalls?: any;
80
86
  toolResults?: DatabaseSearchResult[];
87
+ authorId?: number;
81
88
  createdAt: Date;
82
89
  updatedAt?: Date;
83
90
  }
91
+ export interface MessageListOptions {
92
+ order?: 'asc' | 'desc';
93
+ types?: string[];
94
+ }
95
+ export interface ConversationListOptions {
96
+ limit?: number;
97
+ offset?: number;
98
+ orderBy?: 'last_message_at' | 'updated_at';
99
+ }
100
+ export interface ConversationListResult {
101
+ conversations: ChatConversation[];
102
+ total: number;
103
+ }
84
104
  export interface ChatStorage {
85
105
  saveConversation(conversation: ChatConversation): Promise<ChatConversation>;
86
106
  getConversation(conversationId: string): Promise<ChatConversation | null>;
87
107
  updateConversation(conversationId: string, updates: Partial<ChatConversation>): Promise<ChatConversation>;
88
108
  deleteConversation(conversationId: string): Promise<boolean>;
89
- getUserConversations(userId: string, organizationId?: string): Promise<ChatConversation[]>;
109
+ getUserConversations(userId: string, organizationId?: string, options?: ConversationListOptions): Promise<ConversationListResult>;
90
110
  saveMessage(message: StoredChatMessage): Promise<StoredChatMessage>;
91
- getMessages(conversationId: string, limit?: number, offset?: number): Promise<StoredChatMessage[]>;
111
+ getMessages(conversationId: string, limit?: number, offset?: number, options?: MessageListOptions): Promise<StoredChatMessage[]>;
92
112
  deleteMessage(messageId: string): Promise<boolean>;
93
113
  saveFeedback(feedback: Feedback): Promise<Feedback>;
94
114
  getFeedback(messageId: string): Promise<Feedback[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,GAAG,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,cAAc,EAAE,cAAc,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC1E,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1G,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC3F,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpE,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
package/knexfile.ts CHANGED
@@ -26,13 +26,13 @@ const jsMigrationProbe = path.join(distMigrationsPath, '001_initial_schema.js');
26
26
  const hasTsMigrations = fs.existsSync(tsMigrationProbe);
27
27
  const hasJsMigrations = fs.existsSync(jsMigrationProbe);
28
28
 
29
- const resolvedMigrationsDirectory = hasTsMigrations
30
- ? srcMigrationsPath
31
- : hasJsMigrations
29
+ const preferJsMigrations = hasJsMigrations;
30
+
31
+ const resolvedMigrationsDirectory = preferJsMigrations
32
32
  ? distMigrationsPath
33
33
  : srcMigrationsPath;
34
34
 
35
- const migrationExtension = hasTsMigrations ? 'ts' : (hasJsMigrations ? 'js' : 'ts');
35
+ const migrationExtension = preferJsMigrations ? 'js' : 'ts';
36
36
  const migrationLoadExtensions = migrationExtension === 'ts' ? ['.ts'] : ['.js'];
37
37
 
38
38
  const supabaseMigrationsDirectory = fs.existsSync(distMigrationsPath)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vezlo/assistant-server",
3
- "version": "2.2.1",
4
- "description": "Production-ready AI Assistant Server with vector search, conversation management, and real-time communication",
3
+ "version": "2.3.0",
4
+ "description": "Production-ready AI Assistant Server with advanced RAG (chunk-based semantic search + adjacent retrieval), conversation management, real-time communication, and human agent handoff",
5
5
  "main": "dist/src/server.js",
6
6
  "types": "dist/src/server.d.ts",
7
7
  "bin": {
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Diagnostic script to check chunks, embeddings, and test search
3
+ * Run with: node scripts/test-chunks-embeddings.js
4
+ */
5
+
6
+ require('dotenv').config();
7
+ const { createClient } = require('@supabase/supabase-js');
8
+
9
+ const supabaseUrl = process.env.SUPABASE_URL;
10
+ const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_ANON_KEY;
11
+
12
+ if (!supabaseUrl || !supabaseKey) {
13
+ console.error('āŒ Missing SUPABASE_URL or SUPABASE_KEY in environment');
14
+ process.exit(1);
15
+ }
16
+
17
+ const supabase = createClient(supabaseUrl, supabaseKey);
18
+
19
+ async function generateEmbedding(text) {
20
+ if (!process.env.OPENAI_API_KEY) {
21
+ console.error('āŒ OPENAI_API_KEY not set');
22
+ return null;
23
+ }
24
+
25
+ try {
26
+ const response = await fetch('https://api.openai.com/v1/embeddings', {
27
+ method: 'POST',
28
+ headers: {
29
+ 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
30
+ 'Content-Type': 'application/json'
31
+ },
32
+ body: JSON.stringify({
33
+ model: 'text-embedding-3-large',
34
+ input: text.substring(0, 8000)
35
+ })
36
+ });
37
+
38
+ if (!response.ok) {
39
+ const errorText = await response.text();
40
+ throw new Error(`OpenAI API error: ${response.status} - ${errorText}`);
41
+ }
42
+
43
+ const data = await response.json();
44
+ return data.data[0].embedding;
45
+ } catch (error) {
46
+ console.error('Failed to generate embedding:', error);
47
+ return null;
48
+ }
49
+ }
50
+
51
+ async function testChunks() {
52
+ console.log('šŸ” Testing chunks, embeddings, and search...\n');
53
+
54
+ // 1. Find the Python files
55
+ console.log('1ļøāƒ£ Finding Python files...');
56
+ const { data: items, error: itemsError } = await supabase
57
+ .from('vezlo_knowledge_items')
58
+ .select('id, uuid, title, type')
59
+ .in('title', ['setup_company_credentials.py', 'setup_partnership_system.py']);
60
+
61
+ if (itemsError) {
62
+ console.error('āŒ Error fetching items:', itemsError);
63
+ return;
64
+ }
65
+
66
+ if (!items || items.length === 0) {
67
+ console.log('āš ļø No matching files found');
68
+ return;
69
+ }
70
+
71
+ console.log(`āœ… Found ${items.length} file(s)\n`);
72
+
73
+ for (const item of items) {
74
+ console.log(`\n${'='.repeat(70)}`);
75
+ console.log(`šŸ“„ File: ${item.title} (ID: ${item.id})`);
76
+ console.log('='.repeat(70));
77
+
78
+ // 2. Get all chunks
79
+ const { data: chunks, error: chunksError } = await supabase
80
+ .from('vezlo_knowledge_chunks')
81
+ .select('id, chunk_index, chunk_text, embedding, processed_at')
82
+ .eq('document_id', item.id)
83
+ .order('chunk_index', { ascending: true });
84
+
85
+ if (chunksError) {
86
+ console.error(`āŒ Error fetching chunks:`, chunksError);
87
+ continue;
88
+ }
89
+
90
+ if (!chunks || chunks.length === 0) {
91
+ console.log('āš ļø No chunks found');
92
+ continue;
93
+ }
94
+
95
+ console.log(`\nšŸ“¦ Found ${chunks.length} chunk(s):\n`);
96
+
97
+ // Show chunk details
98
+ chunks.forEach((chunk) => {
99
+ console.log(`Chunk ${chunk.chunk_index}:`);
100
+ console.log(` Text (first 150 chars): ${chunk.chunk_text.substring(0, 150)}...`);
101
+ console.log(` Text length: ${chunk.chunk_text.length} chars`);
102
+ console.log(` Has embedding: ${chunk.embedding ? 'Yes' : 'No'}`);
103
+ if (chunk.embedding) {
104
+ const embeddingArray = Array.isArray(chunk.embedding) ? chunk.embedding :
105
+ (typeof chunk.embedding === 'string' ? JSON.parse(chunk.embedding) : null);
106
+ console.log(` Embedding dimensions: ${embeddingArray ? embeddingArray.length : 'N/A'}`);
107
+ }
108
+ console.log('');
109
+ });
110
+
111
+ // 3. Test search queries
112
+ console.log(`\nšŸ”Ž Testing search queries for ${item.title}...\n`);
113
+
114
+ const testQueries = [
115
+ 'run function',
116
+ 'what does run function do',
117
+ 'run()',
118
+ 'run_migration function',
119
+ 'verify_perplexity_api_key',
120
+ 'setup_env'
121
+ ];
122
+
123
+ for (const query of testQueries) {
124
+ console.log(`\nQuery: "${query}"`);
125
+ console.log('─'.repeat(60));
126
+
127
+ // Generate query embedding
128
+ console.log(' Generating query embedding...');
129
+ const queryEmbedding = await generateEmbedding(query);
130
+
131
+ if (!queryEmbedding) {
132
+ console.log(' āŒ Failed to generate embedding');
133
+ continue;
134
+ }
135
+
136
+ console.log(` āœ… Embedding generated (${queryEmbedding.length} dimensions)`);
137
+
138
+ // Test RPC function
139
+ console.log(' Calling vezlo_match_knowledge_chunks RPC...');
140
+ const { data: results, error: rpcError } = await supabase.rpc('vezlo_match_knowledge_chunks', {
141
+ query_embedding: JSON.stringify(queryEmbedding),
142
+ match_threshold: 0.20,
143
+ match_count: 5,
144
+ filter_company_id: null
145
+ });
146
+
147
+ if (rpcError) {
148
+ console.log(` āŒ RPC error:`, rpcError);
149
+ continue;
150
+ }
151
+
152
+ if (!results || results.length === 0) {
153
+ console.log(` āš ļø No results found (threshold: 0.20)`);
154
+
155
+ // Try with lower threshold
156
+ const { data: lowThresholdResults } = await supabase.rpc('vezlo_match_knowledge_chunks', {
157
+ query_embedding: JSON.stringify(queryEmbedding),
158
+ match_threshold: 0.10,
159
+ match_count: 5,
160
+ filter_company_id: null
161
+ });
162
+
163
+ if (lowThresholdResults && lowThresholdResults.length > 0) {
164
+ console.log(` ā„¹ļø Found ${lowThresholdResults.length} result(s) with threshold 0.10:`);
165
+ lowThresholdResults.forEach((r, idx) => {
166
+ if (r.document_title === item.title) {
167
+ console.log(` ${idx + 1}. Chunk ${r.chunk_index}: similarity=${r.similarity.toFixed(3)}`);
168
+ console.log(` Text: "${r.chunk_text.substring(0, 100)}..."`);
169
+ }
170
+ });
171
+ }
172
+ } else {
173
+ console.log(` āœ… Found ${results.length} result(s):`);
174
+ results.forEach((r, idx) => {
175
+ if (r.document_title === item.title) {
176
+ console.log(` ${idx + 1}. Chunk ${r.chunk_index}: similarity=${r.similarity.toFixed(3)}`);
177
+ console.log(` Text: "${r.chunk_text.substring(0, 100)}..."`);
178
+ console.log(` Contains function name: ${r.chunk_text.toLowerCase().includes(query.toLowerCase().replace(/[()]/g, '')) ? 'Yes' : 'No'}`);
179
+ }
180
+ });
181
+ }
182
+ }
183
+ }
184
+
185
+ console.log('\n\n' + '='.repeat(70));
186
+ console.log('āœ… Diagnostic complete');
187
+ console.log('='.repeat(70));
188
+ }
189
+
190
+ testChunks().catch(console.error);