@servicetitan/titan-chatbot-api 7.1.2 → 9.0.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.
- package/CHANGELOG.md +25 -0
- package/dist/api-client/__mocks__/chatbot-api-client.mock.d.ts +1 -0
- package/dist/api-client/__mocks__/chatbot-api-client.mock.d.ts.map +1 -1
- package/dist/api-client/__mocks__/chatbot-api-client.mock.js +22 -47
- package/dist/api-client/__mocks__/chatbot-api-client.mock.js.map +1 -1
- package/dist/api-client/base/chatbot-api-client.d.ts +7 -0
- package/dist/api-client/base/chatbot-api-client.d.ts.map +1 -1
- package/dist/api-client/base/chatbot-api-client.js +3 -4
- package/dist/api-client/base/chatbot-api-client.js.map +1 -1
- package/dist/api-client/index.d.ts +2 -2
- package/dist/api-client/index.d.ts.map +1 -1
- package/dist/api-client/index.js +12 -7
- package/dist/api-client/index.js.map +1 -1
- package/dist/api-client/models/__mocks__/models.mock.js +154 -124
- package/dist/api-client/models/__mocks__/models.mock.js.map +1 -1
- package/dist/api-client/models/index.d.ts +2 -1
- package/dist/api-client/models/index.d.ts.map +1 -1
- package/dist/api-client/models/index.js +8 -7
- package/dist/api-client/models/index.js.map +1 -1
- package/dist/api-client/titan-chat/__tests__/chatbot-api-client-stream.test.d.ts +2 -0
- package/dist/api-client/titan-chat/__tests__/chatbot-api-client-stream.test.d.ts.map +1 -0
- package/dist/api-client/titan-chat/__tests__/chatbot-api-client-stream.test.js +240 -0
- package/dist/api-client/titan-chat/__tests__/chatbot-api-client-stream.test.js.map +1 -0
- package/dist/api-client/titan-chat/__tests__/native-client.test.js +6 -6
- package/dist/api-client/titan-chat/__tests__/native-client.test.js.map +1 -1
- package/dist/api-client/titan-chat/chatbot-api-client.d.ts +11 -0
- package/dist/api-client/titan-chat/chatbot-api-client.d.ts.map +1 -1
- package/dist/api-client/titan-chat/chatbot-api-client.js +69 -35
- package/dist/api-client/titan-chat/chatbot-api-client.js.map +1 -1
- package/dist/api-client/titan-chat/index.d.ts +2 -1
- package/dist/api-client/titan-chat/index.d.ts.map +1 -1
- package/dist/api-client/titan-chat/index.js +1 -0
- package/dist/api-client/titan-chat/index.js.map +1 -1
- package/dist/api-client/titan-chat/native-client.js +359 -812
- package/dist/api-client/titan-chat/native-client.js.map +1 -1
- package/dist/api-client/utils/__tests__/model-utils.test.js +454 -191
- package/dist/api-client/utils/__tests__/model-utils.test.js.map +1 -1
- package/dist/api-client/utils/model-utils.d.ts.map +1 -1
- package/dist/api-client/utils/model-utils.js +28 -25
- package/dist/api-client/utils/model-utils.js.map +1 -1
- package/dist/hooks/use-customization-chatbot.js +2 -1
- package/dist/hooks/use-customization-chatbot.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/models/__tests__/chatbot-customizations.test.d.ts +2 -0
- package/dist/models/__tests__/chatbot-customizations.test.d.ts.map +1 -0
- package/dist/models/__tests__/chatbot-customizations.test.js +36 -0
- package/dist/models/__tests__/chatbot-customizations.test.js.map +1 -0
- package/dist/models/chatbot-customizations.d.ts +17 -0
- package/dist/models/chatbot-customizations.d.ts.map +1 -1
- package/dist/models/chatbot-customizations.js +7 -1
- package/dist/models/chatbot-customizations.js.map +1 -1
- package/dist/models/index.js +1 -0
- package/dist/models/index.js.map +1 -1
- package/dist/stores/__tests__/chatbot-ui-backend.store.observability.test.d.ts +2 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.observability.test.d.ts.map +1 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.observability.test.js +107 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.observability.test.js.map +1 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.streaming.test.d.ts +2 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.streaming.test.d.ts.map +1 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.streaming.test.js +312 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.streaming.test.js.map +1 -0
- package/dist/stores/__tests__/chatbot-ui-backend.store.test.js +267 -172
- package/dist/stores/__tests__/chatbot-ui-backend.store.test.js.map +1 -1
- package/dist/stores/__tests__/chatbot-ui.store.test.js +61 -64
- package/dist/stores/__tests__/chatbot-ui.store.test.js.map +1 -1
- package/dist/stores/__tests__/filter.store.test.js +243 -116
- package/dist/stores/__tests__/filter.store.test.js.map +1 -1
- package/dist/stores/__tests__/initialize.store.test.js +9 -8
- package/dist/stores/__tests__/initialize.store.test.js.map +1 -1
- package/dist/stores/__tests__/message-feedback-guardrail.store.test.js +8 -7
- package/dist/stores/__tests__/message-feedback-guardrail.store.test.js.map +1 -1
- package/dist/stores/__tests__/message-feedback.store.test.js +34 -27
- package/dist/stores/__tests__/message-feedback.store.test.js.map +1 -1
- package/dist/stores/__tests__/session-feedback.store.test.js +9 -8
- package/dist/stores/__tests__/session-feedback.store.test.js.map +1 -1
- package/dist/stores/chatbot-ui-backend.store.d.ts +26 -2
- package/dist/stores/chatbot-ui-backend.store.d.ts.map +1 -1
- package/dist/stores/chatbot-ui-backend.store.js +295 -239
- package/dist/stores/chatbot-ui-backend.store.js.map +1 -1
- package/dist/stores/chatbot-ui.store.js +73 -46
- package/dist/stores/chatbot-ui.store.js.map +1 -1
- package/dist/stores/filter.store.js +298 -378
- package/dist/stores/filter.store.js.map +1 -1
- package/dist/stores/index.d.ts +5 -3
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +3 -2
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/initialize.store.js +55 -51
- package/dist/stores/initialize.store.js.map +1 -1
- package/dist/stores/message-feedback-base.store.js +2 -1
- package/dist/stores/message-feedback-base.store.js.map +1 -1
- package/dist/stores/message-feedback-guardrail.store.js +50 -47
- package/dist/stores/message-feedback-guardrail.store.js.map +1 -1
- package/dist/stores/message-feedback.store.js +84 -89
- package/dist/stores/message-feedback.store.js.map +1 -1
- package/dist/stores/session-feedback.store.js +46 -39
- package/dist/stores/session-feedback.store.js.map +1 -1
- package/dist/streaming/__tests__/agent-stream.test.d.ts +2 -0
- package/dist/streaming/__tests__/agent-stream.test.d.ts.map +1 -0
- package/dist/streaming/__tests__/agent-stream.test.js +92 -0
- package/dist/streaming/__tests__/agent-stream.test.js.map +1 -0
- package/dist/streaming/agent-stream.d.ts +83 -0
- package/dist/streaming/agent-stream.d.ts.map +1 -0
- package/dist/streaming/agent-stream.js +28 -0
- package/dist/streaming/agent-stream.js.map +1 -0
- package/dist/streaming/index.d.ts +3 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +4 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/run-agent-stream.d.ts +23 -0
- package/dist/streaming/run-agent-stream.d.ts.map +1 -0
- package/dist/streaming/run-agent-stream.js +83 -0
- package/dist/streaming/run-agent-stream.js.map +1 -0
- package/dist/utils/__tests__/axios-utils.test.js +8 -7
- package/dist/utils/__tests__/axios-utils.test.js.map +1 -1
- package/dist/utils/axios-utils.js +9 -7
- package/dist/utils/axios-utils.js.map +1 -1
- package/dist/utils/test-utils.js +5 -5
- package/dist/utils/test-utils.js.map +1 -1
- package/package.json +6 -3
- package/src/api-client/__mocks__/chatbot-api-client.mock.ts +1 -0
- package/src/api-client/base/chatbot-api-client.ts +11 -0
- package/src/api-client/index.ts +2 -7
- package/src/api-client/models/index.ts +15 -13
- package/src/api-client/titan-chat/__tests__/chatbot-api-client-stream.test.ts +208 -0
- package/src/api-client/titan-chat/chatbot-api-client.ts +46 -0
- package/src/api-client/titan-chat/index.ts +2 -1
- package/src/api-client/utils/model-utils.ts +4 -8
- package/src/index.ts +7 -2
- package/src/models/__tests__/chatbot-customizations.test.ts +26 -0
- package/src/models/chatbot-customizations.ts +20 -0
- package/src/stores/__tests__/chatbot-ui-backend.store.observability.test.ts +105 -0
- package/src/stores/__tests__/chatbot-ui-backend.store.streaming.test.ts +261 -0
- package/src/stores/chatbot-ui-backend.store.ts +179 -4
- package/src/stores/index.ts +5 -12
- package/src/streaming/__tests__/agent-stream.test.ts +80 -0
- package/src/streaming/agent-stream.ts +103 -0
- package/src/streaming/index.ts +2 -0
- package/src/streaming/run-agent-stream.ts +109 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/api-client/help-center/__tests__/converter-from-models.test.d.ts +0 -2
- package/dist/api-client/help-center/__tests__/converter-from-models.test.d.ts.map +0 -1
- package/dist/api-client/help-center/__tests__/converter-from-models.test.js +0 -34
- package/dist/api-client/help-center/__tests__/converter-from-models.test.js.map +0 -1
- package/dist/api-client/help-center/__tests__/converter-to-models.test.d.ts +0 -2
- package/dist/api-client/help-center/__tests__/converter-to-models.test.d.ts.map +0 -1
- package/dist/api-client/help-center/__tests__/converter-to-models.test.js +0 -82
- package/dist/api-client/help-center/__tests__/converter-to-models.test.js.map +0 -1
- package/dist/api-client/help-center/chatbot-api-client.d.ts +0 -32
- package/dist/api-client/help-center/chatbot-api-client.d.ts.map +0 -1
- package/dist/api-client/help-center/chatbot-api-client.js +0 -102
- package/dist/api-client/help-center/chatbot-api-client.js.map +0 -1
- package/dist/api-client/help-center/converter-from-models.d.ts +0 -13
- package/dist/api-client/help-center/converter-from-models.d.ts.map +0 -1
- package/dist/api-client/help-center/converter-from-models.js +0 -114
- package/dist/api-client/help-center/converter-from-models.js.map +0 -1
- package/dist/api-client/help-center/converter-to-models.d.ts +0 -13
- package/dist/api-client/help-center/converter-to-models.d.ts.map +0 -1
- package/dist/api-client/help-center/converter-to-models.js +0 -98
- package/dist/api-client/help-center/converter-to-models.js.map +0 -1
- package/dist/api-client/help-center/index.d.ts +0 -2
- package/dist/api-client/help-center/index.d.ts.map +0 -1
- package/dist/api-client/help-center/index.js +0 -2
- package/dist/api-client/help-center/index.js.map +0 -1
- package/dist/api-client/help-center/native-client.d.ts +0 -1268
- package/dist/api-client/help-center/native-client.d.ts.map +0 -1
- package/dist/api-client/help-center/native-client.js +0 -6242
- package/dist/api-client/help-center/native-client.js.map +0 -1
- package/src/api-client/help-center/__tests__/converter-from-models.test.ts +0 -41
- package/src/api-client/help-center/__tests__/converter-to-models.test.ts +0 -89
- package/src/api-client/help-center/chatbot-api-client.ts +0 -122
- package/src/api-client/help-center/converter-from-models.ts +0 -133
- package/src/api-client/help-center/converter-to-models.ts +0 -127
- package/src/api-client/help-center/index.ts +0 -1
- package/src/api-client/help-center/native-client.ts +0 -5727
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-ui-backend.store.js","sourceRoot":"","sources":["../../src/stores/chatbot-ui-backend.store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/stores/chatbot-ui-backend.store.ts"],"sourcesContent":["import { ILog, Log } from '@servicetitan/log-service';\nimport { inject, injectable, symbolToken } from '@servicetitan/react-ioc';\nimport {\n ChatError,\n ChatMessageModelBase,\n ChatMessageModelText,\n ChatMessageState,\n ChatRunState,\n ChatUiEvent,\n ChatUiEventListener,\n IChatUiBackendStore,\n StreamingProgressModel,\n} from '@servicetitan/titan-chat-ui-common';\nimport axios from 'axios';\nimport { makeObservable, runInAction } from 'mobx';\nimport { CHATBOT_API_CLIENT, IChatbotApiClient, Models, ModelsUtils } from '../api-client';\nimport {\n DEFAULT_STREAMING_INACTIVITY_TIMEOUT_MS,\n isChatbotStreamingEnabled,\n} from '../models/chatbot-customizations';\nimport { AgentStreamError, AgentStreamHandlers } from '../streaming';\nimport { withTimeout } from '../utils/axios-utils';\nimport { CHATBOT_UI_STORE_TOKEN, ChatbotUiEvent, IChatbotUiStore } from './chatbot-ui.store';\nimport { InitializeStore } from './initialize.store';\n\nconst DEFAULT_CHATBOT_ASK_BOT_TIMEOUT_MS = 31000; // 31 seconds\n\nconst STREAMING_KEEPALIVE_TEXT = 'Still working on it…';\nconst STREAMING_STEP_ERROR = 'Something went wrong during this step. Please try again.';\n\nconst isAbortedError = (error: unknown): boolean =>\n axios.isCancel(error) || (error as { name?: string } | null)?.name === 'AbortError';\n\nexport const CHATBOT_UI_BACKEND_STORE_TOKEN = symbolToken<IChatbotUiBackendStore>(\n 'CHATBOT_UI_BACKEND_STORE_TOKEN'\n);\n\nexport interface IChatbotUiBackendStore extends IChatUiBackendStore {\n session?: Models.ISession;\n /** Live progress for the in-flight streamed run. */\n streamingProgress: StreamingProgressModel;\n /** Count of streaming → non-streaming fallbacks. */\n streamingFallbackCount: number;\n initialize: () => void;\n saveCurrentState: () => void;\n deleteFromSessionStorage: () => void;\n restoreChatSession: () => void;\n getSessionData: () => Promise<Models.ISession['data'] | undefined>;\n restartTimers: () => void;\n}\n\n@injectable()\nexport class ChatbotUiBackendStore extends InitializeStore implements IChatbotUiBackendStore {\n session?: Models.ISession;\n abortController!: AbortController;\n\n /** Live progress for the in-flight streamed run (status line, activity log, steps, keepalive). */\n readonly streamingProgress = new StreamingProgressModel();\n /** Count of streaming → non-streaming fallbacks, tracked separately for regression detection. */\n streamingFallbackCount = 0;\n\n @inject(CHATBOT_API_CLIENT) protected readonly chatbotApiClient!: IChatbotApiClient;\n @inject(CHATBOT_UI_STORE_TOKEN) protected readonly chatUiStore!: IChatbotUiStore;\n\n @inject(Log) private log!: ILog;\n private sessionPromise?: Promise<Models.ISession>;\n\n protected get logService(): ILog {\n return this.log;\n }\n\n protected get customizations() {\n return this.chatUiStore.customizations;\n }\n\n constructor() {\n super();\n makeObservable(this);\n this.initializeAbortController();\n }\n\n subscribe(): void {\n this.unsubscribe();\n this.chatUiStore.on(ChatUiEvent.eventRun, this.handleRun);\n this.chatUiStore.on(ChatUiEvent.eventDestroy, this.handleDestroy);\n this.chatUiStore.on(ChatUiEvent.eventRestart, this.handleRestart);\n this.chatUiStore.on(ChatUiEvent.eventMessageSend, this.handleMessageSend);\n this.chatUiStore.on(ChatUiEvent.eventMessageSendRetry, this.handleMessageSendRetry);\n this.chatUiStore.on(ChatbotUiEvent.eventChatbotSessionStart, this.handleSessionStart);\n this.chatUiStore.on(ChatbotUiEvent.eventChatbotSessionFeedback, this.handleSessionFeedback);\n this.chatUiStore.on(ChatbotUiEvent.eventChatbotMessageFeedback, this.handleMessageFeedback);\n }\n unsubscribe(): void {\n this.chatUiStore.off(ChatUiEvent.eventRun, this.handleRun);\n this.chatUiStore.off(ChatUiEvent.eventDestroy, this.handleDestroy);\n this.chatUiStore.off(ChatUiEvent.eventRestart, this.handleRestart);\n this.chatUiStore.off(ChatUiEvent.eventMessageSend, this.handleMessageSend);\n this.chatUiStore.off(ChatUiEvent.eventMessageSendRetry, this.handleMessageSendRetry);\n this.chatUiStore.off(ChatbotUiEvent.eventChatbotSessionStart, this.handleSessionStart);\n this.chatUiStore.off(\n ChatbotUiEvent.eventChatbotSessionFeedback,\n this.handleSessionFeedback\n );\n this.chatUiStore.off(\n ChatbotUiEvent.eventChatbotMessageFeedback,\n this.handleMessageFeedback\n );\n }\n\n handleRun: ChatUiEventListener = async resolve => {\n await this.run();\n resolve();\n };\n\n handleDestroy: ChatUiEventListener = async resolve => {\n await this.destroy();\n resolve();\n };\n\n handleRestart: ChatUiEventListener = async resolve => {\n await this.destroy();\n this.deleteFromSessionStorage();\n await this.run();\n resolve();\n };\n\n handleMessageSend: ChatUiEventListener = async (\n resolve,\n _,\n messageModel: ChatMessageModelText,\n selections: Models.Selections | undefined,\n timeoutMs?: number\n ) => {\n await this.routeSend(messageModel, selections, timeoutMs);\n resolve();\n };\n\n handleMessageSendRetry: ChatUiEventListener = async (\n resolve,\n _,\n messageModel: ChatMessageModelBase\n ) => {\n if (messageModel.type !== 'message') {\n resolve();\n return;\n }\n const selections = messageModel.data?.selections as Models.Selections | undefined;\n const timeoutMs = messageModel.data?.timeoutMs as number | undefined;\n await this.routeSend(messageModel as ChatMessageModelText, selections, timeoutMs);\n resolve();\n };\n\n handleSessionStart: ChatUiEventListener<{\n session?: Models.ISession;\n }> = async (resolve, _, sessionData?: Models.ISession['data'], forceRecreate?: boolean) => {\n const session = await this.startSession(sessionData, forceRecreate);\n resolve({\n session,\n });\n };\n\n handleSessionFeedback: ChatUiEventListener<{\n state: Models.ChatbotFeedbackState;\n feedback?: Models.Feedback;\n }> = async (resolve, _, draft?: Models.IFeedback) => {\n let feedbackState: Models.ChatbotFeedbackState;\n let feedbackResult: Models.Feedback | undefined = draft\n ? new Models.Feedback(draft)\n : undefined;\n try {\n if (!draft) {\n throw new ChatError('Session feedback is missing.', {\n recoverStrategy: false,\n });\n }\n if (typeof draft.messageId !== 'undefined') {\n throw new ChatError('Session feedback should not contain messageId.', {\n recoverStrategy: false,\n });\n }\n await this.startSession();\n const feedback = new Models.Feedback({ ...draft, sessionId: this.session!.id! });\n feedbackResult = await this.api('postFeedback', feedback, this.abortController.signal);\n feedbackState = Models.ChatbotFeedbackState.Success;\n } catch (error: unknown) {\n this.setError(\n 'FailedToSendFeedback',\n 'Send session feedback',\n 'Failed to send feedback',\n error\n );\n feedbackState = Models.ChatbotFeedbackState.Failure;\n }\n resolve({\n state: feedbackState,\n feedback: feedbackResult,\n });\n };\n\n handleMessageFeedback: ChatUiEventListener<{\n state: Models.ChatbotFeedbackState;\n feedback?: Models.Feedback;\n }> = async (resolve, _, draft?: Models.IFeedback) => {\n let feedbackState: Models.ChatbotFeedbackState;\n let feedbackResult: Models.Feedback | undefined = draft\n ? new Models.Feedback(draft)\n : undefined;\n try {\n if (!draft) {\n throw new ChatError('Message feedback is missing.', {\n recoverStrategy: false,\n });\n }\n if (!draft.messageId) {\n throw new ChatError('Message feedback is missing messageId.', {\n recoverStrategy: false,\n });\n }\n await this.startSession();\n const feedback = new Models.Feedback({ ...draft, sessionId: this.session!.id! });\n feedbackResult = await this.api('postFeedback', feedback, this.abortController.signal);\n feedbackState = Models.ChatbotFeedbackState.Success;\n } catch (error: unknown) {\n this.setError(\n 'FailedToSendMessageFeedback',\n 'Send message feedback',\n 'Failed to send message feedback',\n error\n );\n feedbackState = Models.ChatbotFeedbackState.Failure;\n }\n resolve({\n state: feedbackState,\n feedback: feedbackResult,\n });\n };\n\n async getSessionData(): Promise<Models.ISession['data'] | undefined> {\n return Promise.resolve(undefined);\n }\n\n restoreChatSession() {}\n\n saveCurrentState() {}\n\n deleteFromSessionStorage() {}\n\n restartTimers() {}\n\n protected ensureWelcomeMessage() {\n if (this.chatUiStore.messages.length) {\n return;\n }\n this.withSaveState(() => {\n this.chatUiStore.addMessageWelcome(\n `Hi there! I’m ${this.chatUiStore.agent.name}, an AI chatbot powered by Titan Intelligence. ` +\n 'I’m here to answer your questions about using ServiceTitan. ' +\n 'You can ask me things like \"How to merge duplicate customers?\". ' +\n 'Do you have a question for me?'\n );\n });\n }\n\n protected logError(code: string, message: string, error: any) {\n if (isAbortedError(error)) {\n return;\n }\n this.logService.error({\n error,\n message,\n category: 'TitanChatbot',\n code: `TitanChatbot_${code}`,\n });\n }\n\n protected override async initializeInternal() {\n await super.initializeInternal();\n const options = await this.chatbotApiClient.getOptions();\n runInAction(() => {\n this.chatUiStore.filterStore.initFilters(options, {\n isDefaultSelected: this.customizations?.filters?.isDefaultSelected,\n });\n });\n }\n\n protected async run() {\n this.chatUiStore.setStatus(ChatRunState.Initializing);\n try {\n await this.initialize();\n this.restoreChatSession();\n this.ensureWelcomeMessage();\n this.restartTimers();\n this.chatUiStore.setStatus(ChatRunState.Started);\n } catch (error: unknown) {\n this.setError(\n 'FailedToInitialize',\n 'Initialization Error',\n 'Unable to start the chatbot service. Please check your connection and refresh the page.',\n error\n );\n }\n }\n\n protected reset() {\n this.setSession(undefined);\n }\n\n protected async destroy() {\n if (this.session) {\n const session = await this.api('deleteSession', this.session);\n this.setSession(session);\n }\n this.reset();\n this.chatUiStore.reset();\n }\n\n protected processBotAnswer(answer: Models.IBotMessage) {\n this.chatUiStore.addMessage(true, answer.answer, answer);\n }\n\n /**\n * Routes a send to the SSE streaming path when enabled (and supported by the client),\n * otherwise to the existing non-streaming path. Default is non-streaming.\n */\n protected routeSend(\n messageModel: ChatMessageModelText,\n selections?: Models.Selections,\n timeoutMs?: number\n ): Promise<void> {\n if (isChatbotStreamingEnabled(this.customizations) && this.chatbotApiClient.streamMessage) {\n return this.sendMessageStreaming(messageModel, selections, timeoutMs);\n }\n return this.sendMessage(messageModel, selections, timeoutMs);\n }\n\n protected async sendMessage(\n messageModel: ChatMessageModelText,\n selections?: Models.Selections,\n timeoutMs?: number\n ) {\n const question = messageModel.message;\n const perRequestController = new AbortController();\n const forwardStoreAbort = () =>\n perRequestController.abort(this.abortController.signal.reason);\n this.abortController.signal.addEventListener('abort', forwardStoreAbort, { once: true });\n try {\n await this.startSession();\n this.chatUiStore.setAgentTyping(true);\n const answer = await withTimeout(\n this.api(\n 'postMessage',\n new Models.UserMessage({\n sessionId: this.session!.id!,\n question,\n experience: Models.Experience.MultiTurn,\n selections,\n }),\n perRequestController.signal\n ),\n timeoutMs ??\n this.customizations?.timeouts?.chatbotRequestTimeoutMs ??\n DEFAULT_CHATBOT_ASK_BOT_TIMEOUT_MS,\n perRequestController\n );\n this.withSaveState(() => {\n // Set message state to Delivered and preserve selections and bot answer id to the user question (to have a link between question and answer)\n this.chatUiStore.setMessageState(messageModel, ChatMessageState.Delivered, {\n answerId: answer.id,\n selections,\n });\n this.processBotAnswer(answer);\n this.chatUiStore.resetError(ChatRunState.Started);\n });\n } catch (error: unknown) {\n this.withSaveState(() => {\n this.chatUiStore.setMessageState(messageModel, ChatMessageState.Failed, {\n selections,\n ...(timeoutMs !== undefined ? { timeoutMs } : {}),\n });\n });\n if (error instanceof ChatError) {\n this.setChatError('FailedToSendMessage', error);\n } else {\n this.setError(\n 'FailedToSendMessage',\n 'Send message',\n 'Failed to send message',\n error\n );\n }\n } finally {\n this.abortController.signal.removeEventListener('abort', forwardStoreAbort);\n this.chatUiStore.setAgentTyping(false);\n }\n }\n\n /**\n * Streaming send-path: consumes the SSE agent-progress stream, rendering live progress and\n * resolving the final answer on `run.finished`. Applies an inactivity-only timeout (no hard\n * request timeout). Falls back transparently to {@link sendMessage} when the stream is\n * unreachable at connect time — propagating the original per-message `timeoutMs` so the\n * fallback behaves identically to the non-streaming path; surfaces a step error if the\n * connection fails after connecting.\n */\n protected async sendMessageStreaming(\n messageModel: ChatMessageModelText,\n selections?: Models.Selections,\n timeoutMs?: number\n ) {\n const question = messageModel.message;\n const perRequestController = new AbortController();\n const forwardStoreAbort = () =>\n perRequestController.abort(this.abortController.signal.reason);\n this.abortController.signal.addEventListener('abort', forwardStoreAbort, { once: true });\n\n let connected = false;\n try {\n await this.startSession();\n this.chatUiStore.setAgentTyping(true);\n runInAction(() => this.streamingProgress.reset());\n\n const inactivityTimeoutMs =\n this.customizations?.streaming?.inactivityTimeoutMs ??\n DEFAULT_STREAMING_INACTIVITY_TIMEOUT_MS;\n\n // Apply a progress mutation, then scroll so the newest event stays in view.\n const updateProgress = (mutate: () => void) => {\n runInAction(mutate);\n this.chatUiStore.triggerScroll();\n };\n\n const handlers: AgentStreamHandlers = {\n inactivityTimeoutMs,\n onStatus: text =>\n updateProgress(() => {\n this.streamingProgress.clearKeepalive();\n this.streamingProgress.setStatus(text);\n }),\n onText: text =>\n updateProgress(() => {\n this.streamingProgress.clearKeepalive();\n this.streamingProgress.appendLog(text);\n }),\n onPlan: steps =>\n updateProgress(() => {\n this.streamingProgress.clearKeepalive();\n this.streamingProgress.setSteps(steps);\n }),\n onStepActive: id =>\n updateProgress(() => {\n this.streamingProgress.clearKeepalive();\n this.streamingProgress.setActiveStep(id);\n }),\n onInactivity: () =>\n updateProgress(() =>\n this.streamingProgress.setKeepalive(STREAMING_KEEPALIVE_TEXT)\n ),\n onConnected: () => {\n connected = true;\n this.logStreaming('connected');\n },\n onDisconnected: () => this.logStreaming('disconnected'),\n onTimeout: () => this.logStreaming('timed_out'),\n onCompleted: () => this.logStreaming('completed'),\n };\n\n const answer = await this.api(\n 'streamMessage',\n new Models.UserMessage({\n sessionId: this.session!.id!,\n question,\n experience: Models.Experience.MultiTurn,\n selections,\n }),\n handlers,\n perRequestController.signal\n );\n\n this.withSaveState(() => {\n this.chatUiStore.setMessageState(messageModel, ChatMessageState.Delivered, {\n answerId: answer.id,\n selections,\n });\n this.processBotAnswer(answer);\n this.chatUiStore.resetError(ChatRunState.Started);\n });\n /*\n * Mark every plan step done and clear the transient keepalive; the rendered trail is\n * faded by the UI once the final answer is shown. The next streamed send resets the model.\n */\n runInAction(() => {\n this.streamingProgress.completeAllSteps();\n this.streamingProgress.clearKeepalive();\n });\n } catch (error: unknown) {\n if (isAbortedError(error)) {\n return;\n }\n\n // Never connected → the endpoint was unreachable at connect time: fall back silently.\n if (!connected) {\n this.streamingFallbackCount += 1;\n this.logStreaming('fallback');\n runInAction(() => this.streamingProgress.reset());\n await this.sendMessage(messageModel, selections, timeoutMs);\n return;\n }\n\n // Connected then failed: surface the step error (the agent's message if provided).\n this.withSaveState(() => {\n this.chatUiStore.setMessageState(messageModel, ChatMessageState.Failed, {\n selections,\n });\n });\n runInAction(() => this.streamingProgress.reset());\n const message =\n error instanceof AgentStreamError ? error.message : STREAMING_STEP_ERROR;\n if (error instanceof ChatError) {\n this.setChatError('FailedToSendMessage', error);\n } else {\n this.setError('FailedToSendMessage', 'Send message', message, error);\n }\n } finally {\n this.abortController.signal.removeEventListener('abort', forwardStoreAbort);\n this.chatUiStore.setAgentTyping(false);\n }\n }\n\n /** Logs a streaming connection lifecycle phase (connected, disconnected, timed_out, completed, fallback). */\n protected logStreaming(phase: string): void {\n this.logService.info({\n message: `Streaming ${phase}`,\n category: 'TitanChatbot',\n code: `TitanChatbot_Streaming_${phase}`,\n });\n }\n\n protected setSession(session?: Models.ISession) {\n this.session = session;\n }\n\n protected async startSession(sessionData?: Models.ISession['data'], forceRecreate = false) {\n if (forceRecreate) {\n this.reset();\n this.sessionPromise = undefined;\n }\n if (this.session) {\n return this.session;\n }\n if (!this.sessionPromise) {\n this.sessionPromise = (async () => {\n let data = await this.getSessionData();\n if (sessionData) {\n data = { ...data, ...sessionData };\n }\n return this.api(\n 'postSession',\n ModelsUtils.createNewSessionModel({ data }),\n this.abortController.signal\n );\n })();\n const session = await this.sessionPromise;\n this.setSession(session);\n this.withSaveState(() => {\n this.chatUiStore.resetError(ChatRunState.Started);\n });\n }\n try {\n await this.sessionPromise;\n } finally {\n this.sessionPromise = undefined;\n }\n return this.session;\n }\n\n protected async api<\n K extends keyof IChatbotApiClient,\n Args extends Parameters<NonNullable<IChatbotApiClient[K]>>,\n Result extends ReturnType<NonNullable<IChatbotApiClient[K]>>,\n >(methodName: K, ...args: Args): Promise<Awaited<Result>> {\n const method = this.chatbotApiClient[methodName];\n if (method) {\n try {\n return (method as (...args: Args) => Result).call(\n this.chatbotApiClient,\n ...args\n ) as Promise<Awaited<Result>>;\n } finally {\n this.restartTimers();\n }\n }\n throw new Error(`Method '${methodName}' not found in the API.`);\n }\n\n protected withSaveState<T>(action: () => T): T {\n const result = action();\n this.saveCurrentState();\n return result;\n }\n\n protected setChatError(code: string, error: ChatError) {\n this.logError(code, error.message, error);\n this.withSaveState(() => {\n this.chatUiStore.setChatError(error);\n });\n }\n\n protected setError(code: string, title: string, message: string, error: any) {\n if (isAbortedError(error)) {\n return;\n }\n this.logError(code, message, error);\n this.withSaveState(() => {\n this.chatUiStore.setError(message, error?.message ?? error);\n });\n }\n\n protected initializeAbortController(): void {\n this.abortController = new AbortController();\n this.abortController.signal.addEventListener('abort', () => {\n this.initializeAbortController();\n });\n }\n}\n"],"names":["ILog","Log","inject","injectable","symbolToken","ChatError","ChatMessageState","ChatRunState","ChatUiEvent","StreamingProgressModel","axios","makeObservable","runInAction","CHATBOT_API_CLIENT","IChatbotApiClient","Models","ModelsUtils","DEFAULT_STREAMING_INACTIVITY_TIMEOUT_MS","isChatbotStreamingEnabled","AgentStreamError","withTimeout","CHATBOT_UI_STORE_TOKEN","ChatbotUiEvent","IChatbotUiStore","InitializeStore","DEFAULT_CHATBOT_ASK_BOT_TIMEOUT_MS","STREAMING_KEEPALIVE_TEXT","STREAMING_STEP_ERROR","isAbortedError","error","isCancel","name","CHATBOT_UI_BACKEND_STORE_TOKEN","ChatbotUiBackendStore","logService","log","customizations","chatUiStore","subscribe","unsubscribe","on","eventRun","handleRun","eventDestroy","handleDestroy","eventRestart","handleRestart","eventMessageSend","handleMessageSend","eventMessageSendRetry","handleMessageSendRetry","eventChatbotSessionStart","handleSessionStart","eventChatbotSessionFeedback","handleSessionFeedback","eventChatbotMessageFeedback","handleMessageFeedback","off","getSessionData","Promise","resolve","undefined","restoreChatSession","saveCurrentState","deleteFromSessionStorage","restartTimers","ensureWelcomeMessage","messages","length","withSaveState","addMessageWelcome","agent","logError","code","message","category","initializeInternal","options","chatbotApiClient","getOptions","filterStore","initFilters","isDefaultSelected","filters","run","setStatus","Initializing","initialize","Started","setError","reset","setSession","destroy","session","api","processBotAnswer","answer","addMessage","routeSend","messageModel","selections","timeoutMs","streamMessage","sendMessageStreaming","sendMessage","question","perRequestController","AbortController","forwardStoreAbort","abort","abortController","signal","reason","addEventListener","once","startSession","setAgentTyping","UserMessage","sessionId","id","experience","Experience","MultiTurn","timeouts","chatbotRequestTimeoutMs","setMessageState","Delivered","answerId","resetError","Failed","setChatError","removeEventListener","connected","streamingProgress","inactivityTimeoutMs","streaming","updateProgress","mutate","triggerScroll","handlers","onStatus","text","clearKeepalive","onText","appendLog","onPlan","steps","setSteps","onStepActive","setActiveStep","onInactivity","setKeepalive","onConnected","logStreaming","onDisconnected","onTimeout","onCompleted","completeAllSteps","streamingFallbackCount","phase","info","sessionData","forceRecreate","sessionPromise","data","createNewSessionModel","methodName","args","method","call","Error","action","result","title","initializeAbortController","_","type","draft","feedbackState","feedbackResult","Feedback","recoverStrategy","messageId","feedback","ChatbotFeedbackState","Success","Failure","state"],"mappings":"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"}
|
|
@@ -1,41 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for
|
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
}
|
|
7
|
-
|
|
19
|
+
}
|
|
20
|
+
function _ts_metadata(k, v) {
|
|
8
21
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
}
|
|
22
|
+
}
|
|
10
23
|
import { injectable, symbolToken } from '@servicetitan/react-ioc';
|
|
11
24
|
import { ChatUiEvent, ChatUiStore } from '@servicetitan/titan-chat-ui-common';
|
|
12
25
|
import { action, makeObservable } from 'mobx';
|
|
13
26
|
import { Models } from '../api-client';
|
|
14
|
-
import { FilterStore } from './filter.store';
|
|
27
|
+
import { FilterStore, IFilterStoreInitOptions } from './filter.store';
|
|
28
|
+
import { FeedbackDraft } from './message-feedback-base.store';
|
|
15
29
|
export const CHATBOT_UI_STORE_TOKEN = symbolToken('CHATBOT_UI_STORE_TOKEN');
|
|
16
|
-
export var ChatbotUiEvent
|
|
17
|
-
(function (ChatbotUiEvent) {
|
|
30
|
+
export var ChatbotUiEvent = /*#__PURE__*/ function(ChatbotUiEvent) {
|
|
18
31
|
ChatbotUiEvent["eventChatbotSessionStart"] = "eventChatbotSessionStart";
|
|
19
32
|
ChatbotUiEvent["eventChatbotSessionFeedback"] = "eventChatbotSessionFeedback";
|
|
20
33
|
ChatbotUiEvent["eventChatbotMessageFeedback"] = "eventChatbotMessageFeedback";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
super();
|
|
25
|
-
Object.defineProperty(this, "filterStore", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
configurable: true,
|
|
28
|
-
writable: true,
|
|
29
|
-
value: new FilterStore()
|
|
30
|
-
});
|
|
31
|
-
makeObservable(this);
|
|
32
|
-
}
|
|
34
|
+
return ChatbotUiEvent;
|
|
35
|
+
}({});
|
|
36
|
+
export class ChatbotUiStore extends ChatUiStore {
|
|
33
37
|
async recover() {
|
|
34
38
|
const errorCustomization = this.customizations.error;
|
|
35
39
|
if (errorCustomization === null || errorCustomization === void 0 ? void 0 : errorCustomization.recover) {
|
|
36
40
|
await errorCustomization.recover(this.error);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
41
|
+
} else {
|
|
39
42
|
await super.recover();
|
|
40
43
|
}
|
|
41
44
|
this.triggerScroll();
|
|
@@ -46,51 +49,75 @@ let ChatbotUiStore = class ChatbotUiStore extends ChatUiStore {
|
|
|
46
49
|
return;
|
|
47
50
|
}
|
|
48
51
|
const messageModel = this.addMessage(false, messageText);
|
|
49
|
-
await this.emitAsync(ChatUiEvent.eventMessageSend, messageModel, this.filterStore.export(), ...(
|
|
52
|
+
await this.emitAsync(ChatUiEvent.eventMessageSend, messageModel, this.filterStore.export(), ...(options === null || options === void 0 ? void 0 : options.timeoutMs) !== undefined ? [
|
|
53
|
+
options.timeoutMs
|
|
54
|
+
] : []);
|
|
50
55
|
}
|
|
51
56
|
setFilters(filterOptions, options) {
|
|
52
57
|
this.filterStore.initFilters(filterOptions, options);
|
|
53
58
|
}
|
|
54
59
|
async startSession(sessionData, forceRecreate) {
|
|
55
|
-
const result = await this.emitAsync(
|
|
60
|
+
const result = await this.emitAsync("eventChatbotSessionStart", sessionData, forceRecreate);
|
|
56
61
|
return result;
|
|
57
62
|
}
|
|
58
63
|
async sendSessionFeedback(feedback) {
|
|
59
|
-
const result = await this.emitAsync(
|
|
64
|
+
const result = await this.emitAsync("eventChatbotSessionFeedback", {
|
|
65
|
+
...feedback,
|
|
66
|
+
messageId: undefined
|
|
67
|
+
});
|
|
60
68
|
return result;
|
|
61
69
|
}
|
|
62
70
|
async sendMessageFeedback(message, messageFeedback) {
|
|
63
|
-
const result = await this.emitAsync(
|
|
71
|
+
const result = await this.emitAsync("eventChatbotMessageFeedback", {
|
|
72
|
+
...messageFeedback,
|
|
73
|
+
messageId: message.id
|
|
74
|
+
});
|
|
64
75
|
return result;
|
|
65
76
|
}
|
|
66
|
-
|
|
67
|
-
|
|
77
|
+
constructor(){
|
|
78
|
+
super(), _define_property(this, "filterStore", new FilterStore());
|
|
79
|
+
makeObservable(this);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
_ts_decorate([
|
|
68
83
|
action,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
_ts_metadata("design:type", Function),
|
|
85
|
+
_ts_metadata("design:paramtypes", [
|
|
86
|
+
typeof Models === "undefined" || typeof Models.IFrontendModel === "undefined" ? Object : Models.IFrontendModel,
|
|
87
|
+
typeof IFilterStoreInitOptions === "undefined" ? Object : IFilterStoreInitOptions
|
|
88
|
+
]),
|
|
89
|
+
_ts_metadata("design:returntype", void 0)
|
|
72
90
|
], ChatbotUiStore.prototype, "setFilters", null);
|
|
73
|
-
|
|
91
|
+
_ts_decorate([
|
|
74
92
|
action,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
93
|
+
_ts_metadata("design:type", Function),
|
|
94
|
+
_ts_metadata("design:paramtypes", [
|
|
95
|
+
Object,
|
|
96
|
+
Boolean
|
|
97
|
+
]),
|
|
98
|
+
_ts_metadata("design:returntype", Promise)
|
|
78
99
|
], ChatbotUiStore.prototype, "startSession", null);
|
|
79
|
-
|
|
100
|
+
_ts_decorate([
|
|
80
101
|
action,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
102
|
+
_ts_metadata("design:type", Function),
|
|
103
|
+
_ts_metadata("design:paramtypes", [
|
|
104
|
+
typeof FeedbackDraft === "undefined" ? Object : FeedbackDraft
|
|
105
|
+
]),
|
|
106
|
+
_ts_metadata("design:returntype", Promise)
|
|
84
107
|
], ChatbotUiStore.prototype, "sendSessionFeedback", null);
|
|
85
|
-
|
|
108
|
+
_ts_decorate([
|
|
86
109
|
action,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
110
|
+
_ts_metadata("design:type", Function),
|
|
111
|
+
_ts_metadata("design:paramtypes", [
|
|
112
|
+
typeof Models === "undefined" || typeof Models.IBotMessageWithFeedback === "undefined" ? Object : Models.IBotMessageWithFeedback,
|
|
113
|
+
typeof FeedbackDraft === "undefined" ? Object : FeedbackDraft
|
|
114
|
+
]),
|
|
115
|
+
_ts_metadata("design:returntype", Promise)
|
|
90
116
|
], ChatbotUiStore.prototype, "sendMessageFeedback", null);
|
|
91
|
-
ChatbotUiStore =
|
|
117
|
+
ChatbotUiStore = _ts_decorate([
|
|
92
118
|
injectable(),
|
|
93
|
-
|
|
119
|
+
_ts_metadata("design:type", Function),
|
|
120
|
+
_ts_metadata("design:paramtypes", [])
|
|
94
121
|
], ChatbotUiStore);
|
|
95
|
-
|
|
122
|
+
|
|
96
123
|
//# sourceMappingURL=chatbot-ui.store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/stores/chatbot-ui.store.ts"],"sourcesContent":["import { injectable, symbolToken } from '@servicetitan/react-ioc';\nimport { ChatUiEvent, ChatUiStore, IChatUiStore } from '@servicetitan/titan-chat-ui-common';\nimport { action, makeObservable } from 'mobx';\nimport { Models } from '../api-client';\nimport { ChatbotCustomizations } from '../models';\nimport { FilterStore, IFilterStore, IFilterStoreInitOptions } from './filter.store';\nimport { FeedbackDraft } from './message-feedback-base.store';\n\nexport const CHATBOT_UI_STORE_TOKEN = symbolToken<IChatbotUiStore>('CHATBOT_UI_STORE_TOKEN');\n\nexport enum ChatbotUiEvent {\n eventChatbotSessionStart = 'eventChatbotSessionStart',\n eventChatbotSessionFeedback = 'eventChatbotSessionFeedback',\n eventChatbotMessageFeedback = 'eventChatbotMessageFeedback',\n}\n\nexport interface IChatbotUiStore extends IChatUiStore<ChatbotCustomizations> {\n filterStore: IFilterStore;\n settings?: Models.IFrontendModel;\n sendMessageText(messageText: string, options?: { timeoutMs?: number }): Promise<void>;\n setFilters(filterOptions: Models.IFrontendModel, options?: IFilterStoreInitOptions): void;\n startSession(\n sessionData?: Models.ISession['data'],\n forceRecreate?: boolean\n ): Promise<undefined | Models.Session>;\n sendSessionFeedback(feedback: FeedbackDraft): Promise<undefined | Models.ChatbotFeedbackState>;\n sendMessageFeedback(\n message: Models.IBotMessageWithFeedback,\n messageFeedback: FeedbackDraft\n ): Promise<undefined | Models.ChatbotFeedbackState>;\n}\n\n@injectable()\nexport class ChatbotUiStore extends ChatUiStore<ChatbotCustomizations> implements IChatbotUiStore {\n filterStore: IFilterStore = new FilterStore();\n\n constructor() {\n super();\n makeObservable(this);\n }\n\n override async recover() {\n const errorCustomization = this.customizations.error;\n if (errorCustomization?.recover) {\n await errorCustomization.recover(this.error);\n } else {\n await super.recover();\n }\n this.triggerScroll();\n }\n\n override async sendMessageText(messageText: string, options?: { timeoutMs?: number }) {\n await this.restartTimers();\n if (messageText.trim() === '') {\n return;\n }\n const messageModel = this.addMessage(false, messageText);\n await this.emitAsync(\n ChatUiEvent.eventMessageSend,\n messageModel,\n this.filterStore.export(),\n ...(options?.timeoutMs !== undefined ? [options.timeoutMs] : [])\n );\n }\n\n @action\n setFilters(filterOptions: Models.IFrontendModel, options?: IFilterStoreInitOptions) {\n this.filterStore.initFilters(filterOptions, options);\n }\n\n @action\n async startSession(sessionData?: Models.ISession['data'], forceRecreate?: boolean) {\n const result = await this.emitAsync<Models.Session>(\n ChatbotUiEvent.eventChatbotSessionStart,\n sessionData,\n forceRecreate\n );\n return result;\n }\n\n @action\n async sendSessionFeedback(feedback: FeedbackDraft) {\n const result = await this.emitAsync<Models.ChatbotFeedbackState>(\n ChatbotUiEvent.eventChatbotSessionFeedback,\n { ...feedback, messageId: undefined }\n );\n return result;\n }\n\n @action\n async sendMessageFeedback(\n message: Models.IBotMessageWithFeedback,\n messageFeedback: FeedbackDraft\n ) {\n const result = await this.emitAsync<Models.ChatbotFeedbackState>(\n ChatbotUiEvent.eventChatbotMessageFeedback,\n { ...messageFeedback, messageId: message.id }\n );\n return result;\n }\n}\n"],"names":["injectable","symbolToken","ChatUiEvent","ChatUiStore","action","makeObservable","Models","FilterStore","IFilterStoreInitOptions","FeedbackDraft","CHATBOT_UI_STORE_TOKEN","ChatbotUiEvent","ChatbotUiStore","recover","errorCustomization","customizations","error","triggerScroll","sendMessageText","messageText","options","restartTimers","trim","messageModel","addMessage","emitAsync","eventMessageSend","filterStore","export","timeoutMs","undefined","setFilters","filterOptions","initFilters","startSession","sessionData","forceRecreate","result","sendSessionFeedback","feedback","messageId","sendMessageFeedback","message","messageFeedback","id"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,EAAEC,WAAW,QAAQ,0BAA0B;AAClE,SAASC,WAAW,EAAEC,WAAW,QAAsB,qCAAqC;AAC5F,SAASC,MAAM,EAAEC,cAAc,QAAQ,OAAO;AAC9C,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,SAASC,WAAW,EAAgBC,uBAAuB,QAAQ,iBAAiB;AACpF,SAASC,aAAa,QAAQ,gCAAgC;AAE9D,OAAO,MAAMC,yBAAyBT,YAA6B,0BAA0B;AAE7F,OAAO,IAAA,AAAKU,wCAAAA;;;;WAAAA;MAIX;AAmBD,OAAO,MAAMC,uBAAuBT;IAQhC,MAAeU,UAAU;QACrB,MAAMC,qBAAqB,IAAI,CAACC,cAAc,CAACC,KAAK;QACpD,IAAIF,+BAAAA,yCAAAA,mBAAoBD,OAAO,EAAE;YAC7B,MAAMC,mBAAmBD,OAAO,CAAC,IAAI,CAACG,KAAK;QAC/C,OAAO;YACH,MAAM,KAAK,CAACH;QAChB;QACA,IAAI,CAACI,aAAa;IACtB;IAEA,MAAeC,gBAAgBC,WAAmB,EAAEC,OAAgC,EAAE;QAClF,MAAM,IAAI,CAACC,aAAa;QACxB,IAAIF,YAAYG,IAAI,OAAO,IAAI;YAC3B;QACJ;QACA,MAAMC,eAAe,IAAI,CAACC,UAAU,CAAC,OAAOL;QAC5C,MAAM,IAAI,CAACM,SAAS,CAChBvB,YAAYwB,gBAAgB,EAC5BH,cACA,IAAI,CAACI,WAAW,CAACC,MAAM,OACnBR,CAAAA,oBAAAA,8BAAAA,QAASS,SAAS,MAAKC,YAAY;YAACV,QAAQS,SAAS;SAAC,GAAG,EAAE;IAEvE;IAGAE,WAAWC,aAAoC,EAAEZ,OAAiC,EAAE;QAChF,IAAI,CAACO,WAAW,CAACM,WAAW,CAACD,eAAeZ;IAChD;IAEA,MACMc,aAAaC,WAAqC,EAAEC,aAAuB,EAAE;QAC/E,MAAMC,SAAS,MAAM,IAAI,CAACZ,SAAS,6BAE/BU,aACAC;QAEJ,OAAOC;IACX;IAEA,MACMC,oBAAoBC,QAAuB,EAAE;QAC/C,MAAMF,SAAS,MAAM,IAAI,CAACZ,SAAS,gCAE/B;YAAE,GAAGc,QAAQ;YAAEC,WAAWV;QAAU;QAExC,OAAOO;IACX;IAEA,MACMI,oBACFC,OAAuC,EACvCC,eAA8B,EAChC;QACE,MAAMN,SAAS,MAAM,IAAI,CAACZ,SAAS,gCAE/B;YAAE,GAAGkB,eAAe;YAAEH,WAAWE,QAAQE,EAAE;QAAC;QAEhD,OAAOP;IACX;IA/DA,aAAc;QACV,KAAK,IAHTV,uBAAAA,eAA4B,IAAIpB;QAI5BF,eAAe,IAAI;IACvB;AA6DJ;;;;;uDAlCqC,iDAAA;;;;;;;;;;;;;;;;;;;;;;;;;;uDAyBb,0DAAA"}
|