@lobehub/chat 0.151.8 → 0.151.10

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/locales/ar/common.json +5 -0
  3. package/locales/bg-BG/common.json +5 -0
  4. package/locales/de-DE/common.json +5 -0
  5. package/locales/en-US/common.json +5 -0
  6. package/locales/es-ES/common.json +5 -0
  7. package/locales/fr-FR/common.json +5 -0
  8. package/locales/it-IT/common.json +5 -0
  9. package/locales/ja-JP/common.json +5 -0
  10. package/locales/ko-KR/common.json +5 -0
  11. package/locales/nl-NL/common.json +5 -0
  12. package/locales/pl-PL/common.json +5 -0
  13. package/locales/pt-BR/common.json +5 -0
  14. package/locales/ru-RU/common.json +5 -0
  15. package/locales/tr-TR/common.json +5 -0
  16. package/locales/vi-VN/common.json +5 -0
  17. package/locales/zh-CN/common.json +5 -0
  18. package/locales/zh-TW/common.json +5 -0
  19. package/package.json +32 -32
  20. package/src/app/(main)/welcome/_layout/Desktop.tsx +21 -19
  21. package/src/app/(main)/welcome/_layout/Mobile.tsx +9 -6
  22. package/src/app/(main)/welcome/features/Actions.tsx +39 -0
  23. package/src/app/(main)/welcome/features/Hero.tsx +63 -0
  24. package/src/app/(main)/welcome/features/Logo.tsx +30 -0
  25. package/src/app/(main)/welcome/{layout.ts → layout.tsx} +2 -0
  26. package/src/app/(main)/welcome/page.tsx +16 -9
  27. package/src/const/url.ts +3 -0
  28. package/src/features/Follow/index.tsx +64 -0
  29. package/src/libs/agent-runtime/minimax/index.test.ts +18 -4
  30. package/src/libs/agent-runtime/minimax/index.ts +22 -8
  31. package/src/locales/default/common.ts +7 -0
  32. package/src/server/globalConfig/index.ts +2 -0
  33. package/src/app/(main)/welcome/(desktop)/features/Footer.tsx +0 -45
  34. package/src/app/(main)/welcome/(desktop)/features/Showcase.tsx +0 -23
  35. package/src/app/(main)/welcome/(desktop)/index.tsx +0 -17
  36. package/src/app/(main)/welcome/(mobile)/index.tsx +0 -16
  37. package/src/app/(main)/welcome/features/Banner/AgentCard.tsx +0 -71
  38. package/src/app/(main)/welcome/features/Banner/AgentTemplate.tsx +0 -43
  39. package/src/app/(main)/welcome/features/Banner/Hero.tsx +0 -50
  40. package/src/app/(main)/welcome/features/Banner/index.tsx +0 -56
  41. package/src/app/(main)/welcome/features/Banner/style.ts +0 -71
