@coveo/quantic 3.36.3 → 3.36.5

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 (53) 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/api-client-utils.d.ts +1 -1
  3. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/commerce-api-client.d.ts +3 -2
  4. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/commerce-metadata.d.ts +1 -1
  5. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/common/request.d.ts +3 -3
  6. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/product-enrichment/product-enrichment-request.d.ts +3 -3
  7. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/recommendations/recommendations-request.d.ts +3 -3
  8. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/search/plan/plan-request.d.ts +31 -0
  9. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/search/plan/plan-response.d.ts +8 -0
  10. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/search/query-suggest/query-suggest-request.d.ts +3 -3
  11. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/answer-generation/endpoints/answer/answer-endpoint.d.ts +69 -1
  12. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/answer-generation/endpoints/follow-up/follow-up-endpoint.d.ts +1 -2
  13. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/answer-generation/streaming/types.d.ts +10 -11
  14. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api.d.ts +3 -3
  15. package/force-app/main/default/staticresources/coveoheadless/definitions/api/service/case-assist/get-case-classifications/get-case-classifications-request.d.ts +3 -3
  16. package/force-app/main/default/staticresources/coveoheadless/definitions/api/service/case-assist/get-document-suggestions/get-document-suggestions-request.d.ts +3 -3
  17. package/force-app/main/default/staticresources/coveoheadless/definitions/api/service/insight/get-interface/get-interface-config-request.d.ts +3 -3
  18. package/force-app/main/default/staticresources/coveoheadless/definitions/api/service/insight/query/query-request.d.ts +6 -6
  19. package/force-app/main/default/staticresources/coveoheadless/definitions/api/service/insight/user-actions/user-actions-request.d.ts +3 -3
  20. package/force-app/main/default/staticresources/coveoheadless/definitions/app/listener-middleware/generate-answer-listener-middleware.d.ts +4 -0
  21. package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/core/generated-answer/headless-core-generated-answer.d.ts +4 -0
  22. package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/generated-answer/headless-generated-answer.d.ts +4 -3
  23. package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/knowledge/generated-answer/headless-generated-answer-with-follow-ups.d.ts +47 -0
  24. package/force-app/main/default/staticresources/coveoheadless/definitions/features/analytics/analytics-utils.d.ts +1 -0
  25. package/force-app/main/default/staticresources/coveoheadless/definitions/features/analytics/search-action-cause.d.ts +4 -0
  26. package/force-app/main/default/staticresources/coveoheadless/definitions/features/attached-results/attached-results-analytics-actions.d.ts +107 -2
  27. package/force-app/main/default/staticresources/coveoheadless/definitions/features/attached-results/attached-results-state.d.ts +4 -0
  28. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/facets/facet-order/commerce-facet-order-slice.d.ts +4 -0
  29. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/facets/facet-search-set/category/commerce-category-facet-search-set-slice.d.ts +3 -0
  30. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/facets/facet-search-set/commerce-facet-search-reducer-helpers.d.ts +23 -0
  31. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/facets/facet-search-set/regular/commerce-specific-facet-search-set-slice.d.ts +3 -0
  32. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/query-set/commerce-query-set-slice.d.ts +4 -0
  33. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/query-suggest/commerce-query-suggest-slice.d.ts +3 -0
  34. package/force-app/main/default/staticresources/coveoheadless/definitions/features/commerce/standalone-search-box-set/plan-request-builder.d.ts +1 -4
  35. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/category-facet-set/category-facet-set-state.d.ts +4 -0
  36. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/facet-search-set/facet-search-reducer-helpers.d.ts +0 -21
  37. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/facet-set/facet-set-state.d.ts +8 -1
  38. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/range-facets/date-facet-set/date-facet-set-state.d.ts +8 -1
  39. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/range-facets/numeric-facet-set/numeric-facet-set-state.d.ts +8 -1
  40. package/force-app/main/default/staticresources/coveoheadless/definitions/features/follow-up-answers/follow-up-answer-request.d.ts +4 -0
  41. package/force-app/main/default/staticresources/coveoheadless/definitions/features/follow-up-answers/follow-up-answers-actions.d.ts +12 -0
  42. package/force-app/main/default/staticresources/coveoheadless/definitions/features/generated-answer/answer-api-selectors.d.ts +1 -4
  43. package/force-app/main/default/staticresources/coveoheadless/definitions/features/generated-answer/generated-answer-selectors.d.ts +2 -0
  44. package/force-app/main/default/staticresources/coveoheadless/definitions/features/query-suggest/query-suggest-reducer-helpers.d.ts +7 -0
  45. package/force-app/main/default/staticresources/coveoheadless/definitions/features/query-suggest/query-suggest-slice.d.ts +2 -3
  46. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/legacy/search-request.d.ts +1 -1
  47. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/search-request.d.ts +1 -1
  48. package/force-app/main/default/staticresources/coveoheadless/definitions/index.d.ts +1 -1
  49. package/force-app/main/default/staticresources/coveoheadless/definitions/utils/facet-utils.d.ts +1 -1
  50. package/force-app/main/default/staticresources/coveoheadless/headless.js +10 -10
  51. package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +9 -9
  52. package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +7 -7
  53. package/package.json +2 -2
