@lobehub/chat 1.36.28 → 1.36.30

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 CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.36.30](https://github.com/lobehub/lobe-chat/compare/v1.36.29...v1.36.30)
6
+
7
+ <sup>Released on **2024-12-16**</sup>
8
+
9
+ #### 💄 Styles
10
+
11
+ - **misc**: Improve page loading state.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### Styles
19
+
20
+ - **misc**: Improve page loading state, closes [#5048](https://github.com/lobehub/lobe-chat/issues/5048) ([e63249b](https://github.com/lobehub/lobe-chat/commit/e63249b))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ### [Version 1.36.29](https://github.com/lobehub/lobe-chat/compare/v1.36.28...v1.36.29)
31
+
32
+ <sup>Released on **2024-12-16**</sup>
33
+
34
+ #### 🐛 Bug Fixes
35
+
36
+ - **misc**: Fix discover locale with different default lang.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### What's fixed
44
+
45
+ - **misc**: Fix discover locale with different default lang, closes [#5045](https://github.com/lobehub/lobe-chat/issues/5045) ([915827e](https://github.com/lobehub/lobe-chat/commit/915827e))
46
+
47
+ </details>
48
+
49
+ <div align="right">
50
+
51
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
52
+
53
+ </div>
54
+
5
55
  ### [Version 1.36.28](https://github.com/lobehub/lobe-chat/compare/v1.36.27...v1.36.28)
6
56
 
7
57
  <sup>Released on **2024-12-16**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,22 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "improvements": [
5
+ "Improve page loading state."
6
+ ]
7
+ },
8
+ "date": "2024-12-16",
9
+ "version": "1.36.30"
10
+ },
11
+ {
12
+ "children": {
13
+ "fixes": [
14
+ "Fix discover locale with different default lang."
15
+ ]
16
+ },
17
+ "date": "2024-12-16",
18
+ "version": "1.36.29"
19
+ },
2
20
  {
3
21
  "children": {},
4
22
  "date": "2024-12-16",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "جارٍ تحميل صفحة الدردشة...",
14
- "initializing": "جارٍ تشغيل التطبيق..."
13
+ "goToChat": "(4/4) جارٍ تحميل صفحة الدردشة...",
14
+ "initAuth": "(2/4) جاري تهيئة خدمة المصادقة...",
15
+ "initUser": "(3/4) جاري تهيئة حالة المستخدم...",
16
+ "initializing": "(1/4) جارٍ تشغيل التطبيق..."
15
17
  },
16
18
  "autoGenerate": "توليد تلقائي",
17
19
  "autoGenerateTooltip": "إكمال تلقائي بناءً على الكلمات المقترحة لوصف المساعد",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Зареждане на страницата за чат...",
14
- "initializing": "Стартиране на приложението..."
13
+ "goToChat": "(4/4) Зареждане на страницата за разговори...",
14
+ "initAuth": "(2/4) Инициализиране на услугата за удостоверяване...",
15
+ "initUser": "(3/4) Инициализиране на състоянието на потребителя...",
16
+ "initializing": "(1/4) Стартиране на приложението..."
15
17
  },
16
18
  "autoGenerate": "Автоматично генериране",
17
19
  "autoGenerateTooltip": "Автоматично генериране на описание на агент въз основа на подкани",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Lade die Chat-Seite...",
14
- "initializing": "Anwendung wird gestartet..."
13
+ "goToChat": "(4/4) Lade die Chat-Seite...",
14
+ "initAuth": "(2/4) Authentifizierungsdienst wird initialisiert...",
15
+ "initUser": "(3/4) Benutzerstatus wird initialisiert...",
16
+ "initializing": "(1/4) Anwendung wird gestartet..."
15
17
  },
16
18
  "autoGenerate": "Automatisch generieren",
17
19
  "autoGenerateTooltip": "Assistentenbeschreibung automatisch auf Basis von Vorschlägen vervollständigen",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Loading chat page...",
14
- "initializing": "Starting application..."
13
+ "goToChat": "(4/4) Loading chat page...",
14
+ "initAuth": "(2/4) Initializing authentication service...",
15
+ "initUser": "(3/4) Initializing user status...",
16
+ "initializing": "(1/4) Starting up application..."
15
17
  },
16
18
  "autoGenerate": "Auto Generate",
17
19
  "autoGenerateTooltip": "Auto-generate assistant description based on prompts",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Cargando página de chat...",
14
- "initializing": "Iniciando la aplicación..."
13
+ "goToChat": "(4/4) Cargando la página de chat...",
14
+ "initAuth": "(2/4) Inicializando el servicio de autenticación...",
15
+ "initUser": "(3/4) Inicializando el estado del usuario...",
16
+ "initializing": "(1/4) Iniciando la aplicación..."
15
17
  },
