diff --git a/src/lib/helpers/http.js b/src/lib/helpers/http.js
index 0a57a962..ac0435ab 100644
--- a/src/lib/helpers/http.js
+++ b/src/lib/helpers/http.js
@@ -26,9 +26,8 @@ axios.interceptors.response.use(
// If the request was successful, return the response
loaderStore.set(false);
const user = getUserStore();
-
const isExpired = Date.now() / 1000 > user.expires;
- if (isExpired) {
+ if (isExpired || response?.status === 401) {
redirectToLogin();
return Promise.reject('user token expired!');
}
@@ -39,7 +38,7 @@ axios.interceptors.response.use(
const user = getUserStore();
const isExpired = Date.now() / 1000 > user.expires;
- if (isExpired || (error.response && error.response.status === 401)) {
+ if (isExpired || error?.response?.status === 401) {
redirectToLogin();
return Promise.reject(error);
} else if (!skipGlobalError(error.config)) {
diff --git a/src/lib/helpers/types/agentTypes.js b/src/lib/helpers/types/agentTypes.js
index 056b75ed..8046926b 100644
--- a/src/lib/helpers/types/agentTypes.js
+++ b/src/lib/helpers/types/agentTypes.js
@@ -32,7 +32,7 @@
* @property {import('$commonTypes').Pagination} pager - Pagination
* @property {string[]?} [types]
* @property {string[]?} [agentNames]
- * @property {string} [similarName]
+ * @property {string?} [similarName]
* @property {string[]?} [labels]
* @property {boolean} [isPublic]
* @property {boolean} [disabled]
diff --git a/src/lib/helpers/types/conversationTypes.js b/src/lib/helpers/types/conversationTypes.js
index 21e2c996..4ec583fc 100644
--- a/src/lib/helpers/types/conversationTypes.js
+++ b/src/lib/helpers/types/conversationTypes.js
@@ -109,6 +109,15 @@ IRichContent.prototype.elements;
*/
IRichContent.prototype.quick_replies;
+/**
+ * The code rich content.
+ *
+ * @name language
+ * @type {string}
+ * @instance
+ */
+IRichContent.prototype.code_script;
+
/**
* The language of the code rich content.
*
diff --git a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte
index 53ac215c..8736e4df 100644
--- a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte
+++ b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte
@@ -1340,8 +1340,8 @@
e.preventDefault();
let text = message?.rich_content?.message?.text || message?.text || '';
- if (message?.rich_content?.rich_type === RichType.ProgramCode) {
- text = message?.rich_content?.message?.text;
+ if (message?.rich_content?.message?.rich_type === RichType.ProgramCode) {
+ text = message?.rich_content?.message?.code_script || text;
}
navigator.clipboard.writeText(text).then(() => {
diff --git a/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-js-interpreter.svelte b/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-js-interpreter.svelte
index 6ccf48ec..6e73d5f3 100644
--- a/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-js-interpreter.svelte
+++ b/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-js-interpreter.svelte
@@ -52,7 +52,7 @@
function initCode() {
try {
- const text = message?.rich_content?.message?.text || message?.text || '';
+ const text = message?.rich_content?.message?.code_script || message?.rich_content?.message?.text || message?.text || '';
const parsedText = marked.lexer(text);
// @ts-ignore
const codeText = parsedText.filter(x => !!x.text).map(x => x.text).join('');
diff --git a/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-message.svelte b/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-message.svelte
index 47b85d91..1367aee5 100644
--- a/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-message.svelte
+++ b/src/routes/chat/[agentId]/[conversationId]/rich-content/rc-message.svelte
@@ -27,8 +27,6 @@
{#if message?.rich_content?.message?.rich_type === RichType.ProgramCode
&& message?.rich_content?.message?.language === 'javascript'}
- {:else if message?.rich_content?.message?.rich_type === RichType.ProgramCode}
-
{:else}
{/if}
diff --git a/src/routes/page/agent/+page.svelte b/src/routes/page/agent/+page.svelte
index badcb36c..6f658ddd 100644
--- a/src/routes/page/agent/+page.svelte
+++ b/src/routes/page/agent/+page.svelte
@@ -68,13 +68,16 @@
pageSize: $page.url.searchParams.get("pageSize")
}, { defaultPageSize: pageSize });
+ const similarName = $page.url.searchParams.get("similarName")?.trim();
+
filter = {
...filter,
pager: {
...filter.pager,
page: pageNum,
size: pageSizeNum
- }
+ },
+ similarName: similarName
};
user = await myInfo();
@@ -92,7 +95,7 @@
},
types: selectedAgentTypes?.length > 0 ? selectedAgentTypes : null,
labels: selectedAgentLabels?.length > 0 ? selectedAgentLabels : null,
- similarName: event.payload || null
+ similarName: event.payload?.trim() || null
};
getPagedAgents();
@@ -105,7 +108,11 @@
function getPagedAgents() {
isLoading = true;
- getAgents(filter, true).then(data => {
+ const innerFilter = {
+ ...filter,
+ similarName: filter.similarName ? decodeURIComponent(filter.similarName) : null
+ };
+ getAgents(innerFilter, true).then(data => {
agents = data;
}).catch(() => {
agents = { items: [], count: 0 };
@@ -171,10 +178,16 @@
count: totalItemsCount || 0
};
- setUrlQueryParams($page.url, [
+ const queryParams = [
{ key: 'page', value: `${pager.page}` },
{ key: 'pageSize', value: `${pager.size}` }
- ], () => goToUrl(`${$page.url.pathname}${$page.url.search}`));
+ ];
+
+ if (filter.similarName) {
+ queryParams.push({ key: 'similarName', value: encodeURIComponent(filter.similarName) });
+ }
+
+ setUrlQueryParams($page.url, queryParams, () => goToUrl(`${$page.url.pathname}${$page.url.search}`));
}
/**
diff --git a/src/routes/page/agent/[agentId]/+page.svelte b/src/routes/page/agent/[agentId]/+page.svelte
index ab126cf9..ebb5fd10 100644
--- a/src/routes/page/agent/[agentId]/+page.svelte
+++ b/src/routes/page/agent/[agentId]/+page.svelte
@@ -13,12 +13,14 @@
import AgentTabs from './agent-tabs.svelte';
import { page } from '$app/stores';
import { deleteAgent, getAgent, saveAgent } from '$lib/services/agent-service.js';
- import { onMount } from 'svelte';
+ import { onDestroy, onMount } from 'svelte';
import { _ } from 'svelte-i18n'
import Swal from 'sweetalert2'
import { goto } from '$app/navigation';
import { AgentExtensions } from '$lib/helpers/utils/agent';
import AgentTemplate from './agent-components/agent-template.svelte';
+ import { globalEventStore } from '$lib/helpers/store';
+ import { GlobalEvent } from '$lib/helpers/enums';
/** @type {import('$agentTypes').AgentModel} */
let agent;
@@ -30,6 +32,8 @@
let agentTemplateCmp = null;
/** @type {any} */
let agentTabsCmp = null;
+ /** @type {any} */
+ let unsubscriber;
/** @type {boolean} */
let isLoading = false;
@@ -45,8 +49,21 @@
}).finally(() => {
isLoading = false;
});
+
+ unsubscriber = globalEventStore.subscribe((/** @type {import('$commonTypes').GlobalEvent} */ event) => {
+ if (event.name !== GlobalEvent.Search) return;
+
+ const similarName = event.payload?.trim();
+ if (similarName) {
+ window.location.href = `/page/agent?page=${1}&pageSize=${12}&similarName=${encodeURIComponent(similarName)}`;
+ }
+ });
});
+ onDestroy(() => {
+ unsubscriber?.();
+ });
+
function updateCurrentAgent() {
Swal.fire({
title: 'Are you sure?',
diff --git a/src/routes/page/conversation/[conversationId]/conv-dialog-element.svelte b/src/routes/page/conversation/[conversationId]/conv-dialog-element.svelte
index 131c74e3..dff675cd 100644
--- a/src/routes/page/conversation/[conversationId]/conv-dialog-element.svelte
+++ b/src/routes/page/conversation/[conversationId]/conv-dialog-element.svelte
@@ -23,12 +23,6 @@
{#if dialog?.rich_content?.message?.rich_type === RichType.ProgramCode
&& dialog?.rich_content?.message?.language === 'javascript'}
- {:else if dialog?.rich_content?.message?.rich_type === RichType.ProgramCode}
-
{:else}