instantsearch.js 4.86.1 → 4.87.1

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 (82) hide show
  1. package/cjs/connectors/autocomplete/connectAutocomplete.js +13 -5
  2. package/cjs/connectors/chat/connectChat.js +92 -20
  3. package/cjs/connectors/filter-suggestions/connectFilterSuggestions.js +255 -0
  4. package/cjs/connectors/index.js +7 -0
  5. package/cjs/connectors/index.umd.js +7 -0
  6. package/cjs/index.js +2 -2
  7. package/cjs/lib/ai-lite/abstract-chat.js +823 -0
  8. package/cjs/lib/ai-lite/index.js +57 -0
  9. package/cjs/lib/ai-lite/stream-parser.js +138 -0
  10. package/cjs/lib/ai-lite/transport.js +218 -0
  11. package/cjs/lib/ai-lite/types.js +1 -0
  12. package/cjs/lib/ai-lite/utils.js +85 -0
  13. package/cjs/lib/chat/chat.js +6 -6
  14. package/cjs/lib/chat/index.js +5 -2
  15. package/cjs/lib/version.js +1 -1
  16. package/cjs/widgets/autocomplete/autocomplete.js +15 -6
  17. package/cjs/widgets/chat/chat.js +32 -3
  18. package/cjs/widgets/filter-suggestions/filter-suggestions.js +131 -0
  19. package/cjs/widgets/index.js +7 -0
  20. package/cjs/widgets/index.umd.js +7 -0
  21. package/dist/instantsearch.development.d.ts +2551 -346
  22. package/dist/instantsearch.development.js +9408 -4314
  23. package/dist/instantsearch.development.js.map +1 -1
  24. package/dist/instantsearch.production.d.ts +2551 -346
  25. package/dist/instantsearch.production.min.d.ts +2551 -346
  26. package/dist/instantsearch.production.min.js +2 -2
  27. package/dist/instantsearch.production.min.js.map +1 -1
  28. package/es/connectors/autocomplete/connectAutocomplete.d.ts +10 -0
  29. package/es/connectors/autocomplete/connectAutocomplete.js +13 -5
  30. package/es/connectors/chat/connectChat.d.ts +24 -14
  31. package/es/connectors/chat/connectChat.js +90 -18
  32. package/es/connectors/filter-suggestions/connectFilterSuggestions.d.ts +95 -0
  33. package/es/connectors/filter-suggestions/connectFilterSuggestions.js +249 -0
  34. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +2 -2
  35. package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -1
  36. package/es/connectors/hits/connectHits.d.ts +1 -1
  37. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -1
  38. package/es/connectors/index.d.ts +1 -0
  39. package/es/connectors/index.js +2 -1
  40. package/es/connectors/index.umd.d.ts +1 -0
  41. package/es/connectors/index.umd.js +2 -1
  42. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -1
  43. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -1
  44. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -2
  45. package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -2
  46. package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -2
  47. package/es/lib/ai-lite/abstract-chat.d.ts +89 -0
  48. package/es/lib/ai-lite/abstract-chat.js +818 -0
  49. package/es/lib/ai-lite/index.d.ts +11 -0
  50. package/es/lib/ai-lite/index.js +18 -0
  51. package/es/lib/ai-lite/stream-parser.d.ts +18 -0
  52. package/es/lib/ai-lite/stream-parser.js +131 -0
  53. package/es/lib/ai-lite/transport.d.ts +24 -0
  54. package/es/lib/ai-lite/transport.js +214 -0
  55. package/es/lib/ai-lite/types.d.ts +362 -0
  56. package/es/lib/ai-lite/types.js +1 -0
  57. package/es/lib/ai-lite/utils.d.ts +12 -0
  58. package/es/lib/ai-lite/utils.js +76 -0
  59. package/es/lib/chat/chat.d.ts +3 -3
  60. package/es/lib/chat/chat.js +4 -4
  61. package/es/lib/chat/index.d.ts +3 -0
  62. package/es/lib/chat/index.js +4 -1
  63. package/es/lib/version.d.ts +1 -1
  64. package/es/lib/version.js +1 -1
  65. package/es/widgets/autocomplete/autocomplete.d.ts +2 -1
  66. package/es/widgets/autocomplete/autocomplete.js +15 -6
  67. package/es/widgets/chat/chat.d.ts +22 -14
  68. package/es/widgets/chat/chat.js +33 -4
  69. package/es/widgets/filter-suggestions/filter-suggestions.d.ts +689 -0
  70. package/es/widgets/filter-suggestions/filter-suggestions.js +124 -0
  71. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -3
  72. package/es/widgets/geo-search/geo-search.d.ts +1 -1
  73. package/es/widgets/hits/hits.d.ts +1 -1
  74. package/es/widgets/index.d.ts +1 -0
  75. package/es/widgets/index.js +2 -1
  76. package/es/widgets/index.umd.d.ts +1 -0
  77. package/es/widgets/index.umd.js +2 -1
  78. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -1
  79. package/es/widgets/looking-similar/looking-similar.d.ts +3 -3
  80. package/es/widgets/related-products/related-products.d.ts +3 -3
  81. package/es/widgets/trending-items/trending-items.d.ts +3 -3
  82. package/package.json +6 -7