16
18
  "autoGenerate": "Generación automática",
17
19
  "autoGenerateTooltip": "Completar automáticamente la descripción del asistente basándose en las sugerencias",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "در حال بارگذاری صفحه گفتگو...",
14
- "initializing": "در حال راه‌اندازی برنامه..."
13
+ "goToChat": "(4/4) در حال بارگذاری صفحه گفتگو...",
14
+ "initAuth": "(2/4) در حال راه‌اندازی سرویس احراز هویت...",
15
+ "initUser": "(3/4) در حال راه‌اندازی وضعیت کاربر...",
16
+ "initializing": "(1/4) در حال راه‌اندازی برنامه..."
15
17
  },
16
18
  "autoGenerate": "تکمیل خودکار",
17
19
  "autoGenerateTooltip": "تکمیل خودکار توضیحات دستیار بر اساس کلمات راهنما",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Chargement de la page de discussion...",
14
- "initializing": "L'application se lance..."
13
+ "goToChat": "(4/4) Chargement de la page de conversation...",
14
+ "initAuth": "(2/4) Initialisation du service d'authentification...",
15
+ "initUser": "(3/4) Initialisation de l'état de l'utilisateur...",
16
+ "initializing": "(1/4) L'application se lance..."
15
17
  },
16
18
  "autoGenerate": "Générer automatiquement",
17
19
  "autoGenerateTooltip": "Générer automatiquement la description de l'agent basée sur les suggestions",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Caricamento della pagina di chat...",
14
- "initializing": "Avvio dell'applicazione..."
13
+ "goToChat": "(4/4) Caricamento della pagina della chat in corso...",
14
+ "initAuth": "(2/4) Inizializzazione del servizio di autenticazione...",
15
+ "initUser": "(3/4) Inizializzazione dello stato utente...",
16
+ "initializing": "(1/4) Avvio dell'app in corso..."
15
17
  },
16
18
  "autoGenerate": "Generazione automatica",
17
19
  "autoGenerateTooltip": "Completamento automatico basato su suggerimenti",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "チャットページを読み込んでいます...",
14
- "initializing": "アプリを起動しています..."
13
+ "goToChat": "(4/4) チャットページを読み込んでいます...",
14
+ "initAuth": "(2/4) 認証サービスの初期化...",
15
+ "initUser": "(3/4) ユーザー状態の初期化...",
16
+ "initializing": "(1/4) アプリを起動しています..."
15
17
  },
16
18
  "autoGenerate": "自動生成",
17
19
  "autoGenerateTooltip": "ヒントに基づいてエージェントの説明を自動生成します",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "대화 페이지 로딩 중...",
14
- "initializing": " 시작 중..."
13
+ "goToChat": "(4/4) 대화 페이지 로딩 중...",
14
+ "initAuth": "(2/4) 인증 서비스 초기화 중...",
15
+ "initUser": "(3/4) 사용자 상태 초기화 중...",
16
+ "initializing": "(1/4) 애플리케이션 시작 중..."
15
17
  },
16
18
  "autoGenerate": "자동 생성",
17
19
  "autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 완성합니다",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "De chatpagina wordt geladen...",
14
- "initializing": "De applicatie wordt gestart..."
13
+ "goToChat": "(4/4) De chatpagina wordt geladen...",
14
+ "initAuth": "(2/4) Initialisatie van de autorisatiedienst...",
15
+ "initUser": "(3/4) Initialisatie van de gebruikersstatus...",
16
+ "initializing": "(1/4) De applicatie wordt opgestart..."
15
17
  },
16
18
  "autoGenerate": "Automatisch genereren",
17
19
  "autoGenerateTooltip": "Automatisch assistentbeschrijving genereren op basis van suggesties",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Ładowanie strony czatu...",
14
- "initializing": "Uruchamianie aplikacji..."
13
+ "goToChat": "(4/4) Ładowanie strony czatu...",
14
+ "initAuth": "(2/4) Inicjalizacja usługi autoryzacji...",
15
+ "initUser": "(3/4) Inicjalizacja stanu użytkownika...",
16
+ "initializing": "(1/4) Uruchamianie aplikacji..."
15
17
  },
16
18
  "autoGenerate": "Automatyczne generowanie",
17
19
  "autoGenerateTooltip": "Automatyczne uzupełnianie opisu asystenta na podstawie sugestii",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Carregando página de chat...",