@@ -4,6 +4,7 @@ export default {
4
4
  appInitializing: 'LobeChat 启动中,请耐心等待...',
5
5
  autoGenerate: '自动补全',
6
6
  autoGenerateTooltip: '基于提示词自动补全助手描述',
7
+ blog: '产品博客',
7
8
  cancel: '取消',
8
9
  changelog: '更新日志',
9
10
  close: '关闭',
@@ -26,7 +27,9 @@ export default {
26
27
  globalSetting: '导出全局设置',
27
28
  },
28
29
  feedback: '反馈与建议',
30
+ follow: '在 {{name}} 上关注我们',
29
31
  historyRange: '历史范围',
32
+
30
33
  import: '导入配置',
31
34
  importModal: {
32
35
  finish: {
@@ -88,10 +91,12 @@ export default {
88
91
  layoutInitializing: '正在加载布局...',
89
92
  noDescription: '暂无描述',
90
93
  oauth: 'SSO 登录',
94
+ officialSite: '官方网站',
91
95
  ok: '确定',
92
96
  password: '密码',
93
97
  pin: '置顶',
94
98
  pinOff: '取消置顶',
99
+ privacy: '隐私政策',
95
100
  regenerate: '重新生成',
96
101
  rename: '重命名',
97
102
  reset: '重置',
@@ -137,7 +142,9 @@ export default {
137
142
  learnMore: '了解更多',
138
143
  title: '帮助 LobeChat 做得更好',
139
144
  },
145
+
140
146
  temp: '临时',
147
+ terms: '服务条款',
141
148
  updateAgent: '更新助理信息',
142
149
  upgradeVersion: {
143
150
  action: '升级',
@@ -25,6 +25,7 @@ export const getServerGlobalConfig = () => {
25
25
  ENABLED_GROQ,
26
26
  ENABLED_PERPLEXITY,
27
27
  ENABLED_ANTHROPIC,
28
+ ENABLED_MINIMAX,
28
29
  ENABLED_MISTRAL,
29
30
 
30
31
  ENABLED_AZURE_OPENAI,
@@ -64,6 +65,7 @@ export const getServerGlobalConfig = () => {
64
65
  bedrock: { enabled: ENABLED_AWS_BEDROCK },
65
66
  google: { enabled: ENABLED_GOOGLE },
66
67
  groq: { enabled: ENABLED_GROQ },
68
+ minimax: { enabled: ENABLED_MINIMAX },
67
69
  mistral: { enabled: ENABLED_MISTRAL },
68
70
  moonshot: { enabled: ENABLED_MOONSHOT },
69
71
  ollama: {
@@ -1,45 +0,0 @@
1
- 'use client';
2
-
3
- import { ActionIcon, DiscordIcon } from '@lobehub/ui';
4
- import { useTheme } from 'antd-style';
5
- import { Book, Github } from 'lucide-react';
6
- import { memo } from 'react';
7
- import { useTranslation } from 'react-i18next';
8
- import { Flexbox } from 'react-layout-kit';
9
-
10
- import { DISCORD, DOCUMENTS, GITHUB } from '@/const/url';
11
-
12
- const Footer = memo(() => {
13
- const theme = useTheme();
14
- const { t } = useTranslation('common');
15
-
16
- return (
17
- <Flexbox align={'center'} horizontal justify={'space-between'} style={{ padding: 16 }}>
18
- <span style={{ color: theme.colorTextDescription }}>
19
- © 2023 - {new Date().getFullYear()} LobeHub, LLC
20
- </span>
21
- <Flexbox horizontal>
22
- <ActionIcon
23
- icon={DiscordIcon}
24
- onClick={() => window.open(DISCORD, '__blank')}
25
- size={'site'}
26
- title={'Discord'}
27
- />
28
- <ActionIcon
29
- icon={Book}
30
- onClick={() => window.open(DOCUMENTS, '__blank')}
31
- size={'site'}
32
- title={t('document')}
33
- />
34
- <ActionIcon
35
- icon={Github}
36
- onClick={() => window.open(GITHUB, '__blank')}
37
- size={'site'}
38
- title={'GitHub'}
39
- />
40
- </Flexbox>
41
- </Flexbox>
42
- );
43
- });
44
-
45
- export default Footer;
@@ -1,23 +0,0 @@
1
- 'use client';
2
-
3
- import { GridShowcase } from '@lobehub/ui';
4
- import { memo } from 'react';
5
- import { Flexbox } from 'react-layout-kit';
6
-
7
- import Banner from '@/app/(main)/welcome/features/Banner';
8
-
9
- const Showcase = memo(() => (
10
- <Flexbox
11
- flex={1}
12
- justify={'center'}
13
- style={{ height: '100%', position: 'relative', width: '100%' }}
14
- >
15
- <GridShowcase>
16
- <Banner />
17
- </GridShowcase>
18
- {/*TODO:暂时隐藏,待模板完成后再补回*/}
19
- {/*<AgentTemplate width={width} />*/}
20
- </Flexbox>
21
- ));
22
-
23
- export default Showcase;
@@ -1,17 +0,0 @@
1
- 'use client';
2
-
3
- import { memo } from 'react';
4
-
5
- import ClientResponsiveContent from '@/components/client/ClientResponsiveContent';
6
-
7
- import Footer from './features/Footer';
8
- import Showcase from './features/Showcase';
9
-
10
- const Desktop = memo(() => (
11
- <>
12
- <Showcase />
13
- <Footer />
14
- </>
15
- ));
16
-
17
- export default ClientResponsiveContent({ Desktop, Mobile: () => import('../(mobile)') });
@@ -1,16 +0,0 @@
1
- import { memo } from 'react';
2
- import { Center, Flexbox } from 'react-layout-kit';
3
-
4
- import Banner from '../features/Banner';
5
-
6
- const Showcase = memo(() => (
7
- <Flexbox align={'center'} justify={'center'} style={{ height: 'calc(100% - 44px)' }}>
8
- <Center gap={16}>
9
- <Banner mobile />
10
- </Center>
11
- {/*TODO:暂时隐藏,待模板完成后再补回*/}
12
- {/*<AgentTemplate width={width} />*/}
13
- </Flexbox>
14
- ));
15
-
16
- export default Showcase;
@@ -1,71 +0,0 @@
1
- import { Avatar, Spotlight } from '@lobehub/ui';
2
- import { Typography } from 'antd';
3
- import { createStyles } from 'antd-style';
4
- import { rgba } from 'polished';
5
- import { memo } from 'react';
6
- import { Flexbox } from 'react-layout-kit';
7
-
8
- import { LobeAgentSession } from '@/types/session';
9
-
10
- const { Paragraph, Title } = Typography;
11
-
12
- const useStyles = createStyles(({ css, token, cx, stylish }) => ({
13
- container: cx(
14
- stylish.blur,
15
- css`
16
- cursor: pointer;
17
-
18
- position: relative;
19
-
20
- overflow: hidden;
21
- flex: 1;
22
-
23
- padding: 16px;
24
-
25
- background-color: ${rgba(token.colorBgContainer, 0.5)};
26
- border: 1px solid ${rgba(token.colorText, 0.2)};
27
- border-radius: ${token.borderRadiusLG}px;
28
-
29
- transition: all 400ms ${token.motionEaseOut};
30
-
31
- &:hover {
32
- background-color: ${rgba(token.colorBgElevated, 0.2)};
33
- border-color: ${token.colorText};
34
- box-shadow: 0 0 0 1px ${token.colorText};
35
- }
36
-
37
- ,
38
- &:active {
39
- scale: 0.98;
40
- }
41
- `,
42
- ),
43
- desc: css`
44
- margin: 0 !important;
45
- `,
46
- title: css`
47
- margin: 0 !important;
48
- `,
49
- }));
50
-
51
- export interface AgentCardProps {
52
- meta: LobeAgentSession['meta'];
53
- }
54
-
55
- const AgentCard = memo<AgentCardProps>(({ meta }) => {
56
- const { styles } = useStyles();
57
- return (
58
- <Flexbox className={styles.container} gap={8}>
59
- <Spotlight size={200} />
60
- <Avatar avatar={meta.avatar} background={meta.backgroundColor} />
61
- <Title className={styles.title} ellipsis level={5}>
62
- {meta.title}
63
- </Title>
64
- <Paragraph className={styles.desc} ellipsis={{ rows: 2 }} type="secondary">
65
- {meta.description}
66
- </Paragraph>
67
- </Flexbox>
68
- );
69
- });
70
-
71
- export default AgentCard;
@@ -1,43 +0,0 @@
1
- import { useResponsive } from 'antd-style';
2
- import { memo } from 'react';
3
- import { Flexbox } from 'react-layout-kit';
4
-
5
- import AgentCard, { type AgentCardProps } from './AgentCard';
6
- import { useStyles } from './style';
7
-
8
- const items: AgentCardProps['meta'][] = [
9
- {
10
- avatar: '😀',
11
- description: 'dddddd',
12
- title: 'Title',
13
- },
14
- {
15
- avatar: '😀',
16
- description: 'dddddd',
17
- title: 'Title',
18
- },
19
- {
20
- avatar: '😀',
21
- description: 'dddddd',
22
- title: 'Title',
23
- },
24
- ];
25
-
26
- const AgentTemplate = memo<{ width: number }>(({ width }) => {
27
- const { styles } = useStyles();
28
- const { mobile } = useResponsive();
29
- return (
30
- <Flexbox
31
- className={styles.templateContainer}
32
- gap={16}
33
- horizontal={!mobile}
34
- style={{ marginTop: -width / 20 }}
35
- >
36
- {items.map((meta, index) => (
37
- <AgentCard key={index} meta={meta} />
38
- ))}
39
- </Flexbox>
40
- );
41
- });
42
-
43
- export default AgentTemplate;
@@ -1,50 +0,0 @@
1
- import dynamic from 'next/dynamic';
2
- import { memo } from 'react';
3
- import { useTranslation } from 'react-i18next';
4
- import { Flexbox } from 'react-layout-kit';
5
-
6
- import { genSize, useStyles } from './style';
7
-
8
- const LogoThree = dynamic(() => import('@lobehub/ui/es/LogoThree'));
9
- const LogoSpline = dynamic(() => import('@lobehub/ui/es/LogoThree/LogoSpline'));
10
-
11
- const Hero = memo<{ mobile?: boolean; width: number }>(({ width, mobile }) => {
12
- const size: any = {
13
- base: genSize(width / 3.5, 240),
14
- desc: genSize(width / 50, 14),
15
- logo: genSize(width / 2.5, 180),
16
- title: genSize(width / 20, 32),
17
- };
18
-
19
- size.marginTop = mobile ? -size.logo / 9 : -size.logo / 3;
20
- size.marginBottom = mobile ? -size.logo / 9 : -size.logo / 4;
21
-
22
- const { styles } = useStyles(size.base);
23
-
24
- const { t } = useTranslation('welcome');
25
-
26
- return (
27
- <>
28
- <Flexbox
29
- style={{
30
- height: size.logo,
31
- marginBottom: size.marginBottom,
32
- marginTop: size.marginTop,
33
- position: 'relative',
34
- }}
35
- >
36
- {mobile ? <LogoThree size={size.logo} /> : <LogoSpline height={'100%'} width={'100%'} />}
37
- </Flexbox>
38
- <div className={styles.title} style={{ fontSize: size.title }}>
39
- <strong style={mobile ? { fontSize: '1.2em' } : {}}>LobeChat</strong>
40
- {mobile ? <br /> : ' '}
41
- {t('slogan.title')}
42
- </div>
43
- <div className={styles.desc} style={{ fontSize: size.desc }}>
44
- {t('slogan.desc1')}
45
- </div>
46
- </>
47
- );
48
- });
49
-
50
- export default Hero;
@@ -1,56 +0,0 @@
1
- 'use client';
2
-
3
- import { Icon } from '@lobehub/ui';
4
- import { Button } from 'antd';
5
- import { SendHorizonal } from 'lucide-react';
6
- import Link from 'next/link';
7
- import { useRouter } from 'next/navigation';
8
- import { memo } from 'react';
9
- import { useTranslation } from 'react-i18next';
10
- import { Flexbox } from 'react-layout-kit';
11
-
12
- import { useGlobalStore } from '@/store/global';
13
-
14
- import Hero from './Hero';
15
- import { useStyles } from './style';
16
-
17
- const Banner = memo<{ mobile?: boolean }>(({ mobile }) => {
18
- const { t } = useTranslation('welcome');
19
- const router = useRouter();
20
- const { styles } = useStyles();
21
- const [switchBackToChat, isMobile] = useGlobalStore((s) => [s.switchBackToChat, s.isMobile]);
22
-
23
- return (
24
- <>
25
- <div className={styles.container}>
26
- <Hero mobile={mobile} width={mobile ? 640 : 1024} />
27
- </div>
28
- <Flexbox
29
- className={styles.buttonGroup}
30
- gap={16}
31
- horizontal={!mobile}
32
- justify={'center'}
33
- width={'100%'}
34
- >
35
- <Link href={'/market'}>
36
- <Button block={mobile} size={'large'} type={'default'}>
37
- {t('button.market')}
38
- </Button>
39
- </Link>
40
- <Button
41
- block={mobile}
42
- onClick={() => (isMobile ? router.push('/chat') : switchBackToChat())}
43
- size={'large'}
44
- type={'primary'}
45
- >
46
- <Flexbox align={'center'} gap={4} horizontal justify={'center'}>
47
- {t('button.start')}
48
- <Icon icon={SendHorizonal} />
49
- </Flexbox>
50
- </Button>
51
- </Flexbox>
52
- </>
53
- );
54
- });
55
-
56
- export default Banner;
@@ -1,71 +0,0 @@
1
- import { createStyles } from 'antd-style';
2
- import { rgba } from 'polished';
3
-
4
- export const useStyles = createStyles(({ css, token, stylish, cx, prefixCls }) => {
5
- return {
6
- buttonGroup: css`
7
- .${prefixCls}-upload {
8
- width: 100% !important;
9
- }
10
- `,
11
- container: css`
12
- z-index: 10;
13
-
14
- display: flex;
15
- flex-direction: column;
16
- align-items: center;
17
-
18
- width: 100%;
19
- margin-bottom: 24px;
20
- `,
21
- desc: css`
22
- font-weight: 400;
23
- color: ${rgba(token.colorText, 0.8)};
24
- text-align: center;
25
- `,
26
- layout: css`
27
- background: ${token.colorBgContainer};
28
- `,
29
- logo: css`
30
- position: absolute;
31
- top: 16px;
32
- left: 16px;
33
- fill: ${token.colorText};
34
- `,
35
- note: css`
36
- z-index: 10;
37
- margin-top: 16px;
38
- color: ${token.colorTextDescription};
39
- `,
40
- skip: css`
41
- color: ${token.colorTextDescription};
42
- `,
43
- templateContainer: css`
44
- flex-wrap: wrap;
45
- width: 100%;
46
- padding: 16px;
47
- `,
48
- title: css`
49
- margin-bottom: 0.25em;
50
- font-weight: 800;
51
- line-height: 1.4;
52
- text-align: center;
53
- `,
54
- view: cx(
55
- stylish.noScrollbar,
56
- css`
57
- position: relative;
58
-
59
- overflow: hidden auto;
60
-
61
- max-width: 1024px;
62
- height: 100%;
63
- padding: 32px 16px;
64
- `,
65
- ),
66
- };
67
- });
68
-
69
- export const genSize = (size: number, minSize: number) => {
70
- return size < minSize ? minSize : size;
71
- };