coveo.analytics 2.28.6 → 2.28.7

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.
@@ -1,6 +1,6 @@
1
1
  import { ClientOptions, AnalyticsClient } from '../client/analytics';
2
2
  import { SearchEventRequest, SearchEventResponse, AnyEventResponse, ClickEventResponse, CustomEventResponse } from '../events';
3
- import { SearchPageEvents, OmniboxSuggestionsMetadata, FacetMetadata, FacetRangeMetadata, CategoryFacetMetadata, DocumentIdentifier, InterfaceChangeMetadata, ResultsSortMetadata, PartialDocumentInformation, TriggerNotifyMetadata, TriggerExecuteMetadata, TriggerRedirectMetadata, PagerResizeMetadata, PagerMetadata, FacetBaseMeta, FacetSortMeta, QueryErrorMeta, FacetStateMetadata, SmartSnippetFeedbackReason, SmartSnippetSuggestionMeta, SmartSnippetDocumentIdentifier, StaticFilterMetadata, StaticFilterToggleValueMetadata, UndoTriggerRedirectMetadata, SmartSnippetLinkMeta } from './searchPageEvents';
3
+ import { SearchPageEvents, OmniboxSuggestionsMetadata, FacetMetadata, FacetRangeMetadata, CategoryFacetMetadata, DocumentIdentifier, InterfaceChangeMetadata, ResultsSortMetadata, PartialDocumentInformation, TriggerNotifyMetadata, TriggerExecuteMetadata, TriggerRedirectMetadata, PagerResizeMetadata, PagerMetadata, FacetBaseMeta, FacetSortMeta, QueryErrorMeta, FacetStateMetadata, SmartSnippetFeedbackReason, SmartSnippetSuggestionMeta, SmartSnippetDocumentIdentifier, StaticFilterMetadata, StaticFilterToggleValueMetadata, UndoTriggerRedirectMetadata, SmartSnippetLinkMeta, GeneratedAnswerFeedbackMeta, GeneratedAnswerCitationMeta } from './searchPageEvents';
4
4
  export interface SearchPageClientProvider {
5
5
  getBaseMetadata: () => Record<string, any>;
6
6
  getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
@@ -185,4 +185,12 @@ export declare class CoveoSearchPageClient {
185
185
  private getOrigins;
186
186
  private getClientId;
187
187
  private getSplitTestRun;
188
+ makeLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<EventBuilder<CustomEventResponse>>;
189
+ logLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<void | CustomEventResponse>;
190
+ makeDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<EventBuilder<CustomEventResponse>>;
191
+ logDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<void | CustomEventResponse>;
192
+ makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<EventBuilder<CustomEventResponse>>;
193
+ logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<void | CustomEventResponse>;
194
+ makeRetryGeneratedAnswer(): Promise<EventBuilder<SearchEventResponse>>;
195
+ logRetryGeneratedAnswer(): Promise<void | SearchEventResponse>;
188
196
  }
@@ -72,7 +72,11 @@ export declare enum SearchPageEvents {
72
72
  caseSendEmail = "Case.SendEmail",
73
73
  feedItemTextPost = "FeedItem.TextPost",
74
74
  caseAttach = "caseAttach",
75
- caseDetach = "caseDetach"
75
+ caseDetach = "caseDetach",
76
+ retryGeneratedAnswer = "retryGeneratedAnswer",
77
+ likeGeneratedAnswer = "likeGeneratedAnswer",
78
+ dislikeGeneratedAnswer = "dislikeGeneratedAnswer",
79
+ openGeneratedAnswerSource = "openGeneratedAnswerSource"
76
80
  }
77
81
  export declare const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>>;
78
82
  export interface StaticFilterMetadata {
@@ -180,4 +184,12 @@ export interface SmartSnippetDocumentIdentifier {
180
184
  contentIdValue: string;
181
185
  }
182
186
  export type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;
187
+ export interface GeneratedAnswerFeedbackMeta {
188
+ generativeQuestionAnsweringId: string;
189
+ }
190
+ export interface GeneratedAnswerCitationMeta {
191
+ generativeQuestionAnsweringId: string;
192
+ permanentId: string;
193
+ id: string;
194
+ }
183
195
  export {};
@@ -1 +1 @@
1
- export declare const libVersion = "2.28.6";
1
+ export declare const libVersion = "2.28.7";
@@ -596,7 +596,7 @@ function sha1(bytes) {
596
596
  const v5 = v35('v5', 0x50, sha1);
597
597
  var uuidv5 = v5;
598
598
 
599
- const libVersion = "2.28.6" ;
599
+ const libVersion = "2.28.7" ;
600
600
 
601
601
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
602
602
 
@@ -1716,6 +1716,10 @@ var SearchPageEvents;
1716
1716
  SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
1717
1717
  SearchPageEvents["caseAttach"] = "caseAttach";
1718
1718
  SearchPageEvents["caseDetach"] = "caseDetach";
1719
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
1720
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
1721
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
1722
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
1719
1723
  })(SearchPageEvents || (SearchPageEvents = {}));
1720
1724
  const CustomEventsTypes = {
1721
1725
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -1757,6 +1761,9 @@ const CustomEventsTypes = {
1757
1761
  [InsightEvents.clickViewedDocument]: 'User Actions',
1758
1762
  [InsightEvents.clickPageView]: 'User Actions',
1759
1763
  [SearchPageEvents.caseDetach]: 'case',
1764
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1765
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
1766
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
1760
1767
  };
1761
1768
 
1762
1769
  class NoopAnalytics {
@@ -2558,6 +2565,40 @@ class CoveoSearchPageClient {
2558
2565
  const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
2559
2566
  return Object.assign(Object.assign({}, (splitTestRunName && { splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion }));
2560
2567
  }
2568
+ makeLikeGeneratedAnswer(metadata) {
2569
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
2570
+ }
2571
+ logLikeGeneratedAnswer(metadata) {
2572
+ return __awaiter(this, void 0, void 0, function* () {
2573
+ return (yield this.makeLikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2574
+ });
2575
+ }
2576
+ makeDislikeGeneratedAnswer(metadata) {
2577
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
2578
+ }
2579
+ logDislikeGeneratedAnswer(metadata) {
2580
+ return __awaiter(this, void 0, void 0, function* () {
2581
+ return (yield this.makeDislikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2582
+ });
2583
+ }
2584
+ makeOpenGeneratedAnswerSource(metadata) {
2585
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
2586
+ }
2587
+ logOpenGeneratedAnswerSource(metadata) {
2588
+ return __awaiter(this, void 0, void 0, function* () {
2589
+ return (yield this.makeOpenGeneratedAnswerSource(metadata)).log({
2590
+ searchUID: this.provider.getSearchUID(),
2591
+ });
2592
+ });
2593
+ }
2594
+ makeRetryGeneratedAnswer() {
2595
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
2596
+ }
2597
+ logRetryGeneratedAnswer() {
2598
+ return __awaiter(this, void 0, void 0, function* () {
2599
+ return (yield this.makeRetryGeneratedAnswer()).log({ searchUID: this.provider.getSearchUID() });
2600
+ });
2601
+ }
2561
2602
  }
2562
2603
 
2563
2604
  const SVCPluginEventTypes = Object.assign({}, BasePluginEventTypes);
package/dist/library.js CHANGED
@@ -731,7 +731,7 @@ function sha1(bytes) {
731
731
  const v5 = v35('v5', 0x50, sha1);
732
732
  var uuidv5 = v5;
733
733
 
734
- var libVersion = "2.28.6" ;
734
+ var libVersion = "2.28.7" ;
735
735
 
736
736
  var getFormattedLocation = function (location) {
737
737
  return "".concat(location.protocol, "//").concat(location.hostname).concat(location.pathname.indexOf('/') === 0 ? location.pathname : "/".concat(location.pathname)).concat(location.search);
@@ -84229,6 +84229,10 @@ exports.SearchPageEvents = void 0;
84229
84229
  SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
84230
84230
  SearchPageEvents["caseAttach"] = "caseAttach";
84231
84231
  SearchPageEvents["caseDetach"] = "caseDetach";
84232
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
84233
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
84234
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
84235
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
84232
84236
  })(exports.SearchPageEvents || (exports.SearchPageEvents = {}));
84233
84237
  var CustomEventsTypes = (_a = {},
84234
84238
  _a[exports.SearchPageEvents.triggerNotify] = 'queryPipelineTriggers',
@@ -84270,6 +84274,9 @@ var CustomEventsTypes = (_a = {},
84270
84274
  _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84271
84275
  _a[exports.InsightEvents.clickPageView] = 'User Actions',
84272
84276
  _a[exports.SearchPageEvents.caseDetach] = 'case',
84277
+ _a[exports.SearchPageEvents.likeGeneratedAnswer] = 'generatedAnswer',
84278
+ _a[exports.SearchPageEvents.dislikeGeneratedAnswer] = 'generatedAnswer',
84279
+ _a[exports.SearchPageEvents.openGeneratedAnswerSource] = 'generatedAnswer',
84273
84280
  _a);
84274
84281
 
84275
84282
  var NoopAnalytics = (function () {
@@ -85555,6 +85562,60 @@ var CoveoSearchPageClient = (function () {
85555
85562
  var splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
85556
85563
  return __assign(__assign({}, (splitTestRunName && { splitTestRunName: splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion: splitTestRunVersion }));
85557
85564
  };
85565
+ CoveoSearchPageClient.prototype.makeLikeGeneratedAnswer = function (metadata) {
85566
+ return this.makeCustomEvent(exports.SearchPageEvents.likeGeneratedAnswer, metadata);
85567
+ };
85568
+ CoveoSearchPageClient.prototype.logLikeGeneratedAnswer = function (metadata) {
85569
+ return __awaiter(this, void 0, void 0, function () {
85570
+ return __generator(this, function (_a) {
85571
+ switch (_a.label) {
85572
+ case 0: return [4, this.makeLikeGeneratedAnswer(metadata)];
85573
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85574
+ }
85575
+ });
85576
+ });
85577
+ };
85578
+ CoveoSearchPageClient.prototype.makeDislikeGeneratedAnswer = function (metadata) {
85579
+ return this.makeCustomEvent(exports.SearchPageEvents.dislikeGeneratedAnswer, metadata);
85580
+ };
85581
+ CoveoSearchPageClient.prototype.logDislikeGeneratedAnswer = function (metadata) {
85582
+ return __awaiter(this, void 0, void 0, function () {
85583
+ return __generator(this, function (_a) {
85584
+ switch (_a.label) {
85585
+ case 0: return [4, this.makeDislikeGeneratedAnswer(metadata)];
85586
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85587
+ }
85588
+ });
85589
+ });
85590
+ };
85591
+ CoveoSearchPageClient.prototype.makeOpenGeneratedAnswerSource = function (metadata) {
85592
+ return this.makeCustomEvent(exports.SearchPageEvents.openGeneratedAnswerSource, metadata);
85593
+ };
85594
+ CoveoSearchPageClient.prototype.logOpenGeneratedAnswerSource = function (metadata) {
85595
+ return __awaiter(this, void 0, void 0, function () {
85596
+ return __generator(this, function (_a) {
85597
+ switch (_a.label) {
85598
+ case 0: return [4, this.makeOpenGeneratedAnswerSource(metadata)];
85599
+ case 1: return [2, (_a.sent()).log({
85600
+ searchUID: this.provider.getSearchUID(),
85601
+ })];
85602
+ }
85603
+ });
85604
+ });
85605
+ };
85606
+ CoveoSearchPageClient.prototype.makeRetryGeneratedAnswer = function () {
85607
+ return this.makeSearchEvent(exports.SearchPageEvents.retryGeneratedAnswer);
85608
+ };
85609
+ CoveoSearchPageClient.prototype.logRetryGeneratedAnswer = function () {
85610
+ return __awaiter(this, void 0, void 0, function () {
85611
+ return __generator(this, function (_a) {
85612
+ switch (_a.label) {
85613
+ case 0: return [4, this.makeRetryGeneratedAnswer()];
85614
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85615
+ }
85616
+ });
85617
+ });
85618
+ };
85558
85619
  return CoveoSearchPageClient;
85559
85620
  }());
85560
85621
 
@@ -658,7 +658,7 @@ const addPageViewToHistory = (pageViewValue) => __awaiter(void 0, void 0, void 0
658
658
  yield store.addElementAsync(historyElement);
659
659
  });
660
660
 
661
- const libVersion = "2.28.6" ;
661
+ const libVersion = "2.28.7" ;
662
662
 
663
663
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
664
664
 
@@ -1734,6 +1734,10 @@ var SearchPageEvents;
1734
1734
  SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
1735
1735
  SearchPageEvents["caseAttach"] = "caseAttach";
1736
1736
  SearchPageEvents["caseDetach"] = "caseDetach";
1737
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
1738
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
1739
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
1740
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
1737
1741
  })(SearchPageEvents || (SearchPageEvents = {}));
1738
1742
  const CustomEventsTypes = {
1739
1743
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -1775,6 +1779,9 @@ const CustomEventsTypes = {
1775
1779
  [InsightEvents.clickViewedDocument]: 'User Actions',
1776
1780
  [InsightEvents.clickPageView]: 'User Actions',
1777
1781
  [SearchPageEvents.caseDetach]: 'case',
1782
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1783
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
1784
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
1778
1785
  };
1779
1786
 
1780
1787
  class NoopAnalytics {
@@ -2576,6 +2583,40 @@ class CoveoSearchPageClient {
2576
2583
  const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
2577
2584
  return Object.assign(Object.assign({}, (splitTestRunName && { splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion }));
2578
2585
  }
2586
+ makeLikeGeneratedAnswer(metadata) {
2587
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
2588
+ }
2589
+ logLikeGeneratedAnswer(metadata) {
2590
+ return __awaiter(this, void 0, void 0, function* () {
2591
+ return (yield this.makeLikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2592
+ });
2593
+ }
2594
+ makeDislikeGeneratedAnswer(metadata) {
2595
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
2596
+ }
2597
+ logDislikeGeneratedAnswer(metadata) {
2598
+ return __awaiter(this, void 0, void 0, function* () {
2599
+ return (yield this.makeDislikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2600
+ });
2601
+ }
2602
+ makeOpenGeneratedAnswerSource(metadata) {
2603
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
2604
+ }
2605
+ logOpenGeneratedAnswerSource(metadata) {
2606
+ return __awaiter(this, void 0, void 0, function* () {
2607
+ return (yield this.makeOpenGeneratedAnswerSource(metadata)).log({
2608
+ searchUID: this.provider.getSearchUID(),
2609
+ });
2610
+ });
2611
+ }
2612
+ makeRetryGeneratedAnswer() {
2613
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
2614
+ }
2615
+ logRetryGeneratedAnswer() {
2616
+ return __awaiter(this, void 0, void 0, function* () {
2617
+ return (yield this.makeRetryGeneratedAnswer()).log({ searchUID: this.provider.getSearchUID() });
2618
+ });
2619
+ }
2579
2620
  }
2580
2621
 
2581
2622
  const SVCPluginEventTypes = Object.assign({}, BasePluginEventTypes);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coveo.analytics",
3
- "version": "2.28.6",
3
+ "version": "2.28.7",
4
4
  "description": "📈 Coveo analytics client (node and browser compatible) ",
5
5
  "main": "dist/library.js",
6
6
  "module": "dist/library.es.js",
@@ -51,6 +51,8 @@ describe('SearchPageClient', () => {
51
51
  },
52
52
  ];
53
53
 
54
+ const fakeStreamId = 'some-stream-id-123';
55
+
54
56
  let client: CoveoSearchPageClient;
55
57
 
56
58
  const provider: SearchPageClientProvider = {
@@ -1413,4 +1415,46 @@ describe('SearchPageClient', () => {
1413
1415
  c.enable();
1414
1416
  expect(c.coveoAnalyticsClient instanceof CoveoAnalyticsClient).toBe(true);
1415
1417
  });
1418
+
1419
+ it('should send proper payload for #logLikeGeneratedAnswer', async () => {
1420
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1421
+ await client.logLikeGeneratedAnswer(meta);
1422
+ expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, meta);
1423
+ });
1424
+
1425
+ it('should send proper payload for #makeLikeGeneratedAnswer', async () => {
1426
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1427
+ const built = await client.makeLikeGeneratedAnswer(meta);
1428
+ await built.log({searchUID: provider.getSearchUID()});
1429
+ expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, meta);
1430
+ expectMatchDescription(built.description, SearchPageEvents.likeGeneratedAnswer, meta);
1431
+ });
1432
+
1433
+ it('should send proper payload for #logDislikeGeneratedAnswer', async () => {
1434
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1435
+ await client.logDislikeGeneratedAnswer(meta);
1436
+ expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, meta);
1437
+ });
1438
+
1439
+ it('should send proper payload for #makeDislikeGeneratedAnswer', async () => {
1440
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1441
+ const built = await client.makeDislikeGeneratedAnswer(meta);
1442
+ await built.log({searchUID: provider.getSearchUID()});
1443
+ expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, meta);
1444
+ expectMatchDescription(built.description, SearchPageEvents.dislikeGeneratedAnswer, meta);
1445
+ });
1446
+
1447
+ it('should send proper payload for #logOpenGeneratedAnswerSource', async () => {
1448
+ const meta = {generativeQuestionAnsweringId: fakeStreamId, id: 'some-document-id', permanentId: 'perm-id'};
1449
+ await client.logOpenGeneratedAnswerSource(meta);
1450
+ expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, meta);
1451
+ });
1452
+
1453
+ it('should send proper payload for #makeOpenGeneratedAnswerSource', async () => {
1454
+ const meta = {generativeQuestionAnsweringId: fakeStreamId, id: 'some-document-id', permanentId: 'perm-id'};
1455
+ const built = await client.makeOpenGeneratedAnswerSource(meta);
1456
+ await built.log({searchUID: provider.getSearchUID()});
1457
+ expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, meta);
1458
+ expectMatchDescription(built.description, SearchPageEvents.openGeneratedAnswerSource, meta);
1459
+ });
1416
1460
  });
@@ -36,6 +36,8 @@ import {
36
36
  StaticFilterToggleValueMetadata,
37
37
  UndoTriggerRedirectMetadata,
38
38
  SmartSnippetLinkMeta,
39
+ GeneratedAnswerFeedbackMeta,
40
+ GeneratedAnswerCitationMeta,
39
41
  } from './searchPageEvents';
40
42
  import {NoopAnalytics} from '../client/noopAnalytics';
41
43
  import {formatOmniboxMetadata} from '../formatting/format-omnibox-metadata';
@@ -881,4 +883,38 @@ export class CoveoSearchPageClient {
881
883
  ...(splitTestRunVersion && {splitTestRunVersion}),
882
884
  };
883
885
  }
886
+
887
+ public makeLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
888
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
889
+ }
890
+
891
+ public async logLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
892
+ return (await this.makeLikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});
893
+ }
894
+
895
+ public makeDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
896
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
897
+ }
898
+
899
+ public async logDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
900
+ return (await this.makeDislikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});
901
+ }
902
+
903
+ public makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {
904
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
905
+ }
906
+
907
+ public async logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {
908
+ return (await this.makeOpenGeneratedAnswerSource(metadata)).log({
909
+ searchUID: this.provider.getSearchUID(),
910
+ });
911
+ }
912
+
913
+ public makeRetryGeneratedAnswer() {
914
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
915
+ }
916
+
917
+ public async logRetryGeneratedAnswer() {
918
+ return (await this.makeRetryGeneratedAnswer()).log({searchUID: this.provider.getSearchUID()});
919
+ }
884
920
  }