14
- "initializing": "Iniciando aplicativo..."
13
+ "goToChat": "(4/4) Carregando página de conversa...",
14
+ "initAuth": "(2/4) Inicializando o serviço de autenticação...",
15
+ "initUser": "(3/4) Inicializando o estado do usuário...",
16
+ "initializing": "(1/4) Iniciando aplicativo..."
15
17
  },
16
18
  "autoGenerate": "Auto completar",
17
19
  "autoGenerateTooltip": "Auto completar descrição do assistente com base em sugestões",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Загрузка страницы чата...",
14
- "initializing": "Запуск приложения..."
13
+ "goToChat": "(4/4) Загрузка страницы чата...",
14
+ "initAuth": "(2/4) Инициализация службы аутентификации...",
15
+ "initUser": "(3/4) Инициализация состояния пользователя...",
16
+ "initializing": "(1/4) Запуск приложения..."
15
17
  },
16
18
  "autoGenerate": "Автозаполнение",
17
19
  "autoGenerateTooltip": "Автоматическое дополнение описания агента на основе подсказок",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Sohbet sayfası yükleniyor...",
14
- "initializing": "Uygulama başlatılıyor..."
13
+ "goToChat": "(4/4) Sohbet sayfası yükleniyor...",
14
+ "initAuth": "(2/4) Kimlik doğrulama hizmeti başlatılıyor...",
15
+ "initUser": "(3/4) Kullanıcı durumu başlatılıyor...",
16
+ "initializing": "(1/4) Uygulama başlatılıyor..."
15
17
  },
16
18
  "autoGenerate": "Otomatik Oluştur",
17
19
  "autoGenerateTooltip": "Auto-generate agent description based on prompts",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "Đang tải trang trò chuyện...",
14
- "initializing": "Đang khởi động ứng dụng..."
13
+ "goToChat": "(4/4) Đang tải trang trò chuyện...",
14
+ "initAuth": "(2/4) Đang khởi tạo dịch vụ xác thực...",
15
+ "initUser": "(3/4) Đang khởi tạo trạng thái người dùng...",
16
+ "initializing": "(1/4) Đang khởi động ứng dụng..."
15
17
  },
16
18
  "autoGenerate": "Tự động tạo",
17
19
  "autoGenerateTooltip": "Tự động hoàn thành mô tả trợ lý dựa trên từ gợi ý",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "对话页面加载中...",
14
- "initializing": "应用启动中..."
13
+ "goToChat": "(4/4) 对话页面加载中...",
14
+ "initAuth": "(2/4) 鉴权服务初始化...",
15
+ "initUser": "(3/4) 用户状态初始化...",
16
+ "initializing": "(1/4) 应用启动中..."
15
17
  },
16
18
  "autoGenerate": "自动补全",
17
19
  "autoGenerateTooltip": "基于提示词自动补全助手描述",
@@ -10,8 +10,10 @@
10
10
  }
11
11
  },
12
12
  "appLoading": {
13
- "goToChat": "對話頁面加載中...",
14
- "initializing": "應用啟動中..."
13
+ "goToChat": "(4/4) 對話頁面加載中...",
14
+ "initAuth": "(2/4) 鑑權服務初始化...",
15
+ "initUser": "(3/4) 使用者狀態初始化...",
16
+ "initializing": "(1/4) 應用啟動中..."
15
17
  },
16
18
  "autoGenerate": "自動生成",
17
19
  "autoGenerateTooltip": "基於提示詞自動生成助手描述",
package/next.config.mjs CHANGED
@@ -159,6 +159,11 @@ const nextConfig = {
159
159
  permanent: true,
160
160
  source: '/settings',
161
161
  },
162
+ {
163
+ destination: '/chat',
164
+ permanent: true,
165
+ source: '/welcome',
166
+ },
162
167
  ],
163
168
 
