@coveo/quantic 3.29.4-pre.4ad11136af → 3.29.4-pre.4dbee2e113

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 (17) hide show
  1. package/force-app/main/default/staticresources/coveoheadless/case-assist/headless.js +8 -8
  2. package/force-app/main/default/staticresources/coveoheadless/definitions/api/analytics/search-analytics.d.ts +3 -5
  3. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-actions.d.ts +2 -2
  4. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api.d.ts +28 -8
  5. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/tests/stream-answer-api-state-mock.d.ts +12 -12
  6. package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/core/sort/headless-core-sort.d.ts +12 -0
  7. package/force-app/main/default/staticresources/coveoheadless/definitions/features/generated-answer/generated-answer-selectors.d.ts +4 -1
  8. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/legacy/search-request.d.ts +1 -1
  9. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/search-request.d.ts +1 -1
  10. package/force-app/main/default/staticresources/coveoheadless/definitions/state/state-sections.d.ts +0 -8
  11. package/force-app/main/default/staticresources/coveoheadless/definitions/utils/facet-utils.d.ts +1 -1
  12. package/force-app/main/default/staticresources/coveoheadless/headless.js +10 -10
  13. package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +9 -9
  14. package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +7 -7
  15. package/package.json +2 -2
  16. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/generated-answer-stream.d.ts +0 -15
  17. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api-state.d.ts +0 -6
@@ -90,15 +90,13 @@ export declare class SearchAnalyticsProvider extends BaseAnalyticsProvider<State
90
90
  protected get responseTime(): number;
91
91
  protected get numberOfResults(): number;
92
92
  }
