@lobehub/lobehub 2.0.0-next.93 → 2.0.0-next.94

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,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.94](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.93...v2.0.0-next.94)
6
+
7
+ <sup>Released on **2025-11-20**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Provider settings button unable to redirect.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: Provider settings button unable to redirect, closes [#10319](https://github.com/lobehub/lobe-chat/issues/10319) ([e025fec](https://github.com/lobehub/lobe-chat/commit/e025fec))
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
+
5
30
  ## [Version 2.0.0-next.93](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.92...v2.0.0-next.93)
6
31
 
7
32
  <sup>Released on **2025-11-20**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "fixes": [
5
+ "Provider settings button unable to redirect."
6
+ ]
7
+ },
8
+ "date": "2025-11-20",
9
+ "version": "2.0.0-next.94"
10
+ },
2
11
  {
3
12
  "children": {
4
13
  "improvements": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.93",
3
+ "version": "2.0.0-next.94",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent 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",
@@ -6,13 +6,94 @@ const xaiChatModels: AIChatModelCard[] = [
6
6
  abilities: {
7
7
  functionCall: true,
8
8
  search: true,
9
+ structuredOutput: true,
9
10
  vision: true,
10
11
  },
11
12
  contextWindowTokens: 2_000_000,
12
- description:
13
- '我们很高兴发布 Grok 4 Fast,这是我们在成本效益推理模型方面的最新进展。',
14
- displayName: 'Grok 4 Fast (Non-Reasoning)',
13
+ description: '前沿多模态模型,专门针对高性能代理工具调用进行优化。',
14
+ displayName: 'Grok 4.1 Fast (Non-Reasoning)',
15
+ enabled: true,
16
+ id: 'grok-4-1-fast-non-reasoning',
17
+ pricing: {
18
+ units: [
19
+ { name: 'textInput_cacheRead', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
20
+ {
21
+ name: 'textInput',
22
+ strategy: 'tiered',
23
+ tiers: [
24
+ { rate: 0.2, upTo: 0.128 },
25
+ { rate: 0.4, upTo: 'infinity' },
26
+ ],
27
+ unit: 'millionTokens',
28
+ },
29
+ {
30
+ name: 'textOutput',
31
+ strategy: 'tiered',
32
+ tiers: [
33
+ { rate: 0.5, upTo: 0.128 },
34
+ { rate: 1, upTo: 'infinity' },
35
+ ],
36
+ unit: 'millionTokens',
37
+ },
38
+ ],
39
+ },
40
+ releasedAt: '2025-11-20',
41
+ settings: {
42
+ searchImpl: 'params',
43
+ },
44
+ type: 'chat',
45
+ },
46
+ {
47
+ abilities: {
48
+ functionCall: true,
49
+ reasoning: true,
50
+ search: true,
51
+ structuredOutput: true,
52
+ vision: true,
53
+ },
54
+ contextWindowTokens: 2_000_000,
55
+ description: '前沿多模态模型,专门针对高性能代理工具调用进行优化。',
56
+ displayName: 'Grok 4.1 Fast',
15
57
  enabled: true,
58
+ id: 'grok-4-1-fast-reasoning',
59
+ pricing: {
60
+ units: [
61
+ { name: 'textInput_cacheRead', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
62
+ {
63
+ name: 'textInput',
64
+ strategy: 'tiered',
65
+ tiers: [
66
+ { rate: 0.2, upTo: 0.128 },
67
+ { rate: 0.4, upTo: 'infinity' },
68
+ ],
69
+ unit: 'millionTokens',
70
+ },
71
+ {
72
+ name: 'textOutput',
73
+ strategy: 'tiered',
74
+ tiers: [
75
+ { rate: 0.5, upTo: 0.128 },
76
+ { rate: 1, upTo: 'infinity' },
77
+ ],
78
+ unit: 'millionTokens',
79
+ },
80
+ ],
81
+ },
82
+ releasedAt: '2025-11-20',
83
+ settings: {
84
+ searchImpl: 'params',
85
+ },
86
+ type: 'chat',
87
+ },
88
+ {
89
+ abilities: {
90
+ functionCall: true,
91
+ search: true,
92
+ vision: true,
93
+ },
94
+ contextWindowTokens: 2_000_000,
95
+ description: '我们很高兴发布 Grok 4 Fast,这是我们在成本效益推理模型方面的最新进展。',
96
+ displayName: 'Grok 4 Fast (Non-Reasoning)',
16
97
  id: 'grok-4-fast-non-reasoning',
17
98
  pricing: {
18
99
  units: [
@@ -51,10 +132,8 @@ const xaiChatModels: AIChatModelCard[] = [
51
132
  vision: true,
52
133
  },
53
134
  contextWindowTokens: 2_000_000,
54
- description:
55
- '我们很高兴发布 Grok 4 Fast,这是我们在成本效益推理模型方面的最新进展。',
135
+ description: '我们很高兴发布 Grok 4 Fast,这是我们在成本效益推理模型方面的最新进展。',
56
136
  displayName: 'Grok 4 Fast',
57
- enabled: true,
58
137
  id: 'grok-4-fast-reasoning',
59
138
  pricing: {
60
139
  units: [
@@ -2,11 +2,10 @@ import { ActionIcon, Icon } from '@lobehub/ui';
2
2
  import { createStyles } from 'antd-style';
3
3
  import type { ItemType } from 'antd/es/menu/interface';
4
4
  import { LucideArrowRight, LucideBolt } from 'lucide-react';
5
- import Link from 'next/link';
6
- import { useRouter } from 'next/navigation';
7
5
  import { type ReactNode, memo, useMemo } from 'react';
8
6
  import { useTranslation } from 'react-i18next';
9
7
  import { Flexbox } from 'react-layout-kit';
8
+ import { useNavigate } from 'react-router-dom';
10
9
 
11
10
  import { ModelItemRender, ProviderItemRender } from '@/components/ModelSelect';
12
11
  import ActionDropdown from '@/features/ChatInput/ActionBar/components/ActionDropdown';
@@ -53,7 +52,7 @@ const ModelSwitchPanel = memo<IProps>(({ children, onOpenChange, open }) => {
53
52
  agentSelectors.currentAgentModelProvider(s),
54
53
  s.updateAgentConfig,
55
54
  ]);
56
- const router = useRouter();
55
+ const navigate = useNavigate();
57
56
  const enabledList = useEnabledChatModels();
58
57
 
59
58
  const items = useMemo<ItemType[]>(() => {
@@ -78,7 +77,7 @@ const ModelSwitchPanel = memo<IProps>(({ children, onOpenChange, open }) => {
78
77
  </Flexbox>
79
78
  ),
80
79
  onClick: () => {
81
- router.push(`/settings?active=provider&provider=${provider.id}`);
80
+ navigate(`/settings?active=provider&provider=${provider.id}`);
82
81
  },
83
82
  },
84
83
  ];
@@ -97,7 +96,7 @@ const ModelSwitchPanel = memo<IProps>(({ children, onOpenChange, open }) => {
97
96
  </Flexbox>
98
97
  ),
99
98
  onClick: () => {
100
- router.push('/settings?active=provider');
99
+ navigate('/settings?active=provider');
101
100
  },
102
101
  },
103
102
  ];
@@ -114,18 +113,21 @@ const ModelSwitchPanel = memo<IProps>(({ children, onOpenChange, open }) => {
114
113
  provider={provider.id}
115
114
  source={provider.source}
116
115
  />
117
- <Link href={`/settings?active=provider&provider=${provider.id}`}>
118
- <ActionIcon
119
- icon={LucideBolt}
120
- size={'small'}
121
- title={t('ModelSwitchPanel.goToSettings')}
122
- />
123
- </Link>
116
+ <ActionIcon
117
+ icon={LucideBolt}
118
+ onClick={(e) => {
119
+ e.preventDefault();
120
+ e.stopPropagation();
121
+ navigate(`/settings?active=provider&provider=${provider.id}`);
122
+ }}
123
+ size={'small'}
124
+ title={t('ModelSwitchPanel.goToSettings')}
125
+ />
124
126
  </Flexbox>
125
127
  ),
126
128
  type: 'group',
127
129
  }));
128
- }, [enabledList]);
130
+ }, [enabledList, navigate, t, theme.colorTextTertiary]);
129
131
 
130
132
  const icon = <div className={styles.tag}>{children}</div>;
131
133