@@ -3,5 +3,5 @@ import type { BaseParam } from './platform-service-params.js';
3
3
  import type { AllSearchAPIResponse } from './search/search-api-client.js';
4
4
  import type { SearchAPIErrorWithStatusCode } from './search/search-api-error-response.js';
5
5
  import type { AuthenticationParam } from './search/search-api-params.js';
6
- export declare function pickNonBaseParams<Params extends BaseParam & AuthenticationParam>(req: Params): Omit<Params, "url" | "accessToken" | "organizationId" | "authentication">;
6
+ export declare function pickNonBaseParams<Params extends BaseParam & AuthenticationParam>(req: Params): Omit<Params, "organizationId" | "accessToken" | "url" | "authentication">;
7
7
  export declare const unwrapError: (payload: PlatformResponse<AllSearchAPIResponse>) => SearchAPIErrorWithStatusCode;
@@ -5,7 +5,6 @@ import type { PlatformEnvironment } from '../../utils/url-utils.js';
5
5
  import type { PreprocessRequest } from '../preprocess-request.js';
6
6
  import type { SpecificFacetSearchResponse } from '../search/facet-search/specific-facet-search/specific-facet-search-response.js';
7
7
  import type { CommerceAPIErrorResponse, CommerceAPIErrorStatusResponse } from './commerce-api-error-response.js';
8
- import type { CommerceSuccessResponse } from './common/response.js';
9
8
  import type { CommerceFacetSearchRequest, FacetSearchType } from './facet-search/facet-search-request.js';
10
9
  import type { CommerceListingRequest } from './listing/request.js';
11
10
  import type { ListingCommerceSuccessResponse } from './listing/response.js';
@@ -13,6 +12,8 @@ import { type ProductEnrichmentBadgesRequest } from './product-enrichment/produc
13
12
  import type { ProductEnrichmentSuccessBadgesResponse } from './product-enrichment/product-enrichment-response.js';
14
13
  import { type CommerceRecommendationsRequest } from './recommendations/recommendations-request.js';
15
14
  import type { RecommendationsCommerceSuccessResponse } from './recommendations/recommendations-response.js';
15
+ import { type CommercePlanRequest } from './search/plan/plan-request.js';
16
+ import type { CommercePlanSuccessResponse } from './search/plan/plan-response.js';
16
17
  import { type QuerySuggestRequest } from './search/query-suggest/query-suggest-request.js';
17
18
  import type { QuerySuggestSuccessResponse } from './search/query-suggest/query-suggest-response.js';
18
19
  import type { CommerceSearchRequest } from './search/request.js';
@@ -44,7 +45,7 @@ export declare class CommerceAPIClient implements CommerceFacetSearchAPIClient {
44
45
  querySuggest(req: QuerySuggestRequest): Promise<CommerceAPIResponse<QuerySuggestSuccessResponse>>;
45
46
  facetSearch(req: CommerceFacetSearchRequest, type: FacetSearchType): Promise<CommerceAPIResponse<SpecificFacetSearchResponse>>;
46
47
  getBadges(req: ProductEnrichmentBadgesRequest): Promise<CommerceAPIResponse<ProductEnrichmentSuccessBadgesResponse>>;
47
- plan(req: CommerceSearchRequest): Promise<CommerceAPIResponse<CommerceSuccessResponse>>;
48
+ plan(req: CommercePlanRequest): Promise<CommerceAPIResponse<CommercePlanSuccessResponse>>;
48
49
  private query;
49
50
  }
50
51
  export declare function getCommerceApiBaseUrl(organizationId: string, environment?: PlatformEnvironment): string;
