@sinequa/assistant 3.6.2 → 3.7.0

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,7 +1,7 @@
1
1
  import { EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, AfterViewInit, ElementRef } from "@angular/core";
2
2
  import { PrincipalWebService } from "@sinequa/core/web-services";
3
3
  import { SearchService } from "@sinequa/components/search";
4
- import { ChatContextAttachment, ChatMessage, SuggestedAction } from "../types";
4
+ import { ChatContextAttachment, ChatMessage, ChatStarter, SuggestedAction } from "../types";
5
5
  import { Processor } from "unified";
6
6
  import { Node } from "unist";
7
7
  import { UIService } from "@sinequa/components/utils";
@@ -17,6 +17,7 @@ export declare class ChatMessageComponent implements OnChanges, AfterViewInit {
17
17
  message: ChatMessage;
18
18
  conversation: ChatMessage[];
19
19
  suggestedActions: SuggestedAction[] | undefined;
20
+ chatStarters: ChatStarter[] | undefined;
20
21
  assistantMessageIcon: string;
21
22
  userMessageIcon: string;
22
23
  connectionErrorMessageIcon: string;
@@ -37,6 +38,7 @@ export declare class ChatMessageComponent implements OnChanges, AfterViewInit {
37
38
  partId?: number | undefined;
38
39
  }>;
39
40
  suggestAction: EventEmitter<SuggestedAction>;
41
+ chatStarterClicked: EventEmitter<ChatStarter>;
40
42
  edit: EventEmitter<ChatMessage>;
41
43
  copy: EventEmitter<ChatMessage>;
42
44
  regenerate: EventEmitter<ChatMessage>;
@@ -79,5 +81,5 @@ export declare class ChatMessageComponent implements OnChanges, AfterViewInit {
79
81
  openOriginalAttachment(attachment: ChatContextAttachment, partId?: number): void;
80
82
  hideTooltip(): void;
81
83
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatMessageComponent, never>;
82
- static ɵcmp: i0.ɵɵComponentDeclaration<ChatMessageComponent, "sq-chat-message", never, { "message": "message"; "conversation": "conversation"; "suggestedActions": "suggestedActions"; "assistantMessageIcon": "assistantMessageIcon"; "userMessageIcon": "userMessageIcon"; "connectionErrorMessageIcon": "connectionErrorMessageIcon"; "searchWarningMessageIcon": "searchWarningMessageIcon"; "streaming": "streaming"; "canEdit": "canEdit"; "canRegenerate": "canRegenerate"; "canCopy": "canCopy"; "canDebug": "canDebug"; "canLike": "canLike"; "canDislike": "canDislike"; }, { "openDocument": "openDocument"; "openPreview": "openPreview"; "suggestAction": "suggestAction"; "edit": "edit"; "copy": "copy"; "regenerate": "regenerate"; "like": "like"; "dislike": "dislike"; "debug": "debug"; }, never, never, true>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatMessageComponent, "sq-chat-message", never, { "message": "message"; "conversation": "conversation"; "suggestedActions": "suggestedActions"; "chatStarters": "chatStarters"; "assistantMessageIcon": "assistantMessageIcon"; "userMessageIcon": "userMessageIcon"; "connectionErrorMessageIcon": "connectionErrorMessageIcon"; "searchWarningMessageIcon": "searchWarningMessageIcon"; "streaming": "streaming"; "canEdit": "canEdit"; "canRegenerate": "canRegenerate"; "canCopy": "canCopy"; "canDebug": "canDebug"; "canLike": "canLike"; "canDislike": "canDislike"; }, { "openDocument": "openDocument"; "openPreview": "openPreview"; "suggestAction": "suggestAction"; "chatStarterClicked": "chatStarterClicked"; "edit": "edit"; "copy": "copy"; "regenerate": "regenerate"; "like": "like"; "dislike": "dislike"; "debug": "debug"; }, never, never, true>;
83
85
  }
@@ -4,9 +4,9 @@ import { AbstractFacet } from "@sinequa/components/facet";
4
4
  import { SearchService } from "@sinequa/components/search";
5
5
  import { AppService, Query } from "@sinequa/core/app-utils";
6
6
  import { PrincipalWebService } from "@sinequa/core/web-services";
7
- import { BehaviorSubject, Subscription } from "rxjs";
7
+ import { BehaviorSubject } from "rxjs";
8
8
  import { ChatService } from "./chat.service";
9
- import { ChatContextAttachment, ChatConfig, ChatMessage, GllmModelDescription, MessageHandler, RawMessage, SuggestedAction, InitChat, DebugMessage } from "./types";
9
+ import { ChatContextAttachment, ChatConfig, ChatMessage, GllmModelDescription, MessageHandler, RawMessage, SuggestedAction, InitChat, DebugMessage, ChatStarter } from "./types";
10
10
  import { InstanceManagerService } from "./instance-manager.service";
11
11
  import { WebSocketChatService } from "./websocket-chat.service";
12
12
  import { LoginService } from "@sinequa/core/login";
@@ -945,6 +945,8 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
945
945
  messageHandlers: Map<string, MessageHandler<any>>;
946
946
  /** When the assistant answer a user question, automatically scroll down to the bottom of the discussion */
947
947
  automaticScrollToLastResponse: boolean;
948
+ /** When the assistant answer a user question, automatically focus to the chat input */
949
+ focusAfterResponse: boolean;
948
950
  /** A chat discussion that the component should get initialized with it */
949
951
  chat?: InitChat;
950
952
  /** Icon to use for the assistant messages */
@@ -1073,10 +1075,12 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1073
1075
  openPreview: EventEmitter<ChatContextAttachment>;
1074
1076
  /** Event emitter triggered when the user clicks on a suggested action */
1075
1077
  suggestAction: EventEmitter<SuggestedAction>;
1078
+ /** Event emitter triggered when the user clicks on a chat starter */
1079
+ chatStarter: EventEmitter<ChatStarter>;
1076
1080
  messageList?: ElementRef<HTMLUListElement>;
1077
1081
  questionInput?: ElementRef<HTMLTextAreaElement>;
1078
1082
  loadingTpl?: TemplateRef<any>;
1079
- reportIssueTpl?: TemplateRef<any>;
1083
+ reportTpl?: TemplateRef<any>;
1080
1084
  tokenConsumptionTpl?: TemplateRef<any>;
1081
1085
  debugMessagesTpl?: TemplateRef<any>;
1082
1086
  chatService: ChatService;
@@ -1084,11 +1088,13 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1084
1088
  messages$: BehaviorSubject<ChatMessage[] | undefined>;
1085
1089
  question: string;
1086
1090
  _actions: Action[];
1087
- sub: Subscription;
1088
- dataSubscription: Subscription | undefined;
1091
+ private _resetChatAction;
1092
+ private _sub;
1093
+ private _dataSubscription;
1089
1094
  /** Variables that depend on the type of model in use */
1090
1095
  modelDescription?: GllmModelDescription;
1091
1096
  messageToEdit?: number;
1097
+ remappedMessageToEdit?: number;
1092
1098
  changes$: BehaviorSubject<SimpleChanges | undefined>;
1093
1099
  currentMessageIndex: number | undefined;
1094
1100
  firstChangesHandled: boolean;
@@ -1101,18 +1107,21 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1101
1107
  issueTypes?: string[];
1102
1108
  defaultIssueTypes: string[];
1103
1109
  issueType: string;
1104
- issueComment?: string;
1105
- messageRelatedIssue?: ChatMessage;
1106
- issueRank?: number;
1107
- showReportIssue: boolean;
1110
+ reportComment?: string;
1111
+ messageToReport?: ChatMessage;
1112
+ reportRank?: number;
1113
+ reportType: 'like' | 'dislike';
1114
+ showReport: boolean;
1108
1115
  debugMessages: DebugMessage[] | undefined;
1109
1116
  showDebugMessages: boolean;
1110
1117
  private _previousQuery;
1118
+ private _reloadSubscription;
1111
1119
  constructor();
1112
1120
  ngOnInit(): void;
1113
1121
  ngOnChanges(changes: SimpleChanges): void;
1114
1122
  ngOnDestroy(): void;
1115
1123
  get isAdmin(): boolean;
1124
+ get visibleMessagesCount(): number;
1116
1125
  /**
1117
1126
  * Instantiate the chat service based on the provided @input protocol
1118
1127
  * This chat service instance will then be stored in the instanceManagerService with provided @input instanceId as a key
@@ -1184,6 +1193,7 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1184
1193
  */
1185
1194
  resetChat(): void;
1186
1195
  onLoadChat(): void;
1196
+ stopGeneration(): void;
1187
1197
  terminateFetch(): void;
1188
1198
  /**
1189
1199
  * Copy a previous user message of the chat history to the chat user input.
@@ -1204,28 +1214,37 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1204
1214
  * @param index The index of the assistant's message to regenerate
1205
1215
  */
1206
1216
  regenerateMessage(index: number): void;
1217
+ /**
1218
+ * Remaps the index in the chat history.
1219
+ * The chat history is a list of messages where some messages can be hidden (display set to false).
1220
+ * The index provided as input is the index of the message in the chat history displayed in the UI.
1221
+ * This function should be removed once the backend is updated to add the ids of the messages in the chat history
1222
+ * @param index - The index to be remapped.
1223
+ */
1224
+ private _remapIndexInChatHistory;
1207
1225
  onKeyUp(event: KeyboardEvent): void;
1208
1226
  calculateHeight(event?: KeyboardEvent): void;
1209
1227
  /**
1210
1228
  * Send a "like" event on clicking on the thumb-up icon of an assistant's message
1229
+ * @param message The assistant message to like
1211
1230
  * @param rank The rank of the message to like
1212
1231
  */
1213
- onLike(rank: number): void;
1232
+ onLike(message: ChatMessage, rank: number): void;
1214
1233
  /**
1215
1234
  * Send a "dislike" event on clicking on the thumb-down icon of an assistant's message.
1216
1235
  * It also opens the issue reporting dialog.
1217
1236
  * @param message The assistant message to dislike
1218
- * @param rank The rank of the message to dislike
1237
+ * @param index The rank of the message to dislike
1219
1238
  */
1220
1239
  onDislike(message: ChatMessage, rank: number): void;
1221
1240
  /**
1222
1241
  * Report an issue related to the assistant's message.
1223
1242
  */
1224
- sendIssue(): void;
1243
+ sendReport(): void;
1225
1244
  /**
1226
- * Close the issue reporting dialog.
1245
+ * Close the reporting dialog.
1227
1246
  */
1228
- ignoreIssue(): void;
1247
+ ignoreReport(): void;
1229
1248
  /**
1230
1249
  * Handle the click on a reference's 'open preview'.
1231
1250
  * @param data
@@ -1248,11 +1267,31 @@ export declare class ChatComponent extends AbstractFacet implements OnInit, OnCh
1248
1267
  * @param index Rank of the message in the chatHistory related to the suggested action.
1249
1268
  */
1250
1269
  suggestActionClick(action: SuggestedAction, index: number): void;
1270
+ /**
1271
+ * Handle the click on a chat starter.
1272
+ * @param starter the chat starter.
1273
+ */
1274
+ chatStarterClick(starter: ChatStarter): void;
1275
+ /**
1276
+ * It looks for the debug messages available in the current group of "assistant" messages.
1277
+ * By design, the debug messages are only available in the first visible message among the group "assistant" messages.
1278
+ * @param index The rank of the message
1279
+ * @returns The debug messages available in the current group of "assistant" messages
1280
+ */
1281
+ getDebugMessages(index: number): DebugMessage[];
1251
1282
  /**
1252
1283
  * Handle the click on the 'show log info' button of a message.
1253
- * @param message The message of the ChatHistory to show its debug messages
1284
+ * @param index The rank of the message
1285
+ */
1286
+ showDebug(index: number): void;
1287
+ /**
1288
+ * Verify whether the current message is an assistant message and that all following messages are assistant ones
1289
+ * Used to keep the "View progress" opened even though the assistant is sending additional messages after the current one
1290
+ * @param messages the list of current messages
1291
+ * @param index the index of the current message
1292
+ * @returns if this messages and the following ones (if any) are the last ones
1254
1293
  */
1255
- showDebug(message: ChatMessage): void;
1294
+ isAssistantLastMessages(messages: ChatMessage[], index: number): boolean;
1256
1295
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatComponent, never>;
1257
- static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "sq-chat-v3", never, { "instanceId": "instanceId"; "query": "query"; "queryChangeShouldTriggerReload": "queryChangeShouldTriggerReload"; "protocol": "protocol"; "messageHandlers": "messageHandlers"; "automaticScrollToLastResponse": "automaticScrollToLastResponse"; "chat": "chat"; "assistantMessageIcon": "assistantMessageIcon"; "userMessageIcon": "userMessageIcon"; "connectionErrorMessageIcon": "connectionErrorMessageIcon"; "searchWarningMessageIcon": "searchWarningMessageIcon"; }, { "connection": "connection"; "loading$": "loading"; "_config": "config"; "data": "data"; "openDocument": "openDocument"; "openPreview": "openPreview"; "suggestAction": "suggestAction"; }, ["loadingTpl", "reportIssueTpl", "tokenConsumptionTpl", "debugMessagesTpl"], never, true>;
1296
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "sq-chat-v3", never, { "instanceId": "instanceId"; "query": "query"; "queryChangeShouldTriggerReload": "queryChangeShouldTriggerReload"; "protocol": "protocol"; "messageHandlers": "messageHandlers"; "automaticScrollToLastResponse": "automaticScrollToLastResponse"; "focusAfterResponse": "focusAfterResponse"; "chat": "chat"; "assistantMessageIcon": "assistantMessageIcon"; "userMessageIcon": "userMessageIcon"; "connectionErrorMessageIcon": "connectionErrorMessageIcon"; "searchWarningMessageIcon": "searchWarningMessageIcon"; }, { "connection": "connection"; "loading$": "loading"; "_config": "config"; "data": "data"; "openDocument": "openDocument"; "openPreview": "openPreview"; "suggestAction": "suggestAction"; "chatStarter": "chatStarter"; }, ["loadingTpl", "reportTpl", "tokenConsumptionTpl", "debugMessagesTpl"], never, true>;
1258
1297
  }