164
169
  rewrites: async () => [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.36.28",
3
+ "version": "1.36.30",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -3,12 +3,15 @@ import { useTranslation } from 'react-i18next';
3
3
 
4
4
  import FullscreenLoading from '@/components/FullscreenLoading';
5
5
 
6
- const Content = memo<{ goToChat: boolean }>(({ goToChat }) => {
6
+ import { AppLoadingStage } from './type';
7
+
8
+ interface ContentProps {
9
+ loadingStage: AppLoadingStage;
10
+ }
11
+ const Content = memo<ContentProps>(({ loadingStage }) => {
7
12
  const { t } = useTranslation('common');
8
13
 
9
- return (
10
- <FullscreenLoading title={goToChat ? t('appLoading.goToChat') : t('appLoading.initializing')} />
11
- );
14
+ return <FullscreenLoading title={t(`appLoading.${loadingStage}`)} />;
12
15
  });
13
16
 
14
17
  export default Content;
@@ -8,11 +8,13 @@ import { systemStatusSelectors } from '@/store/global/selectors';
8
8
  import { useUserStore } from '@/store/user';
9
9
  import { authSelectors } from '@/store/user/selectors';
10
10
 
11
+ import { AppLoadingStage } from './type';
12
+
11
13
  interface RedirectProps {
12
- setGoToChat: (value: boolean) => void;
14
+ setLoadingStage: (value: AppLoadingStage) => void;
13
15
  }
14
16
 
15
- const Redirect = memo<RedirectProps>(({ setGoToChat }) => {
17
+ const Redirect = memo<RedirectProps>(({ setLoadingStage }) => {
16
18
  const router = useRouter();
17
19
  const [isLogin, isLoaded, isUserStateInit, isOnboard] = useUserStore((s) => [
18
20
  authSelectors.isLogin(s),
@@ -23,7 +25,7 @@ const Redirect = memo<RedirectProps>(({ setGoToChat }) => {
23
25
  const isPgliteNotEnabled = useGlobalStore(systemStatusSelectors.isPgliteNotEnabled);
24
26
 
25
27
  const navToChat = () => {
26
- setGoToChat(true);
28
+ setLoadingStage(AppLoadingStage.GoToChat);
27
29
  router.replace('/chat');
28
30
  };
29
31
 
@@ -35,7 +37,10 @@ const Redirect = memo<RedirectProps>(({ setGoToChat }) => {
35
37
  }
36
38
 
37
39
  // if user auth state is not ready, wait for loading
38
- if (!isLoaded) return;
40
+ if (!isLoaded) {
41
+ setLoadingStage(AppLoadingStage.InitAuth);
42
+ return;
43
+ }
39
44
 
40
45
  // this mean user is definitely not login
41
46
  if (!isLogin) {
@@ -44,7 +49,10 @@ const Redirect = memo<RedirectProps>(({ setGoToChat }) => {
44
49
  }
45
50
 
46
51
  // if user state not init, wait for loading
47
- if (!isUserStateInit) return;
52
+ if (!isUserStateInit) {
53
+ setLoadingStage(AppLoadingStage.InitUser);
54
+ return;
55
+ }
48
56
 
49
57
  // user need to onboard
50
58
  if (!isOnboard) {
@@ -2,15 +2,17 @@
2
2
 
3
3
  import { useState } from 'react';
4
4
 
5
+ import { AppLoadingStage } from '@/app/loading/type';
6
+
5
7
  import Client from './Content';
6
8
  import Redirect from './Redirect';
7
9
 
8
10
  const ScreenLoading = () => {
9
- const [goToChat, setGoToChat] = useState(false);
11
+ const [loadingStage, setLoadingStage] = useState(AppLoadingStage.Initializing);
10
12
  return (
11
13
  <>
12
- <Client goToChat={goToChat} />
13
- <Redirect setGoToChat={setGoToChat} />
14
+ <Client loadingStage={loadingStage} />
15
+ <Redirect setLoadingStage={setLoadingStage} />
14
16
  </>
15
17
  );
16
18
  };
@@ -0,0 +1,6 @@
1
+ export enum AppLoadingStage {
2
+ GoToChat = 'goToChat',
3
+ InitAuth = 'initAuth',
4
+ InitUser = 'initUser',
5
+ Initializing = 'initializing',
6
+ }
@@ -1,11 +1,11 @@
1
1
  import { Icon } from '@lobehub/ui';
2
2
  import { Loader2 } from 'lucide-react';
3
- import { memo } from 'react';
3
+ import { ReactNode, memo } from 'react';
4
4
  import { Center, Flexbox } from 'react-layout-kit';
5
5
 
6
6
  import { ProductLogo } from '@/components/Branding';
7
7
 
8
- const FullscreenLoading = memo<{ title?: string }>(({ title }) => {
8
+ const FullscreenLoading = memo<{ title?: ReactNode }>(({ title }) => {
9
9
  return (
10
10
  <Flexbox height={'100%'} style={{ position: 'relative', userSelect: 'none' }} width={'100%'}>
11
11
  <Center flex={1} gap={16} width={'100%'}>
@@ -1,4 +1,4 @@
1
- import { normalizeLocale, supportLocales } from '@/locales/resources';
1
+ import { supportLocales } from '@/locales/resources';
2
2
 
3
3
  export const DEFAULT_LANG = 'en-US';
4
4
  export const LOBE_LOCALE_COOKIE = 'LOBE_LOCALE';
@@ -7,6 +7,4 @@ export const LOBE_LOCALE_COOKIE = 'LOBE_LOCALE';
7
7
  * Check if the language is supported
8
8
  * @param locale
9
9
  */
10
- export const isLocaleNotSupport = (locale: string) => {
11
- return normalizeLocale(locale) === DEFAULT_LANG || !supportLocales.includes(locale);
12
- };
10
+ export const isLocaleNotSupport = (locale: string) => !supportLocales.includes(locale);
@@ -25,6 +25,9 @@ import StoreInitialization from './StoreInitialization';
25
25
  import StyleRegistry from './StyleRegistry';
26
26
 
27
27
  const parserFallbackLang = async () => {
28
+ // if the default language is not 'en-US', just return the default language as fallback lang
29
+ if (DEFAULT_LANG !== 'en-US') return DEFAULT_LANG;
30
+
28
31
  const header = await headers();
29
32
  /**
30
33
  * The arguments are as follows:
@@ -11,8 +11,10 @@ export default {
11
11
  },
12
12
  },
13
13
  appLoading: {
14
- goToChat: '对话页面加载中...',
15
- initializing: '应用启动中...',
14
+ goToChat: '(4/4) 对话页面加载中...',
15
+ initAuth: '(2/4) 鉴权服务初始化...',
16
+ initUser: '(3/4) 用户状态初始化...',
17
+ initializing: '(1/4) 应用启动中...',
16
18
  },
17
19
  autoGenerate: '自动补全',
18
20
  autoGenerateTooltip: '基于提示词自动补全助手描述',
@@ -8,7 +8,7 @@ describe('AssistantStore', () => {
8
8
  it('should return the default index URL when no language is provided', () => {
9
9
  const agentMarket = new AssistantStore();
10
10
  const url = agentMarket.getAgentIndexUrl();
11
- expect(url).toBe(baseURL);
11
+ expect(url).toBe(`${baseURL}/index.en-US.json`);
12
12
  });
13
13
 
14
14
  it('should return the index URL for a not supported language', () => {
@@ -20,13 +20,17 @@ describe('AssistantStore', () => {
20
20
  it('should return the zh-CN URL for zh locale', () => {
21
21
  const agentMarket = new AssistantStore();
22
22
  const url = agentMarket.getAgentIndexUrl('zh' as any);
23
- expect(url).toBe('https://registry.npmmirror.com/@lobehub/agents-index/v1/files/public/index.zh-CN.json');
23
+ expect(url).toBe(
24
+ 'https://registry.npmmirror.com/@lobehub/agents-index/v1/files/public/index.zh-CN.json',
25
+ );
24
26
  });
25
27
 
26
28
  it('should return the default URL for en locale', () => {
27
29
  const agentMarket = new AssistantStore();
28
30
  const url = agentMarket.getAgentIndexUrl('en' as any);
29
- expect(url).toBe('https://registry.npmmirror.com/@lobehub/agents-index/v1/files/public');
31
+ expect(url).toBe(
32
+ 'https://registry.npmmirror.com/@lobehub/agents-index/v1/files/public/index.en-US.json',
33
+ );
30
34
  });
31
35
 
32
36
  it('should return the base URL if the provided language is not supported', () => {
@@ -38,7 +42,7 @@ describe('AssistantStore', () => {
38
42
  it('should return the agent URL with default language when no language is provided', () => {
39
43
  const agentMarket = new AssistantStore();
40
44
  const url = agentMarket.getAgentUrl('agent-123');
41
- expect(url).toBe(`${baseURL}/agent-123.json`);
45
+ expect(url).toBe(`${baseURL}/agent-123.en-US.json`);
42
46
  });
43
47
 
44
48
  it('should return the agent URL for a supported language', () => {
@@ -9,13 +9,13 @@ describe('PluginStore', () => {
9
9
  it('should return the default index URL when no language is provided', () => {
10
10
  const pluginStore = new PluginStore();
11
11
  const url = pluginStore.getPluginIndexUrl();
12
- expect(url).toBe(baseURL);
12
+ expect(url).toBe(`${baseURL}/index.en-US.json`);
13
13
  });
14
14
 
15
15
  it('should return the index URL for a supported language', () => {
16
16
  const pluginStore = new PluginStore();
17
17
  const url = pluginStore.getPluginIndexUrl('en-US');
18
- expect(url).toBe(baseURL);
18
+ expect(url).toBe(`${baseURL}/index.en-US.json`);
19
19
  });
20
20
 
21
21
  it('should return the base URL if the provided language is not supported', () => {