@@ -1,4 +1,4 @@
1
- export type CommerceApiMethod = 'listing' | 'search' | 'recommendations' | 'search/productSuggest' | 'search/querySuggest' | 'querySuggest' | 'facet' | 'badges';
1
+ export type CommerceApiMethod = 'listing' | 'search' | 'recommendations' | 'search/productSuggest' | 'search/querySuggest' | 'search/redirect' | 'querySuggest' | 'facet' | 'badges';
2
2
  /**
3
3
  * API methods that require the tracking ID to be included in the URL path.
4
4
  * These endpoints use the pattern: /tracking-ids/{trackingId}/{method}
@@ -29,10 +29,10 @@ export declare const getRequestOptions: (req: FilterableCommerceAPIRequest, path
29
29
  facets: import("../../../features/commerce/facets/facet-set/interfaces/request.js").AnyFacetRequest[] | undefined;
30
30
  sort: import("./sort.js").SortOption | undefined;
31
31
  };
32
- url: string;
33
- origin: import("../../preprocess-request.js").PlatformClientOrigin;
34
- accessToken: string;
35
32
  method: import("../../platform-client.js").HttpMethods;
33
+ accessToken: string;
34
+ origin: import("../../preprocess-request.js").PlatformClientOrigin;
35
+ url: string;
36
36
  contentType: import("../../platform-client.js").HTTPContentType;
37
37
  requestMetadata?: import("../../preprocess-request.js").RequestMetadata | undefined;
38
38
  };
@@ -21,10 +21,10 @@ export declare const buildProductEnrichmentBadgesRequest: (req: ProductEnrichmen
21
21
  custom?: Record<string, unknown>;
22
22
  };
23
23
  };
24
- url: string;
25
- origin: import("../../preprocess-request.js").PlatformClientOrigin;
26
- accessToken: string;
27
24
  method: import("../../platform-client.js").HttpMethods;
25
+ accessToken: string;
26
+ origin: import("../../preprocess-request.js").PlatformClientOrigin;
27
+ url: string;
28
28
  contentType: import("../../platform-client.js").HTTPContentType;
29
29
  requestMetadata?: import("../../preprocess-request.js").RequestMetadata | undefined;
30
30
  };
@@ -25,10 +25,10 @@ export declare const buildRecommendationsRequest: (req: CommerceRecommendationsR
25
25
  page: number | undefined;
26
26
  perPage: number | undefined;
27
27
  };
28
- url: string;
29
- origin: import("../../preprocess-request.js").PlatformClientOrigin;
30
- accessToken: string;
31
28
  method: import("../../platform-client.js").HttpMethods;
29
+ accessToken: string;
30
+ origin: import("../../preprocess-request.js").PlatformClientOrigin;
31
+ url: string;
32
32
  contentType: import("../../platform-client.js").HTTPContentType;
33
33
  requestMetadata?: import("../../preprocess-request.js").RequestMetadata | undefined;
34
34
  };
@@ -0,0 +1,31 @@
1
+ import type { BaseParam } from '../../../platform-service-params.js';
2
+ import type { ClientIdParam, ContextParam, CountryParam, CurrencyParam, LanguageParam, QueryParam, TrackingIdParam } from '../../commerce-api-params.js';
3
+ export type CommercePlanRequest = BaseParam & TrackingIdParam & LanguageParam & CountryParam & CurrencyParam & ClientIdParam & ContextParam & QueryParam;
4
+ export declare const getPlanRequestOptions: (req: CommercePlanRequest) => {
5
+ requestParams: {
6
+ trackingId: string;
7
+ query: string | undefined;
8
+ clientId: string | undefined;
9
+ context: {
10
+ view: import("../../commerce-api-params.js").ViewParams;
11
+ user?: import("../../commerce-api-params.js").UserParams;
12
+ product?: {
13
+ productId: string;
14
+ };
15
+ cart?: import("../../commerce-api-params.js").CartItemParam[];
16
+ purchased?: import("../../commerce-api-params.js").CartItemParam[];
17
+ capture: boolean;
18
+ source: string[];
19
+ custom?: Record<string, unknown>;
20
+ };
21
+ language: string;
22
+ country: string;
23
+ currency: string;
24
+ };
25
+ method: import("../../../platform-client.js").HttpMethods;
26
+ accessToken: string;
27
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
28
+ url: string;
29
+ contentType: import("../../../platform-client.js").HTTPContentType;
30
+ requestMetadata?: import("../../../preprocess-request.js").RequestMetadata | undefined;
31
+ };
@@ -0,0 +1,8 @@
1
+ export interface CommercePlanSuccessResponse {
2
+ /**
3
+ * The URL to redirect the user to.
4
+ * (Null if there isn't one.)
5
+ * @example https://www.example.com/
6
+ */
7
+ redirect: string | null;
8
+ }
@@ -22,10 +22,10 @@ export declare const getQuerySuggestRequestOptions: (req: QuerySuggestRequest) =
22
22
  country: string;
23
23
  currency: string;
24
24
  };
25
- url: string;
26
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
27
- accessToken: string;
28
25
  method: import("../../../platform-client.js").HttpMethods;
26
+ accessToken: string;
27
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
28
+ url: string;
29
29
  contentType: import("../../../platform-client.js").HTTPContentType;
30
30
  requestMetadata?: import("../../../preprocess-request.js").RequestMetadata | undefined;
31
31
  };
@@ -1,6 +1,6 @@
1
1
  import type { AnyFacetRequest } from '../../../../../features/facets/generic/interfaces/generic-facet-request.js';
2
2
  import type { AnalyticsParam, PipelineRuleParameters } from '../../../../search/search-api-params.js';
3
- import { type GeneratedAnswerServerState } from '../../answer-generation-api-state.js';
3
+ import { type AnswerGenerationApiState, type GeneratedAnswerServerState } from '../../answer-generation-api-state.js';
4
4
  /**
5
5
  * Parameters for answer generation requests.
6
6
  */