@@ -17,7 +17,11 @@ export declare abstract class ChatService {
17
17
  initConfig$: BehaviorSubject<boolean>;
18
18
  /** Global configuration of the chat. */
19
19
  chatConfig$: BehaviorSubject<ChatConfig | undefined>;
20
- /** Streaming status of the chat endpoint. */
20
+ /**
21
+ * Emit true if the fetch of an assistant's response is ongoing (it includes Streaming status of the chat endpoint AND saving the discussion if save Chat is enabled).
22
+ * This is used to prevent multiple fetches at the same time.
23
+ * Typically, there is no problem chaining fetches, but when forcing a reload after query changes cases, it can't be allowed because it breaks the whole business logic.
24
+ */
21
25
  streaming$: BehaviorSubject<boolean>;
22
26
  /** Store the messages history of the current chat. */
23
27
  chatHistory: ChatMessage[] | undefined;
@@ -37,6 +41,8 @@ export declare abstract class ChatService {
37
41
  chatUsageMetrics$: BehaviorSubject<ChatUsageMetrics | undefined>;
38
42
  /** Emit the calculated chat's token consumption based on the chat usage metrics. */
39
43
  chatTokenConsumption$: BehaviorSubject<TokenConsumption | undefined>;
44
+ /** Emit true if "CancelTasks" is ongoing. */
45
+ stoppingGeneration$: BehaviorSubject<boolean>;
40
46
  /** Instance ID of the chat service defining the assistant instance. */
41
47
  private _chatInstanceId;
42
48
  /** ID of the current **saved chat** discussion which is used to update/get/delete it. */
@@ -126,6 +132,10 @@ export declare abstract class ChatService {
126
132
  * Return the list of functions available on the server AND matching enabled functions in the chat config
127
133
  */
128
134
  abstract listFunctions(): Observable<GllmFunction[] | undefined>;
135
+ /**
136
+ * Stops the assistant answer generation and cancels all the ongoing and pending related tasks
137
+ */
138
+ abstract stopGeneration(): Observable<any>;
129
139
  /**
130
140
  * A handler for quota updates each time the chat is invoked.
131
141
  * It emits the updated quota to the quota$ subject, emits accordingly the updated user's tokens consumption and notifies the user if the max quota is reached.
@@ -183,6 +193,18 @@ export declare abstract class ChatService {
183
193
  * @param id Actions (savedChat delete/rename/...) may occur on a specific chat different than the current one stored in this service, so the chat id can be provided
184
194
  */
185
195
  generateAuditEvent(type: string, details: Record<string, any>, id?: string): void;
196
+ /**
197
+ * Traverse the array from the end and track the first 'assistant' message among the last group of "assistant" messages where display is true
198
+ * @param array The array of ChatMessage to traverse
199
+ * @returns The index of the first visible assistant message among the last group of "assistant" messages in the array
200
+ */
201
+ firstVisibleAssistantMessageIndex(array: ChatMessage[] | undefined): number;
202
+ /**
203
+ * Traverse the array from the end and pick the last 'assistant' message among the last group of "assistant" messages where display is true
204
+ * @param array The array of ChatMessage to traverse
205
+ * @returns The index of the last visible assistant message among the last group of "assistant" messages in the array
206
+ */
207
+ lastVisibleAssistantMessageIndex(array: ChatMessage[] | undefined): number;
186
208
  /**
187
209
  * Format a date string in UTC to a local date string
188
210
  * @param value Date string in UTC to format
@@ -21,6 +21,7 @@ export declare class RestChatService extends ChatService {
21
21
  listModels(): Observable<GllmModelDescription[] | undefined>;
22
22
  listFunctions(): Observable<GllmFunction[] | undefined>;
23
23
  fetch(messages: ChatMessage[], query: Query): Observable<ChatResponse>;
24
+ stopGeneration(): Observable<any>;
24
25
  listSavedChat(): void;
25
26
  addSavedChat(messages: ChatMessage[]): Observable<SavedChat>;
26
27
  getSavedChat(id: string): Observable<SavedChatHistory | undefined>;
@@ -27,8 +27,8 @@ export declare class SavedChatsComponent implements OnInit, OnDestroy {
27
27
  instantiateChatService(): void;
28
28
  onListSavedChat(): void;
29
29
  onLoad(savedChat: SavedChat): void;
30
- onRename(savedChat: SavedChat): void;
31
- onDelete(savedChat: SavedChat): void;
30
+ onRename(event: Event, savedChat: SavedChat): void;
31
+ onDelete(event: Event, savedChat: SavedChat): void;
32
32
  private _groupSavedChatsByDate;
33
33
  private _getTimeKey;
34
34
  static ɵfac: i0.ɵɵFactoryDeclaration<SavedChatsComponent, never>;
@@ -33,6 +33,8 @@ $ast-saved-chat-hover-background: var(--ast-saved-chat-hover-background, #FFF8F1
33
33
  $ast-input-bg: var(--ast-input-bg, #F8F8F8);
34
34
  $ast-input-color: var(--ast-input-color, #B0B0B0);
35
35
  $ast-muted-color: var(--ast-muted-color, rgba(33, 37, 41, 0.75));
36
+ $ast-action-buttons-color: var(--ast-action-buttons-color, #212529);
37
+ $ast-action-buttons-hover-color: var(--ast-action-buttons-hover-color, var(--ast-primary-color, #005DA7));
36
38
 
37
39
  /****************************************************
38
40
  classes
@@ -58,6 +60,7 @@ $ast-muted-color: var(--ast-muted-color, rgba(33, 37, 41, 0.75));
58
60
 
59
61
  .ast-error {
60
62
  background-color: $ast-error-bg;
63
+ color: var(--ast-action-buttons-color, inherit);
61
64
 
62
65
  &:hover {
63
66
  color: $ast-error-color;
@@ -90,4 +93,6 @@ $ast-muted-color: var(--ast-muted-color, rgba(33, 37, 41, 0.75));
90
93
  --ast-reference-passages-color: white;
91
94
  --ast-reference-expanded-hover-bg: #262421;
92
95
  --ast-message-reference-color: black;
96
+ --ast-action-buttons-color: white;
97
+ --ast-action-buttons-hover-color: #6dbee6;
93
98
  }
package/chat/types.d.ts CHANGED
@@ -71,7 +71,7 @@ export interface ChatContextAttachment extends RawAttachment {
71
71
  */
72
72
  export interface RawResponse {
73
73
  history: RawMessage[];
74
- executionTime: string;
74
+ executionTime: string | undefined;
75
75
  }
76
76
  /**
77
77
  * Enriched response of the chat API
@@ -126,30 +126,35 @@ export declare const connectionSettingsSchema: z.ZodEffects<z.ZodObject<{
126
126
  websocketEndpoint: z.ZodOptional<z.ZodString>;
127
127
  signalRTransport: z.ZodEnum<["WebSockets", "ServerSentEvents", "LongPolling", "None"]>;
128
128
  signalRLogLevel: z.ZodEnum<["Critical", "Debug", "Error", "Information", "None", "Trace", "Warning"]>;
129
+ signalRServerTimeoutInMilliseconds: z.ZodOptional<z.ZodNumber>;
129
130
  }, "strip", z.ZodTypeAny, {
130
131
  connectionErrorMessage: string;
131
132
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
132
133
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
133
134
  restEndpoint?: string | undefined;
134
135
  websocketEndpoint?: string | undefined;
136
+ signalRServerTimeoutInMilliseconds?: number | undefined;
135
137
  }, {
136
138
  connectionErrorMessage: string;
137
139
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
138
140
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
139
141
  restEndpoint?: string | undefined;
140
142
  websocketEndpoint?: string | undefined;
143
+ signalRServerTimeoutInMilliseconds?: number | undefined;
141
144
  }>, {
142
145
  connectionErrorMessage: string;
143
146
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
144
147
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
145
148
  restEndpoint?: string | undefined;
146
149
  websocketEndpoint?: string | undefined;
150
+ signalRServerTimeoutInMilliseconds?: number | undefined;
147
151
  }, {
148
152
  connectionErrorMessage: string;
149
153
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
150
154
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
151
155
  restEndpoint?: string | undefined;
152
156
  websocketEndpoint?: string | undefined;
157
+ signalRServerTimeoutInMilliseconds?: number | undefined;
153
158
  }>;
154
159
  export declare type ConnectionSettings = z.infer<typeof connectionSettingsSchema>;
155
160
  declare const serviceSettingsSchema: z.ZodObject<{
@@ -212,6 +217,15 @@ declare const uiSettingsSchema: z.ZodObject<{
212
217
  }>;
213
218
  export interface UiSettings extends z.infer<typeof uiSettingsSchema> {
214
219
  }
220
+ declare const chatStarterSchema: z.ZodObject<{
221
+ text: z.ZodString;
222
+ }, "strip", z.ZodTypeAny, {
223
+ text: string;
224
+ }, {
225
+ text: string;
226
+ }>;
227
+ export interface ChatStarter extends z.infer<typeof chatStarterSchema> {
228
+ }
215
229
  declare const defaultValuesSchema: z.ZodObject<{
216
230
  service_id: z.ZodString;
217
231
  model_id: z.ZodString;
@@ -260,7 +274,7 @@ declare const defaultValuesSchema: z.ZodObject<{
260
274
  }>;
261
275
  export interface DefaultValues extends z.infer<typeof defaultValuesSchema> {
262
276
  }
263
- declare const modeSettingsSchema: z.ZodObject<{
277
+ declare const modeSettingsSchema: z.ZodEffects<z.ZodObject<{
264
278
  enabledUserInput: z.ZodBoolean;
265
279
  displayUserPrompt: z.ZodBoolean;
266
280
  sendUserPrompt: z.ZodBoolean;
@@ -268,22 +282,41 @@ declare const modeSettingsSchema: z.ZodObject<{
268
282
  event: z.ZodEnum<["Query", "Prompt"]>;
269
283
  forcedWorkflow: z.ZodOptional<z.ZodString>;
270
284
  displayUserQuery: z.ZodOptional<z.ZodBoolean>;
285
+ chatStarters: z.ZodOptional<z.ZodArray<z.ZodObject<{
286
+ text: z.ZodString;
287
+ }, "strip", z.ZodTypeAny, {
288
+ text: string;
289
+ }, {
290
+ text: string;
291
+ }>, "many">>;
271
292
  }, "strip", z.ZodTypeAny, {
272
293
  event: "Query" | "Prompt";
273
294
  forcedWorkflow?: string | undefined;
274
295
  displayUserQuery?: boolean | undefined;
296
+ chatStarters?: {
297
+ text: string;
298
+ }[] | undefined;
275
299
  }, {
276
300
  event: "Query" | "Prompt";
277
301
  forcedWorkflow?: string | undefined;
278
302
  displayUserQuery?: boolean | undefined;
303
+ chatStarters?: {
304
+ text: string;
305
+ }[] | undefined;
279
306
  }>, {
280
307
  event: "Query" | "Prompt";
281
308
  forcedWorkflow?: string | undefined;
282
309
  displayUserQuery?: boolean | undefined;
310
+ chatStarters?: {
311
+ text: string;
312
+ }[] | undefined;
283
313
  }, {
284
314
  event: "Query" | "Prompt";
285
315
  forcedWorkflow?: string | undefined;
286
316
  displayUserQuery?: boolean | undefined;
317
+ chatStarters?: {
318
+ text: string;
319
+ }[] | undefined;
287
320
  }>;
288
321
  }, "strip", z.ZodTypeAny, {
289
322
  displayUserPrompt: boolean;
@@ -293,6 +326,9 @@ declare const modeSettingsSchema: z.ZodObject<{
293
326
  event: "Query" | "Prompt";
294
327
  forcedWorkflow?: string | undefined;
295
328
  displayUserQuery?: boolean | undefined;
329
+ chatStarters?: {
330
+ text: string;
331
+ }[] | undefined;
296
332
  };
297
333
  }, {
298
334
  displayUserPrompt: boolean;
@@ -302,6 +338,33 @@ declare const modeSettingsSchema: z.ZodObject<{
302
338
  event: "Query" | "Prompt";
303
339
  forcedWorkflow?: string | undefined;
304
340
  displayUserQuery?: boolean | undefined;
341
+ chatStarters?: {
342
+ text: string;
343
+ }[] | undefined;
344
+ };
345
+ }>, {
346
+ displayUserPrompt: boolean;
347
+ enabledUserInput: boolean;
348
+ sendUserPrompt: boolean;
349
+ initialization: {
350
+ event: "Query" | "Prompt";
351
+ forcedWorkflow?: string | undefined;
352
+ displayUserQuery?: boolean | undefined;
353
+ chatStarters?: {
354
+ text: string;
355
+ }[] | undefined;
356
+ };
357
+ }, {
358
+ displayUserPrompt: boolean;
359
+ enabledUserInput: boolean;
360
+ sendUserPrompt: boolean;
361
+ initialization: {
362
+ event: "Query" | "Prompt";
363
+ forcedWorkflow?: string | undefined;
364
+ displayUserQuery?: boolean | undefined;
365
+ chatStarters?: {
366
+ text: string;
367
+ }[] | undefined;
305
368
  };
306
369
  }>;
307
370
  export interface ModeSettings extends z.infer<typeof modeSettingsSchema> {
@@ -327,30 +390,35 @@ export declare const chatConfigSchema: z.ZodObject<{
327
390
  websocketEndpoint: z.ZodOptional<z.ZodString>;
328
391
  signalRTransport: z.ZodEnum<["WebSockets", "ServerSentEvents", "LongPolling", "None"]>;
329
392
  signalRLogLevel: z.ZodEnum<["Critical", "Debug", "Error", "Information", "None", "Trace", "Warning"]>;
393
+ signalRServerTimeoutInMilliseconds: z.ZodOptional<z.ZodNumber>;
330
394
  }, "strip", z.ZodTypeAny, {
331
395
  connectionErrorMessage: string;
332
396
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
333
397
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
334
398
  restEndpoint?: string | undefined;
335
399
  websocketEndpoint?: string | undefined;
400
+ signalRServerTimeoutInMilliseconds?: number | undefined;
336
401
  }, {
337
402
  connectionErrorMessage: string;
338
403
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
339
404
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
340
405
  restEndpoint?: string | undefined;
341
406
  websocketEndpoint?: string | undefined;
407
+ signalRServerTimeoutInMilliseconds?: number | undefined;
342
408
  }>, {
343
409
  connectionErrorMessage: string;
344
410
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
345
411
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
346
412
  restEndpoint?: string | undefined;
347
413
  websocketEndpoint?: string | undefined;
414
+ signalRServerTimeoutInMilliseconds?: number | undefined;
348
415
  }, {
349
416
  connectionErrorMessage: string;
350
417
  signalRTransport: "None" | "WebSockets" | "ServerSentEvents" | "LongPolling";
351
418
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
352
419
  restEndpoint?: string | undefined;
353
420
  websocketEndpoint?: string | undefined;
421
+ signalRServerTimeoutInMilliseconds?: number | undefined;
354
422
  }>;
355
423
  defaultValues: z.ZodObject<{
356
424
  service_id: z.ZodString;
@@ -398,7 +466,7 @@ export declare const chatConfigSchema: z.ZodObject<{
398
466
  systemPrompt: string;
399
467
  userPrompt: string;
400
468
  }>;
401
- modeSettings: z.ZodObject<{
469
+ modeSettings: z.ZodEffects<z.ZodObject<{
402
470
  enabledUserInput: z.ZodBoolean;
403
471
  displayUserPrompt: z.ZodBoolean;
404
472
  sendUserPrompt: z.ZodBoolean;
@@ -406,22 +474,41 @@ export declare const chatConfigSchema: z.ZodObject<{
406
474
  event: z.ZodEnum<["Query", "Prompt"]>;
407
475
  forcedWorkflow: z.ZodOptional<z.ZodString>;
408
476
  displayUserQuery: z.ZodOptional<z.ZodBoolean>;
477
+ chatStarters: z.ZodOptional<z.ZodArray<z.ZodObject<{
478
+ text: z.ZodString;
479
+ }, "strip", z.ZodTypeAny, {
480
+ text: string;
481
+ }, {
482
+ text: string;
483
+ }>, "many">>;
409
484
  }, "strip", z.ZodTypeAny, {
410
485
  event: "Query" | "Prompt";
411
486
  forcedWorkflow?: string | undefined;
412
487
  displayUserQuery?: boolean | undefined;
488
+ chatStarters?: {
489
+ text: string;
490
+ }[] | undefined;
413
491
  }, {
414
492
  event: "Query" | "Prompt";
415
493
  forcedWorkflow?: string | undefined;
416
494
  displayUserQuery?: boolean | undefined;
495
+ chatStarters?: {
496
+ text: string;
497
+ }[] | undefined;
417
498
  }>, {
418
499
  event: "Query" | "Prompt";
419
500
  forcedWorkflow?: string | undefined;
420
501
  displayUserQuery?: boolean | undefined;
502
+ chatStarters?: {
503
+ text: string;
504
+ }[] | undefined;
421
505
  }, {
422
506
  event: "Query" | "Prompt";
423
507
  forcedWorkflow?: string | undefined;
424
508
  displayUserQuery?: boolean | undefined;
509
+ chatStarters?: {
510
+ text: string;
511
+ }[] | undefined;
425
512
  }>;
426
513
  }, "strip", z.ZodTypeAny, {
427
514
  displayUserPrompt: boolean;
@@ -431,6 +518,33 @@ export declare const chatConfigSchema: z.ZodObject<{
431
518
  event: "Query" | "Prompt";
432
519
  forcedWorkflow?: string | undefined;
433
520
  displayUserQuery?: boolean | undefined;
521
+ chatStarters?: {
522
+ text: string;
523
+ }[] | undefined;
524
+ };
525
+ }, {
526
+ displayUserPrompt: boolean;
527
+ enabledUserInput: boolean;
528
+ sendUserPrompt: boolean;
529
+ initialization: {
530
+ event: "Query" | "Prompt";
531
+ forcedWorkflow?: string | undefined;
532
+ displayUserQuery?: boolean | undefined;
533
+ chatStarters?: {
534
+ text: string;
535
+ }[] | undefined;
536
+ };
537
+ }>, {
538
+ displayUserPrompt: boolean;
539
+ enabledUserInput: boolean;
540
+ sendUserPrompt: boolean;
541
+ initialization: {
542
+ event: "Query" | "Prompt";
543
+ forcedWorkflow?: string | undefined;
544
+ displayUserQuery?: boolean | undefined;
545
+ chatStarters?: {
546
+ text: string;
547
+ }[] | undefined;
434
548
  };
435
549
  }, {
436
550
  displayUserPrompt: boolean;
@@ -440,6 +554,9 @@ export declare const chatConfigSchema: z.ZodObject<{
440
554
  event: "Query" | "Prompt";
441
555
  forcedWorkflow?: string | undefined;
442
556
  displayUserQuery?: boolean | undefined;
557
+ chatStarters?: {
558
+ text: string;
559
+ }[] | undefined;
443
560
  };
444
561
  }>;
445
562
  uiSettings: z.ZodObject<{
@@ -519,6 +636,7 @@ export declare const chatConfigSchema: z.ZodObject<{
519
636
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
520
637
  restEndpoint?: string | undefined;
521
638
  websocketEndpoint?: string | undefined;
639
+ signalRServerTimeoutInMilliseconds?: number | undefined;
522
640
  };
523
641
  defaultValues: {
524
642
  debug: boolean;
@@ -542,6 +660,9 @@ export declare const chatConfigSchema: z.ZodObject<{
542
660
  event: "Query" | "Prompt";
543
661
  forcedWorkflow?: string | undefined;
544
662
  displayUserQuery?: boolean | undefined;
663
+ chatStarters?: {
664
+ text: string;
665
+ }[] | undefined;
545
666
  };
546
667
  };
547
668
  uiSettings: {
@@ -578,6 +699,7 @@ export declare const chatConfigSchema: z.ZodObject<{
578
699
  signalRLogLevel: "None" | "Critical" | "Debug" | "Error" | "Information" | "Trace" | "Warning";
579
700
  restEndpoint?: string | undefined;
580
701
  websocketEndpoint?: string | undefined;
702
+ signalRServerTimeoutInMilliseconds?: number | undefined;
581
703
  };
582
704
  defaultValues: {
583
705
  debug: boolean;
@@ -601,6 +723,9 @@ export declare const chatConfigSchema: z.ZodObject<{
601
723
  event: "Query" | "Prompt";
602
724
  forcedWorkflow?: string | undefined;
603
725
  displayUserQuery?: boolean | undefined;
726
+ chatStarters?: {
727
+ text: string;
728
+ }[] | undefined;
604
729
  };
605
730
  };
606
731
  uiSettings: {
@@ -9,12 +9,11 @@ import * as i0 from "@angular/core";
9
9
  export declare class WebSocketChatService extends ChatService {
10
10
  connection: HubConnection | undefined;
11
11
  private _messageHandlers;
12
+ private _response;
12
13
  private _actionMap;
13
14
  private _progress;
14
- private _content;
15
15
  private _executionTime;
16
16
  private _attachments;
17
- private _suggestedActions;
18
17
  private _debugMessages;
19
18
  signalRService: SignalRWebService;
20
19
  authenticationService: AuthenticationService;
@@ -34,6 +33,7 @@ export declare class WebSocketChatService extends ChatService {
34
33
  listModels(): Observable<GllmModelDescription[] | undefined>;
35
34
  listFunctions(): Observable<GllmFunction[] | undefined>;
36
35
  fetch(messages: ChatMessage[], query: Query): Observable<ChatResponse>;
36
+ stopGeneration(): Observable<boolean>;
37
37
  listSavedChat(): void;
38
38
  getSavedChat(id: string): Observable<SavedChatHistory | undefined>;
39
39
  addSavedChat(messages: ChatMessage[]): Observable<SavedChat>;
@@ -41,7 +41,7 @@ export declare class WebSocketChatService extends ChatService {
41
41
  deleteSavedChat(ids: string[]): Observable<number>;
42
42
  /**
43
43
  * Initialize out-of-the-box handlers
44
- * It is a placeholder for non-streaming scenarios, where you invoke a specific hub method, and the server responds with a single message or a result
44
+ * It is a placeholder for non-streaming scenarios, where you invoke a specific hub method, and the server responds with frame message(s)
45
45
  */
46
46
  initMessageHandlers(): void;
47
47
  /**
@@ -52,7 +52,7 @@ export declare class WebSocketChatService extends ChatService {
52
52
  /**
53
53
  * Add a listener for a specific event.
54
54
  * If a listener for this same event already exists, it will be overridden.
55
- * If the listener has "isChatGlobalHandler" set to true, it will be registered to the hub connection.
55
+ * If the listener has "isGlobalHandler" set to true, it will be registered to the hub connection.
56
56
  * @param eventName Name of the event to register a listener for
57
57
  * @param eventHandler The handler to be called when the event is received
58
58
  */
@@ -93,8 +93,8 @@ export declare class WebSocketChatService extends ChatService {
93
93
  * @returns Promise that resolves when the connection is stopped
94
94
  */
95
95
  stopConnection(): Promise<void>;
96
- private getTransports;
97
- private getLogLevel;
96
+ private _getTransports;
97
+ private _getLogLevel;
98
98
  get defaultOptions(): ConnectionOptions;
99
99
  static ɵfac: i0.ɵɵFactoryDeclaration<WebSocketChatService, never>;
100
100
  static ɵprov: i0.ɵɵInjectableDeclaration<WebSocketChatService>;