@@ -197,6 +197,13 @@ export type ChatTemplates<THit extends NonNullable<object> = BaseHit> = Partial<
197
197
  actions: ChatMessageActionProps[];
198
198
  message: ChatMessageBase;
199
199
  }>;
200
+ /**
201
+ * Template to use for prompt suggestions.
202
+ */
203
+ suggestions: Template<{
204
+ suggestions: string[];
205
+ onSuggestionClick: (suggestion: string) => void;
206
+ }>;
200
207
  }>;
201
208
  type ChatWidgetParams<THit extends RecordWithObjectID = RecordWithObjectID> = {
202
209
  /**
@@ -237,7 +244,7 @@ declare const _default: <THit extends RecordWithObjectID = RecordWithObjectID>(w
237
244
  breadcrumb?: {
238
245
  [rootAttribute: string]: import("../../types").WidgetRenderState<import("../../connectors/breadcrumb/connectBreadcrumb").BreadcrumbRenderState, import("../../connectors/breadcrumb/connectBreadcrumb").BreadcrumbConnectorParams>;
239
246
  } | undefined;
240
- chat?: import("../../types").WidgetRenderState<ChatRenderState<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>, ChatConnectorParams<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>> | undefined;
247
+ chat?: import("../../types").WidgetRenderState<ChatRenderState<import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>>, ChatConnectorParams<import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>>> | undefined;
241
248
  clearRefinements?: import("../../types").WidgetRenderState<import("../../connectors/clear-refinements/connectClearRefinements").ClearRefinementsRenderState, import("../../connectors/clear-refinements/connectClearRefinements").ClearRefinementsConnectorParams> | undefined;
242
249
  configure?: import("../../types").WidgetRenderState<import("../../connectors/configure/connectConfigure").ConfigureRenderState, import("../../connectors/configure/connectConfigure").ConfigureConnectorParams> | undefined;
243
250
  currentRefinements?: import("../../types").WidgetRenderState<import("../../connectors/current-refinements/connectCurrentRefinements").CurrentRefinementsRenderState, import("../../connectors/current-refinements/connectCurrentRefinements").CurrentRefinementsConnectorParams> | undefined;
@@ -505,26 +512,27 @@ declare const _default: <THit extends RecordWithObjectID = RecordWithObjectID>(w
505
512
  }>)) => void;
506
513
  setInput: (input: string) => void;
507
514
  setOpen: (open: boolean) => void;
508
- setMessages: (messagesParam: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[] | ((m: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[]) => import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[])) => void;
515
+ setMessages: (messagesParam: import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>[] | ((m: import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>[]) => import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>[])) => void;
516
+ suggestions: string[] | undefined;
509
517
  isClearing: boolean;
510
518
  clearMessages: () => void;
511
519
  onClearTransitionEnd: () => void;
512
520
  tools: ClientSideTools;
513
- widgetParams: Partial<ChatWidgetParams<RecordWithObjectID>> & ChatConnectorParams<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>;
514
- addToolResult: <TOOL extends string>({ tool, toolCallId, output, }: {
515
- tool: TOOL;
521
+ widgetParams: Partial<ChatWidgetParams<RecordWithObjectID>> & ChatConnectorParams<import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>>;
522
+ addToolResult: <TTool extends string>({ tool, toolCallId, output, }: {
523
+ tool: TTool;
516
524
  toolCallId: string;
517
525
  output: unknown;
518
526
  }) => Promise<void>;
519
527
  clearError: () => void;
520
528
  error: Error | undefined;
521
529
  id: string;
522
- messages: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[];
530
+ messages: import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>[];
523
531
  regenerate: ({ messageId, ...options }?: {
524
532
  messageId?: string;
525
- } & import("ai").ChatRequestOptions) => Promise<void>;
526
- resumeStream: (options?: import("ai").ChatRequestOptions) => Promise<void>;
527
- sendMessage: (message?: (Omit<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>, "id" | "role"> & {
533
+ } & import("../../lib/ai-lite").ChatRequestOptions) => Promise<void>;
534
+ resumeStream: (options?: import("../../lib/ai-lite").ChatRequestOptions) => Promise<void>;
535
+ sendMessage: (message?: (Omit<import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>, "id" | "role"> & {
528
536
  id?: string | undefined;
529
537
  role?: "system" | "user" | "assistant" | undefined;
530
538
  } & {
@@ -533,21 +541,21 @@ declare const _default: <THit extends RecordWithObjectID = RecordWithObjectID>(w
533
541
  messageId?: string;
534
542
  }) | {
535
543
  text: string;
536
- files?: FileList | import("ai").FileUIPart[];
544
+ files?: FileList | import("../../lib/ai-lite").FileUIPart[];
537
545
  metadata?: unknown;
538
546
  parts?: never;
539
547
  messageId?: string;
540
548
  } | {
541
- files: FileList | import("ai").FileUIPart[];
549
+ files: FileList | import("../../lib/ai-lite").FileUIPart[];
542
550
  metadata?: unknown;
543
551
  parts?: never;
544
552
  messageId?: string;
545
- } | undefined, options?: import("ai").ChatRequestOptions) => Promise<void>;
546
- status: import("ai").ChatStatus;
553
+ } | undefined, options?: import("../../lib/ai-lite").ChatRequestOptions) => Promise<void>;
554
+ status: import("../../lib/ai-lite").ChatStatus;
547
555
  stop: () => Promise<void>;
548
556
  };
549
557
  dispose(): void;
550
558
  shouldRender(): true;
551
- chatInstance: import("../../lib/chat").Chat<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>;
559
+ chatInstance: import("../../lib/chat").Chat<import("../../lib/chat").UIMessage<unknown, import("../../lib/ai-lite").UIDataTypes, import("../../lib/ai-lite").UITools>>;
552
560
  };
553
561
  export default _default;
@@ -19,7 +19,7 @@ import { Fragment, h, render } from 'preact';
19
19
  import { useMemo } from 'preact/hooks';
20
20
  import TemplateComponent from "../../components/Template/Template.js";
21
21
  import connectChat from "../../connectors/chat/connectChat.js";
22
- import { SearchIndexToolType, RecommendToolType } from "../../lib/chat/index.js";
22
+ import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from "../../lib/chat/index.js";
23
23
  import { prepareTemplateProps } from "../../lib/templating/index.js";
24
24
  import { useStickToBottom } from "../../lib/useStickToBottom.js";
25
25
  import { getContainerNode, createDocumentationMessageGenerator } from "../../lib/utils/index.js";
@@ -161,7 +161,13 @@ function createCarouselTool(showViewAll, templates, getSearchPageURL) {
161
161
  }
162
162
  function createDefaultTools(templates, getSearchPageURL) {
163
163
  var _ref9;
164
- return _ref9 = {}, _defineProperty(_ref9, SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _ref9;
164
+ return _ref9 = {}, _defineProperty(_ref9, SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _defineProperty(_ref9, MemorizeToolType, {
165
+ templates: {}
166
+ }), _defineProperty(_ref9, MemorySearchToolType, {
167
+ templates: {}
168
+ }), _defineProperty(_ref9, PonderToolType, {
169
+ templates: {}
170
+ }), _ref9;
165
171
  }
166
172
  function ChatWrapper(_ref0) {
167
173
  var cssClasses = _ref0.cssClasses,
@@ -184,6 +190,7 @@ function ChatWrapper(_ref0) {
184
190
  headerProps = _ref0.headerProps,
185
191
  messagesProps = _ref0.messagesProps,
186
192
  promptProps = _ref0.promptProps,
193
+ suggestionsProps = _ref0.suggestionsProps,
187
194
  state = _ref0.state;
188
195
  var _useStickToBottom = useStickToBottom({
189
196
  initial: 'smooth',
@@ -212,6 +219,7 @@ function ChatWrapper(_ref0) {
212
219
  },
213
220
  headerComponent: headerProps.layoutComponent,
214
221
  promptComponent: promptProps.layoutComponent,
222
+ suggestionsComponent: suggestionsProps.suggestionsComponent,
215
223
  headerProps: {
216
224
  onClose: function onClose() {
217
225
  return setChatOpen(false);
@@ -275,6 +283,10 @@ function ChatWrapper(_ref0) {
275
283
  headerComponent: promptProps.headerComponent,
276
284
  footerComponent: promptProps.footerComponent,
277
285
  translations: promptProps.translations
286
+ },
287
+ suggestionsProps: {
288
+ onSuggestionClick: suggestionsProps.onSuggestionClick,
289
+ suggestions: suggestionsProps.suggestions
278
290
  }
279
291
  });
280
292
  }
@@ -308,7 +320,8 @@ var createRenderer = function createRenderer(_ref1) {
308
320
  isClearing = props.isClearing,
309
321
  clearMessages = props.clearMessages,
310
322
  onClearTransitionEnd = props.onClearTransitionEnd,
311
- toolsFromConnector = props.tools;
323
+ toolsFromConnector = props.tools,
324
+ suggestions = props.suggestions;
312
325
  if (process.env.NODE_ENV === 'development' && error) {
313
326
  throw error;
314
327
  }
@@ -509,6 +522,13 @@ var createRenderer = function createRenderer(_ref1) {
509
522
  }
510
523
  }));
511
524
  } : undefined;
525
+ var suggestionsComponent = templates.suggestions ? function (suggestionsProps) {
526
+ return h(TemplateComponent, _extends({}, renderState.templateProps, {
527
+ templateKey: "suggestions",
528
+ rootTagName: "fragment",
529
+ data: suggestionsProps
530
+ }));
531
+ } : undefined;
512
532
  state.subscribe(rerender);
513
533
  function rerender() {
514
534
  render(h(ChatWrapper, {
@@ -562,7 +582,16 @@ var createRenderer = function createRenderer(_ref1) {
562
582
  translations: promptTranslations,
563
583
  promptRef: promptRef
564
584
  },
565
- state: state
585
+ state: state,
586
+ suggestionsProps: {
587
+ suggestions: suggestions,
588
+ onSuggestionClick: function onSuggestionClick(message) {
589
+ sendMessage({
590
+ text: message
591
+ });
592
+ },
593
+ suggestionsComponent: suggestionsComponent
594
+ }
566
595
  }), containerNode);
567
596
  }
568
597
  rerender();