@@ -28,3 +28,71 @@ export declare const answerEndpoint: import("@reduxjs/toolkit/query").Api<import
28
28
  * Initiates an answer generation query with the specified strategy and parameters.
29
29
  */
30
30
  export declare const initiateAnswerEndpoint: (args: AnswerEndpointArgs) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<AnswerEndpointArgs, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerServerState, "answerGenerationApi">>, any, any, import("@reduxjs/toolkit").UnknownAction>;
31
+ /**
32
+ * Selects the cached answer generation data for the specified query parameters from the state.
33
+ *
34
+ * @param args - The answer endpoint arguments including strategy and parameters.
35
+ * @param state - The current answer generation API state.
36
+ * @returns The cached answer generation query result.
37
+ */
38
+ export declare const selectAnswer: (args: AnswerEndpointArgs, state: AnswerGenerationApiState) => ({
39
+ status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
40
+ originalArgs?: undefined | undefined;
41
+ data?: undefined | undefined;
42
+ error?: undefined | undefined;
43
+ requestId?: undefined | undefined;
44
+ endpointName?: string | undefined;
45
+ startedTimeStamp?: undefined | undefined;
46
+ fulfilledTimeStamp?: undefined | undefined;
47
+ } & {
48
+ status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
49
+ isUninitialized: true;
50
+ isLoading: false;
51
+ isSuccess: false;
52
+ isError: false;
53
+ }) | ({
54
+ status: import("@reduxjs/toolkit/query").QueryStatus.fulfilled;
55
+ error: undefined;
56
+ requestId: string;
57
+ originalArgs: AnswerEndpointArgs;
58
+ endpointName: string;
59
+ startedTimeStamp: number;
60
+ data: GeneratedAnswerServerState;
61
+ fulfilledTimeStamp: number;
62
+ } & {
63
+ status: import("@reduxjs/toolkit/query").QueryStatus.fulfilled;
64
+ isUninitialized: false;
65
+ isLoading: false;
66
+ isSuccess: true;
67
+ isError: false;
68
+ }) | ({
69
+ status: import("@reduxjs/toolkit/query").QueryStatus.pending;
70
+ originalArgs: AnswerEndpointArgs;
71
+ requestId: string;
72
+ data?: GeneratedAnswerServerState | undefined;
73
+ error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
74
+ endpointName: string;
75
+ startedTimeStamp: number;
76
+ fulfilledTimeStamp?: number | undefined;
77
+ } & {
78
+ status: import("@reduxjs/toolkit/query").QueryStatus.pending;
79
+ isUninitialized: false;
80
+ isLoading: true;
81
+ isSuccess: false;
82
+ isError: false;
83
+ }) | ({
84
+ status: import("@reduxjs/toolkit/query").QueryStatus.rejected;
85
+ data?: GeneratedAnswerServerState | undefined;
86
+ requestId: string;
87
+ fulfilledTimeStamp?: number | undefined;
88
+ originalArgs: AnswerEndpointArgs;
89
+ endpointName: string;
90
+ startedTimeStamp: number;
91
+ error: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError;
92
+ } & {
93
+ status: import("@reduxjs/toolkit/query").QueryStatus.rejected;
94
+ isUninitialized: false;
95
+ isLoading: false;
96
+ isSuccess: false;
97
+ isError: true;
98
+ });
@@ -2,7 +2,7 @@ import { type GeneratedAnswerServerState } from '../../answer-generation-api-sta
2
2
  /**
3
3
  * Parameters for follow-up answer generation requests.
4
4
  */
