@hivegpt/hiveai-angular 0.0.564 → 0.0.565

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.
@@ -14,8 +14,15 @@ export class ConversationService {
14
14
  });
15
15
  return timestamp + randomHex;
16
16
  }
17
- getKey(botId, resetKey = false) {
18
- const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;
17
+ /**
18
+ * Returns a stable conversation id persisted in localStorage.
19
+ *
20
+ * IMPORTANT: call-sites should pass an event-specific scope when needed (e.g. eventId)
21
+ * so switching events does not reuse the previous event's conversation thread.
22
+ */
23
+ getKey(botId, resetKey = false, scope) {
24
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
25
+ const storageKey = `${this.conversationStorageKeyPrefix}${botId}${normalizedScope ? `_${normalizedScope}` : ''}`;
19
26
  let value = localStorage.getItem(storageKey);
20
27
  if (!value || resetKey) {
21
28
  value = this.generateKey();
@@ -23,8 +30,9 @@ export class ConversationService {
23
30
  }
24
31
  return value;
25
32
  }
26
- getSessionKey(sessionId, resetKey = false) {
27
- const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;
33
+ getSessionKey(sessionId, resetKey = false, scope) {
34
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
35
+ const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}${normalizedScope ? `_${normalizedScope}` : ''}`;
28
36
  let value = localStorage.getItem(storageKey);
29
37
  if (!value || resetKey) {
30
38
  value = this.generateKey();
@@ -46,4 +54,4 @@ ConversationService.decorators = [
46
54
  },] }
47
55
  ];
48
56
  ConversationService.ctorParameters = () => [];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3JvaGl0dGhha3VyL2hpdmUtZ3B0L0hpdmVBSS1QYWNrYWdlcy9Bbmd1bGFyL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCO1FBTFEsaUNBQTRCLEdBQUcsa0JBQWtCLENBQUM7UUFDbEQsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBRXhDLDZCQUF3QixHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBRXBELENBQUM7SUFFakIsV0FBVztRQUNULE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhLEVBQUUsV0FBb0IsS0FBSztRQUM3QyxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhLENBQUMsU0FBaUIsRUFBRSxXQUFvQixLQUFLO1FBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pFLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDdEIsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQVk7UUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7Ozs7WUFqREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uU3RvcmFnZUtleVByZWZpeCA9ICdjb252ZXJzYXRpb25LZXlfJztcbiAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZUtleVByZWZpeCA9ICdzZXNzaW9uS2V5Xyc7XG5cbiAgcHJpdmF0ZSB1c2VyU3BlY2lmaWNOb3RpZmljYXRpb246IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGdlbmVyYXRlS2V5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKDE2KTtcbiAgICBjb25zdCByYW5kb21IZXggPSAneHh4eHh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3hdL2csICgpID0+IHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICAgIHJldHVybiB0aW1lc3RhbXAgKyByYW5kb21IZXg7XG4gIH1cblxuICBnZXRLZXkoYm90SWQ6IHN0cmluZywgcmVzZXRLZXk6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke3RoaXMuY29udmVyc2F0aW9uU3RvcmFnZUtleVByZWZpeH0ke2JvdElkfWA7XG4gICAgbGV0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHJlc2V0S2V5KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2VuZXJhdGVLZXkoKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBnZXRTZXNzaW9uS2V5KHNlc3Npb25JZDogc3RyaW5nLCByZXNldEtleTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7dGhpcy5zZXNzaW9uU3RvcmFnZUtleVByZWZpeH0ke3Nlc3Npb25JZH1gO1xuICAgIGxldCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCByZXNldEtleSkge1xuICAgICAgdmFsdWUgPSB0aGlzLmdlbmVyYXRlS2V5KCk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc2VuZFZhbGlkYXRlZFVzZXJEYXRhKG1lc3NhZ2U6IGFueSkge1xuICAgIHRoaXMudXNlclNwZWNpZmljTm90aWZpY2F0aW9uLm5leHQobWVzc2FnZSk7XG4gIH1cblxuICBnZXRVc2VyU3BlY2lmaWNOb3RpZmljYXRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyU3BlY2lmaWNOb3RpZmljYXRpb24uYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3JvaGl0dGhha3VyL2hpdmUtZ3B0L0hpdmVBSS1QYWNrYWdlcy9Bbmd1bGFyL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCO1FBTFEsaUNBQTRCLEdBQUcsa0JBQWtCLENBQUM7UUFDbEQsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBRXhDLDZCQUF3QixHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBRXBELENBQUM7SUFFakIsV0FBVztRQUNULE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQWEsRUFBRSxXQUFvQixLQUFLLEVBQUUsS0FBYztRQUM3RCxNQUFNLGVBQWUsR0FDbkIsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLEdBQzdELGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDNUMsRUFBRSxDQUFDO1FBQ0gsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUN0QixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQWlCLEVBQUUsV0FBb0IsS0FBSyxFQUFFLEtBQWM7UUFDeEUsTUFBTSxlQUFlLEdBQ25CLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxHQUM1RCxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQzVDLEVBQUUsQ0FBQztRQUNILElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDdEIsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQVk7UUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7Ozs7WUEvREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uU3RvcmFnZUtleVByZWZpeCA9ICdjb252ZXJzYXRpb25LZXlfJztcbiAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZUtleVByZWZpeCA9ICdzZXNzaW9uS2V5Xyc7XG5cbiAgcHJpdmF0ZSB1c2VyU3BlY2lmaWNOb3RpZmljYXRpb246IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGdlbmVyYXRlS2V5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKDE2KTtcbiAgICBjb25zdCByYW5kb21IZXggPSAneHh4eHh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3hdL2csICgpID0+IHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICAgIHJldHVybiB0aW1lc3RhbXAgKyByYW5kb21IZXg7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0YWJsZSBjb252ZXJzYXRpb24gaWQgcGVyc2lzdGVkIGluIGxvY2FsU3RvcmFnZS5cbiAgICpcbiAgICogSU1QT1JUQU5UOiBjYWxsLXNpdGVzIHNob3VsZCBwYXNzIGFuIGV2ZW50LXNwZWNpZmljIHNjb3BlIHdoZW4gbmVlZGVkIChlLmcuIGV2ZW50SWQpXG4gICAqIHNvIHN3aXRjaGluZyBldmVudHMgZG9lcyBub3QgcmV1c2UgdGhlIHByZXZpb3VzIGV2ZW50J3MgY29udmVyc2F0aW9uIHRocmVhZC5cbiAgICovXG4gIGdldEtleShib3RJZDogc3RyaW5nLCByZXNldEtleTogYm9vbGVhbiA9IGZhbHNlLCBzY29wZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID1cbiAgICAgIHNjb3BlICE9IG51bGwgJiYgU3RyaW5nKHNjb3BlKS50cmltKCkgIT09ICcnID8gU3RyaW5nKHNjb3BlKS50cmltKCkgOiAnJztcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7dGhpcy5jb252ZXJzYXRpb25TdG9yYWdlS2V5UHJlZml4fSR7Ym90SWR9JHtcbiAgICAgIG5vcm1hbGl6ZWRTY29wZSA/IGBfJHtub3JtYWxpemVkU2NvcGV9YCA6ICcnXG4gICAgfWA7XG4gICAgbGV0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHJlc2V0S2V5KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2VuZXJhdGVLZXkoKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBnZXRTZXNzaW9uS2V5KHNlc3Npb25JZDogc3RyaW5nLCByZXNldEtleTogYm9vbGVhbiA9IGZhbHNlLCBzY29wZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID1cbiAgICAgIHNjb3BlICE9IG51bGwgJiYgU3RyaW5nKHNjb3BlKS50cmltKCkgIT09ICcnID8gU3RyaW5nKHNjb3BlKS50cmltKCkgOiAnJztcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7dGhpcy5zZXNzaW9uU3RvcmFnZUtleVByZWZpeH0ke3Nlc3Npb25JZH0ke1xuICAgICAgbm9ybWFsaXplZFNjb3BlID8gYF8ke25vcm1hbGl6ZWRTY29wZX1gIDogJydcbiAgICB9YDtcbiAgICBsZXQgdmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcblxuICAgIGlmICghdmFsdWUgfHwgcmVzZXRLZXkpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5nZW5lcmF0ZUtleSgpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHNlbmRWYWxpZGF0ZWRVc2VyRGF0YShtZXNzYWdlOiBhbnkpIHtcbiAgICB0aGlzLnVzZXJTcGVjaWZpY05vdGlmaWNhdGlvbi5uZXh0KG1lc3NhZ2UpO1xuICB9XG5cbiAgZ2V0VXNlclNwZWNpZmljTm90aWZpY2F0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNwZWNpZmljTm90aWZpY2F0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
@@ -325,8 +325,15 @@ class ConversationService {
325
325
  });
326
326
  return timestamp + randomHex;
327
327
  }
328
- getKey(botId, resetKey = false) {
329
- const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;
328
+ /**
329
+ * Returns a stable conversation id persisted in localStorage.
330
+ *
331
+ * IMPORTANT: call-sites should pass an event-specific scope when needed (e.g. eventId)
332
+ * so switching events does not reuse the previous event's conversation thread.
333
+ */
334
+ getKey(botId, resetKey = false, scope) {
335
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
336
+ const storageKey = `${this.conversationStorageKeyPrefix}${botId}${normalizedScope ? `_${normalizedScope}` : ''}`;
330
337
  let value = localStorage.getItem(storageKey);
331
338
  if (!value || resetKey) {
332
339
  value = this.generateKey();
@@ -334,8 +341,9 @@ class ConversationService {
334
341
  }
335
342
  return value;
336
343
  }
337
- getSessionKey(sessionId, resetKey = false) {
338
- const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;
344
+ getSessionKey(sessionId, resetKey = false, scope) {
345
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
346
+ const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}${normalizedScope ? `_${normalizedScope}` : ''}`;
339
347
  let value = localStorage.getItem(storageKey);
340
348
  if (!value || resetKey) {
341
349
  value = this.generateKey();
@@ -1718,7 +1726,7 @@ class ChatDrawerComponent {
1718
1726
  this.socketService.connectSocketConnection();
1719
1727
  setTimeout(() => {
1720
1728
  console.log('YES INIT');
1721
- const conversation_id = this.conversationService.getKey(this.botId);
1729
+ const conversation_id = this.conversationService.getKey(this.botId, false, this.eventId);
1722
1730
  this.socketService.registerUserSpecificHiveSocket(this.botId, conversation_id, this.orgId);
1723
1731
  setTimeout(() => {
1724
1732
  this.listenSockets();
@@ -3187,8 +3195,8 @@ class ChatDrawerComponent {
3187
3195
  }
3188
3196
  fetchChatHistory() {
3189
3197
  this.loading = true;
3190
- this.conversationKey = this.conversationService.getKey(this.botId, false);
3191
- this.conSessionKey = this.conversationService.getSessionKey(this.botId, false);
3198
+ this.conversationKey = this.conversationService.getKey(this.botId, false, this.eventId);
3199
+ this.conSessionKey = this.conversationService.getSessionKey(this.botId, false, this.eventId);
3192
3200
  const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}?session_id=${this.conSessionKey}`;
3193
3201
  const headers = new HttpHeaders({
3194
3202
  accept: 'application/json',
@@ -3730,7 +3738,7 @@ class ChatDrawerComponent {
3730
3738
  console.log(message);
3731
3739
  this.feedbackDone = true;
3732
3740
  this.showFeedBackIconsIndex = null;
3733
- const conversation_id = this.conversationService.getKey(this.botId);
3741
+ const conversation_id = this.conversationService.getKey(this.botId, false, this.eventId);
3734
3742
  const url = `${this.environment.AGENTS_API}/Conversation/coPilot/${this.botId}/conversation/${conversation_id}/helpful-response`;
3735
3743
  fetch(url, {
3736
3744
  method: 'POST',
@@ -4167,7 +4175,7 @@ class ChatDrawerComponent {
4167
4175
  this.isContentLoaded = false;
4168
4176
  console.log('API call function');
4169
4177
  this.loading = true;
4170
- const conversation_id = this.conversationService.getKey(this.botId);
4178
+ const conversation_id = this.conversationService.getKey(this.botId, false, this.eventId);
4171
4179
  this.conversationId = conversation_id;
4172
4180
  const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${conversation_id}&botId=${this.botId}`;
4173
4181
  const headers = new HttpHeaders({
@@ -4609,7 +4617,7 @@ class ChatDrawerComponent {
4609
4617
  return Object.keys(obj).map((key) => ({ key, value: obj[key] }));
4610
4618
  }
4611
4619
  startNewConversation() {
4612
- this.conversationKey = this.conversationService.getKey(this.botId, true);
4620
+ this.conversationKey = this.conversationService.getKey(this.botId, true, this.eventId);
4613
4621
  this.chatLog = [this.chatLog[0]];
4614
4622
  this.isChatingWithAi = false;
4615
4623
  this.chatSocketInitialized = false;
@@ -4677,7 +4685,7 @@ class ChatDrawerComponent {
4677
4685
  }
4678
4686
  openVoiceModal() {
4679
4687
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
4680
- const conversationId = (_b = (_a = this.conversationKey) !== null && _a !== void 0 ? _a : this.conversationService.getKey(this.botId, false)) !== null && _b !== void 0 ? _b : '';
4688
+ const conversationId = (_b = (_a = this.conversationKey) !== null && _a !== void 0 ? _a : this.conversationService.getKey(this.botId, false, this.eventId)) !== null && _b !== void 0 ? _b : '';
4681
4689
  this.voiceModalConversationId = conversationId;
4682
4690
  this.setupVoiceTranscripts();
4683
4691
  // Close existing overlay if any