@@ -294,6 +294,22 @@ export enum SearchPageEvents {
294
294
  * Identifies the custom event that gets logged when a user clicks the Detach From Case result action.
295
295
  */
296
296
  caseDetach = 'caseDetach',
297
+ /**
298
+ * Identifies the cause of a search request being retried in order to regenerate an answer stream that failed.
299
+ */
300
+ retryGeneratedAnswer = 'retryGeneratedAnswer',
301
+ /**
302
+ * Identifies the custom event that gets logged when a user identifies a generated answer as relevant.
303
+ */
304
+ likeGeneratedAnswer = 'likeGeneratedAnswer',
305
+ /**
306
+ * Identifies the custom event that gets logged when a user identifies a generated answer as irrelevant.
307
+ */
308
+ dislikeGeneratedAnswer = 'dislikeGeneratedAnswer',
309
+ /**
310
+ * Identifies the custom event that gets logged when a user opens a generated answer citation.
311
+ */
312
+ openGeneratedAnswerSource = 'openGeneratedAnswerSource',
297
313
  }
298
314
 
299
315
  export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>> = {
@@ -336,6 +352,9 @@ export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents,
336
352
  [InsightEvents.clickViewedDocument]: 'User Actions',
337
353
  [InsightEvents.clickPageView]: 'User Actions',
338
354
  [SearchPageEvents.caseDetach]: 'case',
355
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
356
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
357
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
339
358
  };
340
359
 
341
360
  export interface StaticFilterMetadata {
@@ -469,3 +488,13 @@ export interface SmartSnippetDocumentIdentifier {
469
488
  }
470
489
 
471
490
  export type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;
491
+
492
+ export interface GeneratedAnswerFeedbackMeta {
493
+ generativeQuestionAnsweringId: string;
494
+ }
495
+
496
+ export interface GeneratedAnswerCitationMeta {
497
+ generativeQuestionAnsweringId: string;
498
+ permanentId: string;
499
+ id: string;
500
+ }