5
- type FollowUpAnswerParams = {
5
+ export type FollowUpAnswerParams = {
6
6
  q: string;
7
7
  conversationId: string;
8
8
  };
@@ -22,4 +22,3 @@ export declare const followUpEndpoint: import("@reduxjs/toolkit/query").Api<impo
22
22
  * Initiates a follow up answer generation query with the specified strategy and parameters.
23
23
  */
24
24
  export declare const initiateFollowUpEndpoint: (args: FollowUpEndpointArgs) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<FollowUpEndpointArgs, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerServerState, "answerGenerationApi">>, any, any, import("@reduxjs/toolkit").UnknownAction>;
25
- export {};
@@ -4,17 +4,7 @@ import type { GeneratedAnswerCitation } from '../../../generated-answer/generate
4
4
  /**
5
5
  * Message types received during answer generation streaming.
6
6
  */
7
- type PayloadType = 'genqa.headerMessageType' | 'genqa.messageType' | 'genqa.citationsType' | 'genqa.endOfStreamType';
8
- /**
9
- * Represents a streaming message from the answer generation endpoint.
10
- */
11
- export interface Message {
12
- payloadType: PayloadType;
13
- payload: string;
14
- finishReason?: string;
15
- errorMessage?: string;
16
- code?: number;
17
- }
7
+ type PayloadType = 'agentInteraction.answerHeader' | 'generativeengines.messageType' | 'agentInteraction.citations' | 'generativeengines.headerMessageType' | 'generativeengines.endOfStreamType';
18
8
  /**
19
9
  * Event types including standard payload types and error events.
20
10
  */
@@ -28,6 +18,15 @@ export interface StreamPayload {
28
18
  answerGenerated?: boolean;
29
19
  contentFormat?: GeneratedContentFormat;
30
20
  citations?: GeneratedAnswerCitation[];
21
+ conversationId?: string;
22
+ followUpEnabled?: boolean;
23
+ }
24
+ export interface Message {
25
+ payloadType: PayloadType;
26
+ payload: StreamPayload;
27
+ finishReason?: string;
28
+ errorMessage?: string;
29
+ code?: number;
31
30
  }
32
31
  /**
33
32
  * Strategy interface for handling application-specific streaming events.
@@ -44,7 +44,7 @@ export declare const selectAnswer: (state: StreamAnswerAPIState) => ({
44
44
  originalArgs: AnswerApiQueryParams;
45
45
  requestId: string;
46
46
  data?: GeneratedAnswerStream | undefined;
47
- error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
47
+ error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
48
48
  endpointName: string;
49
49
  startedTimeStamp: number;
50
50
  fulfilledTimeStamp?: number | undefined;
@@ -56,13 +56,13 @@ export declare const selectAnswer: (state: StreamAnswerAPIState) => ({
56
56
  isError: false;
57
57
  }) | ({
58
58
  status: import("@reduxjs/toolkit/query").QueryStatus.rejected;
59
- requestId: string;
60
59
  data?: GeneratedAnswerStream | undefined;
60
+ requestId: string;
61
61
  fulfilledTimeStamp?: number | undefined;
62
62
  originalArgs: AnswerApiQueryParams;
63
63
  endpointName: string;
64
64
  startedTimeStamp: number;
65
- error: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError;
65
+ error: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError;
66
66
  } & {
67
67
  status: import("@reduxjs/toolkit/query").QueryStatus.rejected;
68
68
  isUninitialized: false;
@@ -11,9 +11,9 @@ export declare const buildGetCaseClassificationsRequest: (req: GetCaseClassifica
11
11
  };
12
12
  };
13
13
  };
14
- url: string;
15
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
16
- accessToken: string;
17
14
  method: import("../../../platform-client.js").HttpMethods;
15
+ accessToken: string;
16
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
17
+ url: string;
18
18
  contentType: import("../../../platform-client.js").HTTPContentType;
19
19
  };
@@ -28,9 +28,9 @@ export declare const buildGetDocumentSuggestionsRequest: (req: GetDocumentSugges
28
28
  source?: string[];
29
29
  } | undefined;
30
30
  };
31
- url: string;
32
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
33
- accessToken: string;
34
31
  method: import("../../../platform-client.js").HttpMethods;
32
+ accessToken: string;
33
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
34
+ url: string;
35
35
  contentType: import("../../../platform-client.js").HTTPContentType;
36
36
  };
@@ -3,9 +3,9 @@ import { type InsightIdParam } from '../insight-params.js';
3
3
  export type GetInsightInterfaceConfigRequest = BaseParam & InsightIdParam;
4
4
  export declare const buildGetInsightInterfaceConfigRequest: (req: GetInsightInterfaceConfigRequest) => {
5
5
  requestParams: {};
6
- url: string;
7
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
8
- accessToken: string;
9
6
  method: import("../../../platform-client.js").HttpMethods;
7
+ accessToken: string;
8
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
9
+ url: string;
10
10
  contentType: import("../../../platform-client.js").HTTPContentType;
11
11
  };
@@ -8,17 +8,17 @@ export interface CaseContextParam {
8
8
  }
9
9
  export declare const buildInsightQueryRequest: (req: InsightQueryRequest) => {
10
10
  requestParams: {};
11
- url: string;
12
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
13
- accessToken: string;
14
11
  method: import("../../../platform-client.js").HttpMethods;
12
+ accessToken: string;
13
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
14
+ url: string;
15
15
  contentType: import("../../../platform-client.js").HTTPContentType;
16
16
  };
17
17
  export declare const buildInsightQuerySuggestRequest: (req: InsightQuerySuggestRequest) => {
18
18
  requestParams: {};
19
- url: string;
20
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
21
- accessToken: string;
22
19
  method: import("../../../platform-client.js").HttpMethods;
20
+ accessToken: string;
21
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
22
+ url: string;
23
23
  contentType: import("../../../platform-client.js").HTTPContentType;
24
24
  };
@@ -10,10 +10,10 @@ export declare const buildInsightUserActionsRequest: (req: InsightUserActionsReq
10
10
  requestParams: {
11
11
  objectId: string;
12
12
  };
13
- url: string;
14
- origin: import("../../../preprocess-request.js").PlatformClientOrigin;
15
- accessToken: string;
16
13
  method: import("../../../platform-client.js").HttpMethods;
14
+ accessToken: string;
15
+ origin: import("../../../preprocess-request.js").PlatformClientOrigin;
16
+ url: string;
17
17
  contentType: import("../../../platform-client.js").HTTPContentType;
18
18
  };
19
19
  export {};
@@ -0,0 +1,4 @@
1
+ import { type ThunkDispatch, type UnknownAction } from '@reduxjs/toolkit';
2
+ import type { AnswerGenerationApiState } from '../../api/knowledge/answer-generation/answer-generation-api-state.js';
3
+ import type { SearchThunkExtraArguments } from '../search-thunk-extra-arguments.js';
4
+ export declare const generateAnswerListener: import("@reduxjs/toolkit").ListenerMiddlewareInstance<AnswerGenerationApiState, ThunkDispatch<AnswerGenerationApiState, SearchThunkExtraArguments, UnknownAction>, unknown>;
@@ -118,6 +118,10 @@ export interface GeneratedAnswerProps extends GeneratedAnswerPropsInitialState {
118
118
  * The answer configuration ID used to leverage coveo answer management capabilities.
119
119
  */
120
120
  answerConfigurationId?: string;
121
+ /**
122
+ * The agent ID that identifies the agent used for generating the answer.
123
+ */
124
+ agentId?: string;
121
125
  /**
122
126
  * A list of indexed fields to include in the citations returned with the generated answer.
123
127
  */
@@ -1,9 +1,10 @@
1
1
  import type { GeneratedAnswerCitation } from '../../api/generated-answer/generated-answer-event-payload.js';
2
2
  import type { SearchEngine } from '../../app/search-engine/search-engine.js';
3
- import type { GeneratedAnswerState } from '../../features/generated-answer/generated-answer-state.js';
3
+ import type { GeneratedAnswerBase, GeneratedAnswerState } from '../../features/generated-answer/generated-answer-state.js';
4
4
  import type { GeneratedResponseFormat } from '../../features/generated-answer/generated-response-format.js';
5
5
  import type { GeneratedAnswer, GeneratedAnswerProps, GeneratedAnswerPropsInitialState } from '../core/generated-answer/headless-core-generated-answer.js';
6
- export type { GeneratedAnswerCitation, GeneratedResponseFormat, GeneratedAnswerState, GeneratedAnswer, GeneratedAnswerProps, GeneratedAnswerPropsInitialState, };
6
+ import { type GeneratedAnswerWithFollowUps } from '../knowledge/generated-answer/headless-generated-answer-with-follow-ups.js';
7
+ export type { GeneratedAnswerCitation, GeneratedResponseFormat, GeneratedAnswerState, GeneratedAnswer, GeneratedAnswerWithFollowUps, GeneratedAnswerBase, GeneratedAnswerProps, GeneratedAnswerPropsInitialState, };
7
8
  /**
8
9
  * Creates a `GeneratedAnswer` controller instance.
9
10
 
@@ -14,4 +15,4 @@ export type { GeneratedAnswerCitation, GeneratedResponseFormat, GeneratedAnswerS
14
15
  * @group Controllers
15
16
  * @category GeneratedAnswer
16
17
  */
17
- export declare function buildGeneratedAnswer(engine: SearchEngine, props?: GeneratedAnswerProps): GeneratedAnswer;
18
+ export declare function buildGeneratedAnswer(engine: SearchEngine, props?: GeneratedAnswerProps): GeneratedAnswer | GeneratedAnswerWithFollowUps;
@@ -0,0 +1,47 @@
1
+ import type { InsightEngine } from '../../../app/insight-engine/insight-engine.js';
2
+ import type { SearchEngine } from '../../../app/search-engine/search-engine.js';
3
+ import type { FollowUpAnswersState } from '../../../features/follow-up-answers/follow-up-answers-state.js';
4
+ import type { GeneratedAnswerState } from '../../../index.js';
5
+ import { type GeneratedAnswer, type GeneratedAnswerAnalyticsClient, type GeneratedAnswerProps } from '../../core/generated-answer/headless-core-generated-answer.js';
6
+ interface GeneratedAnswerWithFollowUpsState extends GeneratedAnswerState {
7
+ followUpAnswers: FollowUpAnswersState;
8
+ }
9
+ export interface GeneratedAnswerWithFollowUps extends GeneratedAnswer {
10
+ /**
11
+ * The state of the GeneratedAnswer controller.
12
+ */
13
+ state: GeneratedAnswerWithFollowUpsState;
14
+ /**
15
+ * Marks the answer as liked.
16
+ * @param answerId - Optional ID of the answer to like. Defaults to the head answer.
17
+ */
18
+ like(answerId?: string): void;
19
+ /**
20
+ * Marks the answer as disliked.
21
+ * @param answerId - Optional ID of the answer to dislike. Defaults to the head answer.
22
+ */
23
+ dislike(answerId?: string): void;
24
+ /**
25
+ * Logs a copy-to-clipboard interaction for analytics.
26
+ * @param answerId - Optional ID of the copied answer. Defaults to the current answer.
27
+ */
28
+ logCopyToClipboard(answerId?: string): void;
29
+ /**
30
+ * Asks a follow-up question.
31
+ * @param question - The follow-up question to ask.
32
+ */
33
+ askFollowUp(question: string): void;
34
+ }
35
+ export type GeneratedAnswerWithFollowUpsProps = GeneratedAnswerProps & Required<Pick<GeneratedAnswerProps, 'agentId'>>;
36
+ /**
37
+ *
38
+ * @internal
39
+ *
40
+ * Creates a `GeneratedAnswerWithFollowUps` controller instance using the Answer API stream pattern.
41
+ *
42
+ * @param engine - The headless engine.
43
+ * @param props - The configurable `GeneratedAnswerWithFollowUps` properties.
44
+ * @returns A `GeneratedAnswerWithFollowUps` controller instance.
45
+ */
46
+ export declare function buildGeneratedAnswerWithFollowUps(engine: SearchEngine | InsightEngine, analyticsClient: GeneratedAnswerAnalyticsClient, props: GeneratedAnswerWithFollowUpsProps): GeneratedAnswerWithFollowUps;
47
+ export {};
@@ -98,4 +98,5 @@ export declare const validateResultPayload: (result: Result) => Partial<{
98
98
  rankingModifier: string;
99
99
  }>;
100
100
  export declare const analyticsEventItemMetadata: (result: Result, state: Partial<SearchAppState>) => ItemMetaData;
101
+ export declare const analyticsEventItemMetadataForCitations: (citation: GeneratedAnswerCitation, state: Partial<SearchAppState>) => ItemMetaData;
101
102
  export {};
@@ -179,6 +179,10 @@ export declare enum SearchPageEvents {
179
179
  * Identifies the custom event that gets logged when a user clicks the Detach From Case result action.
180
180
  */
181
181
  caseDetach = "caseDetach",
182
+ /**
183
+ * Identifies the click event that gets logged when a user attaches a generated answer citation to a case.
184
+ */
185
+ generatedAnswerCitationDocumentAttach = "generatedAnswerCitationDocumentAttach",
182
186
  /**
183
187
  * Identifies the cause of a search request being retried in order to regenerate an answer stream that failed.
184
188
  */
@@ -1,4 +1,5 @@
1
1
  import type { Result } from '../../api/search/search/result.js';
2
+ import type { GeneratedAnswerCitation } from '../../index.js';
2
3
  export declare const logCaseAttach: (result: Result) => (() => import("@reduxjs/toolkit").AsyncThunkAction<void, void, {
3
4
  state: import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
4
5
  extra: import("../../app/thunk-extra-arguments.js").ThunkExtraArguments;
@@ -42,7 +43,7 @@ export declare const logCaseAttach: (result: Result) => (() => import("@reduxjs/
42
43
  typePrefix: string;
43
44
  } & {
44
45
  prepare: (options: {
45
- analyticsClientMiddleware: import("coveo.analytics").AnalyticsClientSendEventHook;
46
+ analyticsClientMiddleware: import("coveo.analytics/dist/definitions/client/analytics.js").AnalyticsClientSendEventHook;
46
47
  preprocessRequest: import("../../api/preprocess-request.js").PreprocessRequest | undefined;
47
48
  logger: import("pino").Logger;
48
49
  getState(): import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
@@ -94,7 +95,111 @@ export declare const logCaseDetach: (result: Result) => (() => import("@reduxjs/
94
95
  typePrefix: string;
95
96
  } & {
96
97
  prepare: (options: {
97
- analyticsClientMiddleware: import("coveo.analytics").AnalyticsClientSendEventHook;
98
+ analyticsClientMiddleware: import("coveo.analytics/dist/definitions/client/analytics.js").AnalyticsClientSendEventHook;
99
+ preprocessRequest: import("../../api/preprocess-request.js").PreprocessRequest | undefined;
100
+ logger: import("pino").Logger;
101
+ getState(): import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
102
+ }) => Promise<{
103
+ description?: import("coveo.analytics").EventDescription;
104
+ action: import("../analytics/analytics-utils.js").AnalyticsAsyncThunk<import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider>;
105
+ }>;
106
+ };
107
+ export declare const logCitationDocumentAttach: (citation: GeneratedAnswerCitation) => (() => import("@reduxjs/toolkit").AsyncThunkAction<void, void, {
108
+ state: import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
109
+ extra: import("../../app/thunk-extra-arguments.js").ThunkExtraArguments;
110
+ }>) & {
111
+ pending: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string, void, unknown?], undefined, string, never, {
112
+ arg: void;
113
+ requestId: string;
114
+ requestStatus: "pending";
115
+ }>;
116
+ rejected: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Error | null, string, void, unknown?, unknown?], unknown, string, import("@reduxjs/toolkit").SerializedError, {
117
+ arg: void;
118
+ requestId: string;
119
+ requestStatus: "rejected";
120
+ aborted: boolean;
121
+ condition: boolean;
122
+ } & ({
123
+ rejectedWithValue: true;
124
+ } | ({
125
+ rejectedWithValue: false;
126
+ } & {}))>;
127
+ fulfilled: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[void, string, void, unknown?], void, string, never, {
128
+ arg: void;
129
+ requestId: string;
130
+ requestStatus: "fulfilled";
131
+ }>;
132
+ settled: (action: any) => action is import("@reduxjs/toolkit").PayloadAction<void, string, {
133
+ arg: void;
134
+ requestId: string;
135
+ requestStatus: "fulfilled";
136
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
137
+ arg: void;
138
+ requestId: string;
139
+ requestStatus: "rejected";
140
+ aborted: boolean;
141
+ condition: boolean;
142
+ } & ({
143
+ rejectedWithValue: true;
144
+ } | ({
145
+ rejectedWithValue: false;
146
+ } & {})), import("@reduxjs/toolkit").SerializedError>;
147
+ typePrefix: string;
148
+ } & {
149
+ prepare: (options: {
150
+ analyticsClientMiddleware: import("coveo.analytics/dist/definitions/client/analytics.js").AnalyticsClientSendEventHook;
151
+ preprocessRequest: import("../../api/preprocess-request.js").PreprocessRequest | undefined;
152
+ logger: import("pino").Logger;
153
+ getState(): import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
154
+ }) => Promise<{
155
+ description?: import("coveo.analytics").EventDescription;
156
+ action: import("../analytics/analytics-utils.js").AnalyticsAsyncThunk<import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider>;
157
+ }>;
158
+ };
159
+ export declare const logCitationDocumentDetach: (citation: GeneratedAnswerCitation) => (() => import("@reduxjs/toolkit").AsyncThunkAction<void, void, {
160
+ state: import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
161
+ extra: import("../../app/thunk-extra-arguments.js").ThunkExtraArguments;
162
+ }>) & {
163
+ pending: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string, void, unknown?], undefined, string, never, {
164
+ arg: void;
165
+ requestId: string;
166
+ requestStatus: "pending";
167
+ }>;
168
+ rejected: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Error | null, string, void, unknown?, unknown?], unknown, string, import("@reduxjs/toolkit").SerializedError, {
169
+ arg: void;
170
+ requestId: string;
171
+ requestStatus: "rejected";
172
+ aborted: boolean;
173
+ condition: boolean;
174
+ } & ({
175
+ rejectedWithValue: true;
176
+ } | ({
177
+ rejectedWithValue: false;
178
+ } & {}))>;
179
+ fulfilled: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[void, string, void, unknown?], void, string, never, {
180
+ arg: void;
181
+ requestId: string;
182
+ requestStatus: "fulfilled";
183
+ }>;
184
+ settled: (action: any) => action is import("@reduxjs/toolkit").PayloadAction<void, string, {
185
+ arg: void;
186
+ requestId: string;
187
+ requestStatus: "fulfilled";
188
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
189
+ arg: void;
190
+ requestId: string;
191
+ requestStatus: "rejected";
192
+ aborted: boolean;
193
+ condition: boolean;
194
+ } & ({
195
+ rejectedWithValue: true;
196
+ } | ({
197
+ rejectedWithValue: false;
198
+ } & {})), import("@reduxjs/toolkit").SerializedError>;
199
+ typePrefix: string;
200
+ } & {
201
+ prepare: (options: {
202
+ analyticsClientMiddleware: import("coveo.analytics/dist/definitions/client/analytics.js").AnalyticsClientSendEventHook;
98
203
  preprocessRequest: import("../../api/preprocess-request.js").PreprocessRequest | undefined;
99
204
  logger: import("pino").Logger;
100
205
  getState(): import("../../api/analytics/insight-analytics.js").StateNeededByInsightAnalyticsProvider;
@@ -39,6 +39,10 @@ export interface AttachedResult {
39
39
  * The uriHash of the attached result.
40
40
  */
41
41
  uriHash?: string;
42
+ /**
43
+ * Whether the attached result is a document that was attached from a citation.
44
+ */
45
+ isAttachedFromCitation?: boolean;
42
46
  }
43
47
  export interface AttachedResultsState {
44
48
  /**
@@ -0,0 +1,4 @@
1
+ import { type FacetOrderState } from '../../../facets/facet-order/facet-order-state.js';
2
+ export declare const commerceFacetOrderReducer: import("@reduxjs/toolkit").Reducer<FacetOrderState> & {
3
+ getInitialState: () => FacetOrderState;
4
+ };