93
- interface LegacyConfigureAnalyticsOptions<State extends ConfigurationSection = StateNeededBySearchAnalyticsProvider> {
93
+ interface LegacyConfigureAnalyticsOptions {
94
94
  logger: Logger;
95
95
  analyticsClientMiddleware?: AnalyticsClientSendEventHook;
96
96
  preprocessRequest?: PreprocessRequest;
97
97
  provider?: SearchPageClientProvider;
98
- getState(): State;
98
+ getState(): StateNeededBySearchAnalyticsProvider;
99
99
  }
100
- export declare const configureLegacyAnalytics: <State extends ConfigurationSection = StateNeededBySearchAnalyticsProvider>({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: LegacyConfigureAnalyticsOptions<State> & {
101
- provider: SearchPageClientProvider;
102
- }) => CoveoSearchPageClient;
100
+ export declare const configureLegacyAnalytics: ({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: LegacyConfigureAnalyticsOptions) => CoveoSearchPageClient;
103
101
  export declare const getPageID: () => string;
104
102
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { NavigatorContext } from '../../app/navigator-context-provider.js';
2
- import type { StreamAnswerAPIState } from './stream-answer-api-state.js';
2
+ import { type StateNeededByAnswerAPI } from './stream-answer-api.js';
3
3
  export declare const triggerSearchRequest: import("@reduxjs/toolkit").AsyncThunk<void, {
4
- state: StreamAnswerAPIState;
4
+ state: StateNeededByAnswerAPI;
5
5
  navigatorContext: NavigatorContext;
6
6
  }, {
7
7
  state?: unknown;
@@ -1,10 +1,30 @@
1
1
  import { type ThunkDispatch, type UnknownAction } from '@reduxjs/toolkit';
2
2
  import { type NavigatorContext } from '../../app/navigator-context-provider.js';
3
+ import type { GeneratedContentFormat } from '../../features/generated-answer/generated-response-format.js';
4
+ import type { SearchAppState } from '../../state/search-app-state.js';
5
+ import type { ConfigurationSection, GeneratedAnswerSection, InsightConfigurationSection, TabSection } from '../../state/state-sections.js';
3
6
  import type { EventSourceMessage } from '../../utils/fetch-event-source/parse.js';
7
+ import type { GeneratedAnswerCitation } from '../generated-answer/generated-answer-event-payload.js';
4
8
  import type { SearchRequest } from '../search/search/search-request.js';
5
- import type { GeneratedAnswerStream } from './generated-answer-stream.js';
6
- import type { StreamAnswerAPIState } from './stream-answer-api-state.js';
7
- export declare const updateCacheWithEvent: (event: EventSourceMessage, draft: GeneratedAnswerStream, dispatch: ThunkDispatch<StreamAnswerAPIState, unknown, UnknownAction>) => void;
9
+ export type StateNeededByAnswerAPI = {
10
+ searchHub: string;
11
+ pipeline: string;
12
+ answer: ReturnType<typeof answerApi.reducer>;
13
+ } & ConfigurationSection & Partial<SearchAppState> & Partial<InsightConfigurationSection> & GeneratedAnswerSection & Partial<TabSection>;
14
+ export interface GeneratedAnswerStream {
15
+ answerId?: string;
16
+ contentFormat?: GeneratedContentFormat;
17
+ answer?: string;
18
+ citations?: GeneratedAnswerCitation[];
19
+ generated?: boolean;
20
+ isStreaming: boolean;
21
+ isLoading: boolean;
22
+ error?: {
23
+ message: string;
24
+ code: number;
25
+ };
26
+ }
27
+ export declare const updateCacheWithEvent: (event: EventSourceMessage, draft: GeneratedAnswerStream, dispatch: ThunkDispatch<StateNeededByAnswerAPI, unknown, UnknownAction>) => void;
8
28
  export declare const answerApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, {
9
29
  getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">;
10
30
  }, "answer", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
@@ -53,7 +73,7 @@ export declare const selectAnswerTriggerParams: ((state: any, ...params: any[])
53
73
  argsMemoize: typeof import("reselect").weakMapMemoize;
54
74
  memoize: typeof import("reselect").weakMapMemoize;
55
75
  };
56
- export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, usage: "fetch" | "select", navigatorContext: NavigatorContext) => {
76
+ export declare const constructAnswerQueryParams: (state: StateNeededByAnswerAPI, usage: "fetch" | "select", navigatorContext: NavigatorContext) => {
57
77
  analytics?: {
58
78
  actionCause?: string;
59
79
  customData?: object;
@@ -80,12 +100,12 @@ export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, u
80
100
  } | undefined;
81
101
  enableDidYouMean?: boolean | undefined;
82
102
  fieldsToInclude?: string[] | undefined;
83
- facets?: (import("../../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
103
+ facets?: (import("../../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
84
104
  pipeline?: string | undefined;
85
105
  searchHub?: string | undefined;
86
106
  pipelineRuleParameters: {
87
107
  mlGenerativeQuestionAnswering: {
88
- responseFormat: import("../../index.js").GeneratedResponseFormat;
108
+ responseFormat: import("../../features/generated-answer/generated-response-format.js").GeneratedResponseFormat;
89
109
  citationsFieldToInclude: string[];
90
110
  };
91
111
  };
@@ -97,8 +117,8 @@ export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, u
97
117
  aq?: string | undefined;
98
118
  q: string | undefined;
99
119
  };
100
- export declare const fetchAnswer: (state: StreamAnswerAPIState, navigatorContext: NavigatorContext) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">>, any, any, UnknownAction>;
101
- export declare const selectAnswer: (state: StreamAnswerAPIState, navigatorContext?: NavigatorContext) => ({
120
+ export declare const fetchAnswer: (state: StateNeededByAnswerAPI, navigatorContext: NavigatorContext) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">>, any, any, UnknownAction>;
121
+ export declare const selectAnswer: (state: StateNeededByAnswerAPI, navigatorContext?: NavigatorContext) => ({
102
122
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
103
123
  originalArgs?: undefined | undefined;
104
124
  data?: undefined | undefined;
@@ -1,12 +1,12 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: <mock> */
2
- import type { StreamAnswerAPIState } from '../stream-answer-api-state.js';
3
- export declare const streamAnswerAPIStateMock: StreamAnswerAPIState;
4
- export declare const streamAnswerAPIStateMockWithATabWithAnExpression: StreamAnswerAPIState;
5
- export declare const streamAnswerAPIStateMockWithoutAnyTab: StreamAnswerAPIState;
6
- export declare const streamAnswerAPIStateMockWithStaticFiltersSelected: StreamAnswerAPIState;
7
- export declare const streamAnswerAPIStateMockWithNonValidFilters: StreamAnswerAPIState;
8
- export declare const streamAnswerAPIStateMockWithoutAnyFilters: StreamAnswerAPIState;
9
- export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpression: StreamAnswerAPIState;
2
+ import type { StateNeededByAnswerAPI } from '../stream-answer-api.js';
3
+ export declare const streamAnswerAPIStateMock: StateNeededByAnswerAPI;
4
+ export declare const streamAnswerAPIStateMockWithATabWithAnExpression: StateNeededByAnswerAPI;
5
+ export declare const streamAnswerAPIStateMockWithoutAnyTab: StateNeededByAnswerAPI;
6
+ export declare const streamAnswerAPIStateMockWithStaticFiltersSelected: StateNeededByAnswerAPI;
7
+ export declare const streamAnswerAPIStateMockWithNonValidFilters: StateNeededByAnswerAPI;
8
+ export declare const streamAnswerAPIStateMockWithoutAnyFilters: StateNeededByAnswerAPI;
9
+ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpression: StateNeededByAnswerAPI;
10
10
  export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWithEmptyCQ: {
11
11
  advancedSearchQueries: {
12
12
  cq: string;
@@ -26,9 +26,9 @@ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWi
26
26
  };
27
27
  searchHub: string;
28
28
  pipeline: string;
29
- answer: import("@reduxjs/toolkit/query").CombinedState<{
30
- getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<import("../../search/search/search-request.js").SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, import("../generated-answer-stream.js").GeneratedAnswerStream, "answer">;
31
- }, never, "answer">;
29
+ answer: ReturnType<import("redux").Reducer<import("@reduxjs/toolkit/query").CombinedState<{
30
+ getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<import("../../search/search/search-request.js").SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, import("../stream-answer-api.js").GeneratedAnswerStream, "answer">;
31
+ }, never, "answer">, import("redux").UnknownAction>>;
32
32
  configuration: import("../../../features/configuration/configuration-state.js").ConfigurationState;
33
33
  facetSet?: import("../../../features/facets/facet-set/facet-set-state.js").FacetSetState | undefined;
34
34
  dateFacetSet?: import("../../../features/facets/range-facets/date-facet-set/date-facet-set-state.js").DateFacetSetState | undefined;
@@ -66,7 +66,7 @@ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWi
66
66
  instantResults?: import("../../../features/instant-results/instant-results-state.js").InstantResultsState | undefined;
67
67
  insightConfiguration?: import("../../../features/insight-configuration/insight-configuration-state.js").InsightConfigurationState | undefined;
68
68
  };
69
- export declare const streamAnswerAPIStateMockWithoutSearchAction: StreamAnswerAPIState;
69
+ export declare const streamAnswerAPIStateMockWithoutSearchAction: StateNeededByAnswerAPI;
70
70
  export declare const expectedStreamAnswerAPIParam: {
71
71
  q: string;
72
72
  aq: string;
@@ -32,6 +32,18 @@ export interface Sort extends Controller {
32
32
  * Verifies whether the specified sort criterion is the currently active one.
33
33
  *
34
34
  * @param criterion - The sort criterion to evaluate.
35
+ * Can be a single criterion or an array of criteria.
36
+ * The criteria in an array will be applied sequentially. For example, if there's a tie on the 1st criterion, the API uses the 2nd criterion to break the tie. However, this only works when combining:
37
+ * `SortByRelevancy` followed by one or more `SortByField` or `SortByDate` criteria.
38
+ * `SortByQRE` followed by one or more `SortByField` or `SortByDate` criteria.
39
+ * Two or more `SortByField` criteria.
40
+ * A single `SortByDate` criterion and one or more `SortByField` criteria in any order.
41
+ *
42
+ * Examples:
43
+ * * `SortByRelevancy`, `SortByField`
44
+ * * `SortByQRE`, `SortByField`
45
+ * * `SortByDate`, `SortByField`, `SortByField`
46
+ *
35
47
  * @returns `true` if the specified sort criterion is the currently active one; `false` otherwise.
36
48
  */
37
49
  isSortedBy(criterion: SortCriterion | SortCriterion[]): boolean;
@@ -1,7 +1,10 @@
1
1
  import type { GeneratedAnswerCitation } from '../../controllers/generated-answer/headless-generated-answer.js';
2
2
  import type { SearchAppState } from '../../state/search-app-state.js';
3
3
  import type { GeneratedAnswerSection } from '../../state/state-sections.js';
4
- export declare const generativeQuestionAnsweringIdSelector: (state: Partial<SearchAppState>) => string | undefined;
4
+ export declare const generativeQuestionAnsweringIdSelector: (state: Partial<SearchAppState>) => {
5
+ answerAPIEnabled: boolean;
6
+ id: string | undefined;
7
+ };
5
8
  export declare const selectFieldsToIncludeInCitation: (state: Partial<GeneratedAnswerSection>) => string[] | undefined;
6
9
  export declare const citationSourceSelector: ((state: Partial<GeneratedAnswerSection>, citationId: string) => GeneratedAnswerCitation | undefined) & {
7
10
  clearCache: () => void;
@@ -24,7 +24,7 @@ export declare const buildSearchRequest: (state: StateNeededBySearchRequest, eve
24
24
  facetOptions?: import("../../facet-options/facet-options.js").FacetOptions;
25
25
  numberOfResults?: number;
26
26
  firstResult?: number;
27
- facets?: (import("../../facets/facet-set/interfaces/request.js").FacetRequest | import("../../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
27
+ facets?: (import("../../facets/facet-set/interfaces/request.js").FacetRequest | import("../../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
28
28
  cq?: string;
29
29
  queryCorrection?: {
30
30
  enabled?: boolean;
@@ -25,7 +25,7 @@ export declare const buildSearchRequest: (state: StateNeededBySearchRequest, nav
25
25
  facetOptions?: import("../facet-options/facet-options.js").FacetOptions;
26
26
  numberOfResults?: number;
27
27
  firstResult?: number;
28
- facets?: (import("../facets/facet-set/interfaces/request.js").FacetRequest | import("../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
28
+ facets?: (import("../facets/facet-set/interfaces/request.js").FacetRequest | import("../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
29
29
  cq?: string;
30
30
  queryCorrection?: {
31
31
  enabled?: boolean;
@@ -1,6 +1,3 @@
1
- import type { BaseQueryFn, CombinedState, FetchArgs, FetchBaseQueryError, QueryDefinition, RetryOptions } from '@reduxjs/toolkit/query';
2
- import type { GeneratedAnswerStream } from '../api/knowledge/generated-answer-stream.js';
3
- import type { SearchRequest } from '../api/search/search/search-request.js';
4
1
  import type { StateWithHistory } from '../app/undoable.js';
5
2
  import type { AdvancedSearchQueriesState } from '../features/advanced-search-queries/advanced-search-queries-state.js';
6
3
  import type { AttachedResultsState } from '../features/attached-results/attached-results-state.js';
@@ -441,8 +438,3 @@ export interface InsightUserActionsSection {
441
438
  export interface ManualRangeSection {
442
439
  manualNumericFacetSet: ManualNumericFacetSetState;
443
440
  }
444
- export interface GetAnswerQuerySection {
445
- answer: CombinedState<{
446
- getAnswer: QueryDefinition<Partial<SearchRequest>, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {} & RetryOptions, {}>, never, GeneratedAnswerStream, 'answer'>;
447
- }, never, 'answer'>;
448
- }
@@ -9,5 +9,5 @@ export declare function sortFacets<T extends {
9
9
  facetId: string;
10
10
  }>(facets: T[], sortOrder: string[]): T[];
11
11
  export declare const sortCriteriaMap: Record<string, SortCriteria>;
12
- export declare function getFacets(state: StateNeededBySearchRequest): (import("../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[];
12
+ export declare function getFacets(state: StateNeededBySearchRequest): (import("../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[];
13
13
  export {};