From 2e0d518b95e813393069407546d7c9ac71fdce10 Mon Sep 17 00:00:00 2001 From: Jicheng Lu Date: Mon, 13 Oct 2025 11:53:07 -0500 Subject: [PATCH 1/3] refine code script --- src/lib/helpers/types/conversationTypes.js | 9 +++++++++ .../chat/[agentId]/[conversationId]/chat-box.svelte | 4 ++-- .../rich-content/rc-js-interpreter.svelte | 2 +- .../[conversationId]/rich-content/rc-message.svelte | 2 -- .../[conversationId]/conv-dialog-element.svelte | 6 ------ 5 files changed, 12 insertions(+), 11 deletions(-) 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..692029f6 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; } 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/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} Date: Mon, 13 Oct 2025 13:00:59 -0500 Subject: [PATCH 2/3] minor change --- src/routes/chat/[agentId]/[conversationId]/chat-box.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte index 692029f6..8736e4df 100644 --- a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte +++ b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte @@ -1341,7 +1341,7 @@ let text = message?.rich_content?.message?.text || message?.text || ''; if (message?.rich_content?.message?.rich_type === RichType.ProgramCode) { - text = message?.rich_content?.message?.code_script; + text = message?.rich_content?.message?.code_script || text; } navigator.clipboard.writeText(text).then(() => { From a0206c9caf4ab4e4b9d6e65e03e22d0cb3cef5a6 Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Mon, 13 Oct 2025 16:03:16 -0500 Subject: [PATCH 3/3] add page redirect from agent detail to agents page --- src/lib/helpers/http.js | 5 ++--- src/lib/helpers/types/agentTypes.js | 2 +- src/routes/page/agent/+page.svelte | 23 +++++++++++++++----- src/routes/page/agent/[agentId]/+page.svelte | 19 +++++++++++++++- 4 files changed, 39 insertions(+), 10 deletions(-) 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/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?',