|
@@ -809,7 +809,18 @@
|
|
|
|
|
|
let files = JSON.parse(JSON.stringify(chatFiles));
|
|
let files = JSON.parse(JSON.stringify(chatFiles));
|
|
if (model?.info?.meta?.knowledge ?? false) {
|
|
if (model?.info?.meta?.knowledge ?? false) {
|
|
|
|
+ // Only initialize and add status if knowledge exists
|
|
|
|
+ responseMessage.statusHistory = [
|
|
|
|
+ {
|
|
|
|
+ action: 'knowledge_search',
|
|
|
|
+ description: $i18n.t(`Searching Knowledge for "{{searchQuery}}"`, {
|
|
|
|
+ searchQuery: userMessage.content
|
|
|
|
+ }),
|
|
|
|
+ done: false
|
|
|
|
+ }
|
|
|
|
+ ];
|
|
files.push(...model.info.meta.knowledge);
|
|
files.push(...model.info.meta.knowledge);
|
|
|
|
+ messages = messages; // Trigger Svelte update
|
|
}
|
|
}
|
|
files.push(
|
|
files.push(
|
|
...(userMessage?.files ?? []).filter((item) =>
|
|
...(userMessage?.files ?? []).filter((item) =>
|
|
@@ -818,6 +829,8 @@
|
|
...(responseMessage?.files ?? []).filter((item) => ['web_search_results'].includes(item.type))
|
|
...(responseMessage?.files ?? []).filter((item) => ['web_search_results'].includes(item.type))
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+ scrollToBottom();
|
|
|
|
+
|
|
eventTarget.dispatchEvent(
|
|
eventTarget.dispatchEvent(
|
|
new CustomEvent('chat:start', {
|
|
new CustomEvent('chat:start', {
|
|
detail: {
|
|
detail: {
|
|
@@ -888,6 +901,12 @@
|
|
|
|
|
|
if ('citations' in data) {
|
|
if ('citations' in data) {
|
|
responseMessage.citations = data.citations;
|
|
responseMessage.citations = data.citations;
|
|
|
|
+ // Only remove status if it was initially set
|
|
|
|
+ if (model?.info?.meta?.knowledge ?? false) {
|
|
|
|
+ responseMessage.statusHistory = responseMessage.statusHistory.filter(
|
|
|
|
+ (status) => status.action !== 'knowledge_search'
|
|
|
|
+ );
|
|
|
|
+ }
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -977,7 +996,20 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- await saveChatHandler(_chatId);
|
|
|
|
|
|
+ if ($chatId == _chatId) {
|
|
|
|
+ if ($settings.saveChatHistory ?? true) {
|
|
|
|
+ chat = await updateChatById(localStorage.token, _chatId, {
|
|
|
|
+ messages: messages,
|
|
|
|
+ history: history,
|
|
|
|
+ models: selectedModels,
|
|
|
|
+ params: params,
|
|
|
|
+ files: chatFiles
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ currentChatPage.set(1);
|
|
|
|
+ await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
if (res !== null) {
|
|
if (res !== null) {
|
|
const error = await res.json();
|
|
const error = await res.json();
|
|
@@ -1044,7 +1076,18 @@
|
|
|
|
|
|
let files = JSON.parse(JSON.stringify(chatFiles));
|
|
let files = JSON.parse(JSON.stringify(chatFiles));
|
|
if (model?.info?.meta?.knowledge ?? false) {
|
|
if (model?.info?.meta?.knowledge ?? false) {
|
|
|
|
+ // Only initialize and add status if knowledge exists
|
|
|
|
+ responseMessage.statusHistory = [
|
|
|
|
+ {
|
|
|
|
+ action: 'knowledge_search',
|
|
|
|
+ description: $i18n.t(`Searching Knowledge for "{{searchQuery}}"`, {
|
|
|
|
+ searchQuery: userMessage.content
|
|
|
|
+ }),
|
|
|
|
+ done: false
|
|
|
|
+ }
|
|
|
|
+ ];
|
|
files.push(...model.info.meta.knowledge);
|
|
files.push(...model.info.meta.knowledge);
|
|
|
|
+ messages = messages; // Trigger Svelte update
|
|
}
|
|
}
|
|
files.push(
|
|
files.push(
|
|
...(userMessage?.files ?? []).filter((item) =>
|
|
...(userMessage?.files ?? []).filter((item) =>
|
|
@@ -1184,6 +1227,12 @@
|
|
|
|
|
|
if (citations) {
|
|
if (citations) {
|
|
responseMessage.citations = citations;
|
|
responseMessage.citations = citations;
|
|
|
|
+ // Only remove status if it was initially set
|
|
|
|
+ if (model?.info?.meta?.knowledge ?? false) {
|
|
|
|
+ responseMessage.statusHistory = responseMessage.statusHistory.filter(
|
|
|
|
+ (status) => status.action !== 'knowledge_search'
|
|
|
|
+ );
|
|
|
|
+ }
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1238,7 +1287,7 @@
|
|
}
|
|
}
|
|
|
|
|
|
if ($chatId == _chatId) {
|
|
if ($chatId == _chatId) {
|
|
- if (!$temporaryChatEnabled) {
|
|
|
|
|
|
+ if ($settings.saveChatHistory ?? true) {
|
|
chat = await updateChatById(localStorage.token, _chatId, {
|
|
chat = await updateChatById(localStorage.token, _chatId, {
|
|
models: selectedModels,
|
|
models: selectedModels,
|
|
messages: messages,
|
|
messages: messages,
|